Рубрика «отладка» - 35

Критический баг в CoreGraphics в iOS В этой статье мы ищем (и, что характерно, находим!) критический баг в CoreGraphics в iOS. Сразу скажу, что на полноценную уязвимость этот баг конечно не тянет — его эксплуатация не приводит, например, к arbitrary code execution. Однако этот баг позволяет аварийно завершать приложения которые используют WebKit: Mobile Safari, Google Chrome для iOS, всяческие почтовые клиенты и т.п., что тоже может быть полезно для хакера в некоторых ситуациях. Итак, приступим к поискам.Читать полностью »

Написав пару статей о работе в 010 Editor (часть I, часть II), пришел к выводу, что чем подробно рассказывать о базовых вещах, лучше для начала перевести справку из программы, ибо расписано в ней все неплохо, а русского перевода нет. Итак, в данной статье мы познакомимся с теми особенностями написания шаблонов 010 Editor, о которых говорят сами разработчики.

Справочный материал hex редактора 010 Editor: шаблоны (templates)
Бинарные шаблоны — одна из самых мощных возможностей 010 Editor, которая позволяет представить любой файл в виде упорядоченного набора переменных и структур. Шаблоны помогают исследовать и редактировать файлы гораздо более удобным способом, чем это позволяют обычные hex-редакторы. Каждый шаблон представляет собой текстовый файл с расширением "*.bt", который может быть отредактирован в блокноте и прямо в 010 Editor (см. меню Templates). Шаблон запускается как интерпретируемый код, после его работы результат выполнения отображается на панели Template Results. Шаблоны могут быть сконфигурированы для автоматической загрузки и выполнения, когда в редакторе открыт файл с определенным расширением, например, в стандартный набор 010 Editor входят шаблоны для работы с *.zip, *.bmp и *.wav.
Читать полностью »

В первой части цикла статей мы рассмотрели пример исследования файла в hex-редакторе (с самой минимальной аналитикой) и базовые возможности написания шаблонов в 010 Editor. Углубим знания, ознакомившись с рядом других полезных возможностей 010: использованием функций по аналогии с С и API для подсветки hex-кода.

Навыки написания шаблонов и работы в hex редакторе 010 Editor — Часть II
Читать полностью »

010 Editor — пожалуй, один из самых многофункциональных hex-редакторов. Основной его полезной возможностью является написание шаблонов (templates), с помощью которых можно легко описывать структуры любых файлов. Это значительно облегчает процесс обратной инженерии и технического анализа, многочасового копания в hex.

Навыки написания шаблонов и работы в hex редакторе 010 Editor
Примечание: статья аналитическая, предназначена для тех, кто не имеет большого опыта hex-исследований (надеюсь, картинки покажут процесс максимально наглядно).
Читать полностью »

Китайские видеокамеры и TCP: баг или фича? В связи с узурпацией должности управдома нашего МКД, и необходимости «причесать» общественный беспорядок, потихоньку конструирую систему видеонаблюдения.
Разумеется, финансирование минимальное, планы — грандиозные, поэтому собирается всё из подножного корма.
Подробности чуть позже, а вот один из интересных багов, который заставил перебраьт много чего.

Итак, началось всё с малого — простенькая купольная камера, бралась самая паршивая по принципу "только б IP и купол". После пошел процесс перебора софта (тема отдельного поста, будет, опять же, позже)… В конце зафиксировался на Macroscop в один канал. Стояла пару месяцев, есть-пить не просила, наркоманов гонять помогала.

И вот работает вроде всё, но как-то подлагивает периодически. Грешил на всё: на проц, на сеть, на софт, на погоду на марсе… Саппорт по логам говорит, что-де камера периодически отваливается.
Читать полностью »

В качестве среды разработки компанией «Мультиклет» был выбран текстовый редактор Geany с основными функциями интегрированной среды разработки. Для поддержки необходимых для отладки инструментов разработчиками компании «Мультиклет» был написан плагин MC-DBG, о тестировании возможностей которого пойдет речь в данной статье.
Читать полностью »

Интерфейсная микросхема поддерживает работу с интерфейсом I2C (не путать с I2S!) в режиме MPSSE (Multi-Protocol Synchronous Serial Engine). Кроме I2C данный режим поддерживает целый перечень стандартных последовательных интерфейсов, таких как SPI, JTAG и т. п. Есть возможность реализации собственных интерфейсов в случае необходимости. Данное описание рассказывает о ряде нюансов поддержки интерфейса I2C, а так же дает повод поболтать на смежную тематику.

Дисклэймер: данная статья написана по рабочим материалам и в первую очередь предназначена для автора статьи, когда он потеряет оригинальный документ. В то же время, информация приведенная ниже может быть интересна и узкому кругу специалистов. Не рекомендуется для прочтения широкому кругу читателей кроме случаев, когда тот самый читатель хочет ненадолго погрузиться в мир отладки программно-аппаратных средств. Исследования проводились более года назад, однако указанная информация остается актуальной и в настоящий момент, поскольку библиотеки на сайте производителя не обновлялись. Информация об обнаруженных проблемах отправлялась производителю, однако никакой обратной связи не последовало. Написан пост по мотивам вот этого, за который автору выражается отдельная благодарность
Читать полностью »

Сегодня исполнилось бы 107 лет Грейс «Amazing» Хоппер, контр-адмиралу флота США, а по совместительству разработчику первого в мире компилятора и популяризатору (и, в какой-то степени, автору) термина debugging.
Читать полностью »

Это перевод статьи Джошуа Блоха «Extra, Extra — Read All About It: Nearly All Binary Searches and Mergesorts are Broken» 2006 года.

Я живо помню первую лекцию Джона Бентли в университете Карнеги-Меллон, на которой он попросил нас, свежеиспечённых аспирантов, написать функцию двоичного поиска. Потом он взял одно из решений и разобрал его на доске, и разумеется, в нём оказалась ошибка, как и во многих других наших попытках. Этот случай стал для меня наглядной демонстрацией к его книге «Жемчужины программирования». Мораль в том, чтобы внимательно расставлять инварианты в программе.

И вот, теперь 2006 год. Я был потрясён, узнав, что программа двоичного поиска, корректность которой Бентли доказывал формально и тестами, содержит ошибку. Не подумайте, что я придираюсь; по правде сказать, эта такая ошибка, что вполне может ускользать от тестеров десятилетиями. Более того, двоичный поиск, который я написал для JDK, тоже был багнутым лет эдак девять. И только сейчас, когда она сломала кому-то программу, о ней сообщили в Sun.
Читать полностью »

Биржевые и околобиржевые компании создают серьезный спрос на программистов, занятых совершенно разными вещами — от автоматизации бэкофиса до дата майнинга. Очень серьезные зарплаты и ответственность имеют разработчики так называемых High Frequency Trading algorithms, высокочастотных торговых алгоритмов. Написать этот пост меня сподвиг один занудный и одновременно забавный фильм (youtube, 50 минут, без перевода), в котором разработчик Хаим Бодек очень просто объясняет суть происходящего в HFT.

Биржевой стакан Бодек ассоциирует с очередью за редким товаром, которого не хватает Читать полностью »


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