Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #66, МАЙ 2006 г.

ключевой процесс

GETORIX | INT3

Спецвыпуск: Хакер, номер #066, стр. 066-054-2


Перейти на адрес | выделить и перетащить | в нужном окне нажать G|

| адрес на нужное окно | и ввести адрес |

| или нажать CTRL+G и | |

| ввести адрес | |

------------------------------------------------------------------

[в качестве объекта исследования] возьмем «Англо-английский толковый словарь Lexisgoo v2.4» с сайта www.ppclink.com и совместим приятное (изучение иностранного языка) с полезным (опыт исследования приложений для WindowsMobile). Программа не маленькая, целых 22 Мб, но мы все-таки задались целью узнать что-то новое и научиться чему-то, а не повторять чужие действия.

Как обычно, для начала нужно установить программу на КПК или на эмулятор, что можно сделать и через ActiveSync, и разворачиванием cab-файла непосредственно на КПК с помощью cabinstall. Далее скопируем исполняемый файл с КПК на ПК для последующего анализа. В IDA выбираем File> New, в появившемся окне жмем за закладку PDAs> Handhelds> Phones, где из всего представленного разнообразия нам больше всего подходит PocketPC ARM Executable. В окне Wizard на первой странице выбираем обе галочки (Imported DLL options и Analysis options), на второй также отмечаем все (Create imports segment, Create Resource Segment). Все настройки оставляем по умолчанию, то есть жмем «Далее» несколько раз. После закрытия Wizard начнется анализ исполняемого файла. Когда этот длительный процесс подойдет к концу, первое, что мы сделаем, — внимательно просмотрим содержимое окна Strings Window. Очень скоро удастся обнаружить там буквально то же, что и на «Строки сообщений для MessageBox».

строки сообщений для MessageBox

.data:0004A9EC aTheSerialKeyYo unicode 0, <The serial key you have entered is invalid. >

Please re-enter.>

.data:0004AA68 aRegistration_0 unicode 0, <Registration>

.data:0004AA84 aThankyouForReg unicode 0, <Thankyou for registering our product.>

.data:0004AAE8 aRegistration_2 unicode 0, <Registration>

.data:0004AB04 aTheTrialVersio unicode 0, <The trial version expired, please register to continue or you can only search randomly.>

.data:0004ABB4 aTheVersionYouA unicode 0, <The version you are using is trial, it will be expired % d days after that it can only search randomly.>

Перед нами не что иное, как список строк, которые используются в сообщениях типа MessageBox, уведомляющих об успешной или неуспешной регистрации. Чтобы найти место, где вызывается та или иная строка, необходимо продвигаться вверх по перекрестным ссылкам (XREF). Например, щелкнув по ссылке «DATA XREF: .text:off_2926C» (соответствует фразе об удачной регистрации) попадаем сюда:

.text:0002926C off_2926C DCD aThankyouForReg ; DATA XREF: .text:00029254

Теперь снова щелкаем по «DATA XREF: .text:00029254» и, наконец, видим код («Сообщение об удачной регистрации»).

Сообщение об удачной регистрации

.text:0002923C loc_2923C ; CODE XREF: .text:00029210

.text:0002923C LDR R0, =unk_4D694

.text:00029240 MOV R1, #0

.text:00029244 LDR R2, =aRegistration_0 [заголовок сообщения]

.text:00029248 MOV R3, #0

Назад на стр. 066-054-1  Содержание  Вперед на стр. 066-054-3