Архив за 06 ноября 2018 - 2

Доброго времени суток!

Сегодня я хочу поделиться опытом разработки под миникомпьютеры на linux (RPI, BBB и другие) на языке программирования D. Под катом полная инструкция о том как сделать это без боли. Ну или почти… =)

Как на D писать под ARM - 1

Читать полностью »

Землю взвесили при помощи нейтрино

Эксперимент Кавендиша со все более совершенной техникой повторялся до начала XXI века как минимум дюжину раз, но в основе это было все то же самое прямое измерение силы притяжения. И вот, дело дошло до принципиальных изменений методики.

Читать полностью »

Разработка программ высокого качества подразумевает, что программа и её части подвергаются тестированию. Классическое модульное (unit) тестирование подразумевает разбиение большой программы на маленькие блоки, удобные для тестов. Либо, если разработка тестов происходит параллельно с разработкой кода или тесты разрабатываются до программы (TDD — test driven development), то программа изначально разрабатыватся небольшими блоками, подходящими под требования тестов.

Одной из разновидностей модульного тестирования можно считать propery-based testing (такой подход реализован, например, в библиотеках QuickCheck, ScalaCheck). Этот подход основан на нахождении универсальных свойств, которые должны быть справедливы для любых входных данных. Например, сериализация с последующей десериализацией должна давать такой же объект. Или, повторная сортировка не должна менять порядок элементов в списке. Для проверки таких универсальных свойств в вышеупомянутых библиотеках поддерживается механизм генерации случайных входных данных. Особенно хорошо такой подход работает для программ, основанных на математических законах, которые служат универсальными свойствами, справедливыми для широкого класса программ. Есть даже библиотека готовых математических свойств — discipline — позволяющая проверить выполнение этих свойств в новых программах (хороший пример повторного использования тестов).

Иногда оказывается, что необходимо протестировать сложную программу, не имея возможности разобрать её на независимо проверяемые части. В таком случае тестируемая программа представляет собой черный белый ящик (белый — потому что мы имеем возможность изучать внутреннее устройство программы).

Под катом описаны несколько подходов к тестированию сложных программ с одним входом с разной степенью сложности (вовлеченности) и разной степенью покрытия.

Читать полностью »

Сегодня в Экспоцентре в Москве открылась выставка Interlight Moscow. Рассказываю, что видел интересного.

Интересное на выставке Interlight 2018 - 1

Читать полностью »

Новый чипсет Snapdragon 8150 засветился в Geekbench

Первый смартфон с новым чипсетом Qualcomm — Snapdragon 8150 (преемник Snapdragon 845) — уже был анонсирован (это, к слову, был и первый смартфон со сгибающимся экраном). О самом чипсете известно мало, однако недавно он был замечен в базе данных популярного синтетического теста производительности Geekbench.

Новый чипсет Snapdragon 8150 засветился в Geekbench

Читать полностью »

По данным DRAMeXchange, исследовательского подразделения TrendForce, на рынке флэш-памяти NAND весь остаток года будет сохраняться ситуация перепроизводства. На фоне китайско-американской торговой войны и нехватки процессоров Intel микросхемы флэш-памяти и накопители в октябре продолжили дешеветь.

Конференция DEFCON 17. Посмеёмся над вашими вирусами! Часть 1

Далее можно загрузить это в IDA и увидеть, что всё в таблице импортированных адресов выглядит нормально, и мы можем проследовать по перекрёстным ссылкам для установки указателя на нужном файле. Так мы попадаем именно в точку расположения зависимого кода шифрования.

Конференция DEFCON 17. Посмеёмся над вашими вирусами! Часть 2 - 1

Таким образом, с помощью всего нескольких команд для дампа памяти мы нашли место, в котором спрятался Coreflood. Мы деассемблировали, извлекли и вставили заголовок PE, даже не имея его, и получили полностью восстановленную таблицу адресов менее чем за 20 секунд.

Следующая история называется «Дорогая, извини, что снова тебя побеспокоил – я ужал интернет»! Эта история повествует о том, что дефектный IP-генератор Conficker.B сканирует только часть интернета. Здесь мы снова возвращаемся к функции rand. Важной частью этой функции является самая последняя инструкция, которую я пометил зелёной стрелкой – она выполняет любое конечное значение в EAX с величиной 7FFF. Если вы не знакомы с принципами ассемблирования и не знаете, что может сделать эта инструкция, то вот небольшое демо по этому поводу.

Конференция DEFCON 17. Посмеёмся над вашими вирусами! Часть 2 - 2Читать полностью »

Американская фирма Nikola Motor – это как Tesla, но только на рынке грузовиков. Компания использует схожую простую номенклатуру, а сами грузовики оснащаются альтернативными силовыми установками и радуют глаз своим футуристичным дизайном. А еще обе фирмы названы в честь Никола Теслы.

Компания Xiaomi сегодня сделала официальное заявление, в котором она пригласила поклонников на свою «самую крутую вечеринку». Последняя состоится в Нью-Йорке 8 декабря этого года, точные время и место проведения мероприятия будут объявлены позже.

Xiaomi приглашает на самую крутую вечеринку

Читать полностью »

О выпуске новой модели камеры сегодня сообщила компания Leica. Новинка называется Leica Q-P и представляет собой полнокадровая компактную камеру с несменным объективом Leica Summilux 1:1.7/28 mm ASPH. По словам производителя, связка из этого объектива и полнокадрового датчика делает камеру хорошо подходящей для съемки при слабом освещении, для уличной фотографии, съемки архитектуры и ландшафтов.


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js