26 июля 2011 г.

Spy: Windows CE API-перехватчик

В рамках исследования ПО RoadRover появилась необходимость перехватить обмен информацией между программной и аппаратной частями (модуль радио, bluetooth и т.п.). Как выяснилось в процессе анализа исполняемых файлов, общение с оборудованием происходит через COM-порты. Соответственно, для этого вызываются функции CreateFile, WriteFile и ReadFile. Вызовы этих функций и решено перехватить для получения протокола общения. 

Поиск по Интернету навел на интересную статью Spy: A Windows CE API Interceptor, перевод которой я привожу ниже. Прошу прощения за некоторую корявость перевода, это явно не мой конек.

21 июля 2011 г.

Анализ ПО ГУ RoadRover. Дизассемблирование.

Основным инструментом при анализе исполняемых файлов я использовал IDA 5.5. Дополнительно на всякий случай установил сигнатуры mfc8_arm.sig, ce6libc.sig, ce6lib.sig.

Для начала дизассемблируем Manager.exe и проанализируем таблицу импорта. Импортируемые функции зачастую являются ориентирами для понимания дизассемблированного кода. К сожалению, функции из MFC80U импортируются по Ordinal, а не по именам.
 
Попробуем получить таблицу зависимостей Ordinal -> Name.

Анализ ПО ГУ RoadRover

ПО RoadRover располагается в директории \StaticStore\D2280. По названию исполняемых файлов легко определить за что они отвечают:
  • Manager.exe - основной процесс UI. Он стартует при загрузке системы и отображает основное меню. При выборе конкретного элемента меню запускает соответствующее приложение.

11 июля 2011 г.

Строительство Windows CE 6 под эмулятор для запуска ПО ГУ RoadRover

Для анализа и реверсинга ПО понадобиться где-то запускать его. Делать это на самом ГУ представляется затруднительным, т.к. не хочется выковыривать его из машины, а работать в самой машине неудобно. Поэтому есть смысл подготовить стенд на базе MS Device Emulator. Для этого создадим образ Windows CE 6.0 под этот эмулятор.

Результирующий образ WinCE можно скачать со страницы Device Emulator Image моего проекта изучения и модернизации ПО RoadRover.