![]() |
Взлом КПК приложений
Взлом КПК приложений
[Intro] Число мобильных приложений сейчас стремительно растет и все чаще встречаются среди них триальные программы. Я не буду говорить о .net приложениях – так как они работают и под обычной Windows, так и под кпк. Поговорим о тех прогах, которые скомпилены под arm-процессоры. Рассматриваемая ОС –Windows Mobile. Что побудило меня написать статью на эту тему - так это катастрофическая нехватка материала как в инете, так и на ачате в частности, посвященного взлому КПК приложений.. [Настройка инструментария] Не каждый имеет кпк (как я например), поэтому будем работать с эмулятором. Что нам понадобиться при исследовании risc кода? 1.Во-первых IDA. Приложения для КПК дизассемблируются идой на ура (при загрузке файла в дизасм выбираем вкладочку PDAs/Phones/Handhelds и выбираем тип того, что нам нужно дизассемблировать – exe, dll … ). Я юзаю 5-ю версию. http://www.pikucha.ru/2545/thumbnail/ida_pda.JPG Есть дизассемблер для кпк ChARMed, но его работой я осталась не очень довольна http://www.pikucha.ru/2563/thumbnail/disam.JPG Скачать его можно по этой ссылке http://carolos.za.net/ 2. Во –вторых Device Emulator (Standalone Device Emulator 1.0 with Windows Mobile OS Images – качайте и образы осей сразу, чтобы потом не заморачиваться) 1.0 http://www.microsoft.com/downloads/details.aspx?FamilyId=C62D54A5-183A-4A1E-A7E2-CC500ED1F19A&displaylang=en 2.0 http://www.microsoft.com/downloads/details.aspx?FamilyID=dd567053-f231-4a64-a648-fea5e7061303&displaylang=en Я пользуюсь первым, но во втором отличий в принципе не много. Вы можете не скачивать этого, если у вас есть VisualStudio с Device Emulator и образы операционных систем. У меня сам эмулятор был в студии, но образов нужных не было. Я буду говорить о одиночном эмуляторе, не из студии, и о его настройке. Также нам нужен будет ActiveSync, скачайте его по ссылке ниже и установите http://www.microsoft.com/windowsmobile/activesync/activesync45.mspx Итак, вы скачали и установили образы и эмулятор (образ ос - скин): Образы: pocketpc.nb0 – pocketpc.xml smartphone.nb0 - smartphone.xml smartphone_hidpi.nb0 - smartphone_hidpi.xml Теперь для удобства перенесите их в директорию с DeviceEmulator. По дефолту это C:\Program Files\DeviceEmulator\1.0\ Для того, чтоб было удобней вызывать из cmd я сделала так C:\1.0\ То есть перенесла папку с образами и эмулятором в корневик диска С. Теперь запускаем cmd. И вводим С:\1.0\ DeviceEmulator.exe C:\1.0\ pocketpc.nb0 /memsize 128 Что означает каждый элемент этой строки? Мы запускаем DeviceEmulator.exe с параметром – образом эмулируемой ОС и указываем количество памяти, которая будет выделена для нее в мегабайтах. Вы можете указать больше, но, желательно не меньше. Так как Windows Mobile будет грузиться медленно и ругаться на недостаток памяти. Внешний вид эмулятора http://www.pikucha.ru/2543/thumbnail/emu_view.JPG После этого следует включить серийный порт, а то приконнектиться ActiveSync мы не сможем – File->Configure и выбрать вкладочку Peripherals и включить один из портов (выбрать COM1 вместо Do not map). Так же вы можете выбрать скин (вкладка Display и пункт Skin) для эмулируемой оси, по ум0лчанию скина нет, но впрочем это и не важно вовсе=) Затем запустите dvcemumanager.exe, выберите свежесозданное устройство, щелкните по нему правой кнопкой мыши и выберите пункт мену Cradle. http://www.pikucha.ru/2544/thumbnail/emu_manager.JPG У меня ActiveSync (запущенный в этот момент) коннектился сразу же, но если этого не произошло соедините вручную File->Connection Settings и потом кнопка Connect ). При конфигурировании обязательно(!) синхронизируйте файлы – это нужно для установки программ на КПК. http://www.pikucha.ru/2549/thumbnail/s_files.JPG Далее по настройке вам все должно быть понятно, так как интерфейс у мелкомягких программ “интуитивно понятный”. 3. Нам нужна какая-либо КПК shareware-программа. Ей будет FreeNotes. Над ней и будем ставить наши опыты. 4. Нужен какой-нить мануал по arm-командам. По командам я нашла, а по опкодам нет. Поэтому пришлось соображать в уже в иде какая команда имеет какой опкод (нужно для патча). http://www.chipnews.ru/html.cgi/arhiv/02_06/6.htm Почитать можете это. Кое-что по командам. Команды, нужные нам [Commands] B - безусловный переход (аналог jmp) BL -переход с сохранением адреса возврата в LR (аналог call) BNE – переход, если не равно BEQ - переход, если равно CMP - сравнение 5. Хекс-редактор (у меня - мой любимый hiew) [Исследование] Итак, у нас готовы все инструменты. Сначала установим FreeNotes на нашу виртуальную WindowsMobile. Делается это через ActiveSync (Tools->Add/Remove Programms). http://www.pikucha.ru/2548/thumbnail/add_program.JPG Установив, запустите программу. http://www.pikucha.ru/2552/thumbnail/install.JPG Она просит ключ при каждом запуске и работает только 5 дней. http://www.pikucha.ru/2550/thumbnail/nag_notes.JPG Скопируем экзешник из папки в виртуальном КПК на Рабочий стол обычного компьютера. И загрузим файл в Иду. Выберем вкладку PDAs/Phones/Handhelds и пункт PocketPC ARM Executable и выберем наш файл. Теперь нужно попытаться найти наш ресурс диалога (NagScreen) в Restorator – это все не в КПК, а в ПК. И находим его=) http://www.pikucha.ru/2546/thumbnail/restorator.JPG Дело в том, что ресторатор такие файлы разрешает просматривать, но иногда поругивается, что этот файл не для Windows NT=). Диалог мы нашли – ид 204. Теперь поищем функции работы с диалогом. Находим уже знакомую нам DialogBoxIndirectParamW. Вот где она вызывается Код:
.text:0001660C STMFD SP!, {R4-R7,LR}Код:
.text:00016710 MOV R1, #0xCCКод:
.text:00016704 BNE loc_1673Chttp://www.pikucha.ru/2547/thumbnail/hex_view.JPG Именно этот прыжок нужно менять, а не прыжки выше, так как до этого создается основное окно программы и все функции до UpdateWindow включительно относятся к нему. А уничтожать основное окно в наши планы не входит.:) Заменив байт по адресу 00016704 в hiew я снова запустила на КПК прогу – теперь она ничего не просит, но при попытке сохранить запись выдает, что нужно зарегаться, так как возможность недоступна. http://www.pikucha.ru/2551/thumbnail/attention.JPG Теперь поищем текстовые строки в IDA Код:
00026FB0 aForSavingYourN unicode 0, <For saving your notes you should activate th>Код:
00152F8 loc_152F8 ; CODE XREF: .text:00015100 jКод:
.text:0001530C BEQ loc_159C0Код:
loc_159C0 ; CODE XREF: .text:000150CКод:
CMP R0, #1Вот что у меня получилось после всех манипуляций Код:
text:000152F8 loc_152F8 ; CODE XREF: .text:00015100 j[Outro] Итак, взлом КПК (Windows Mobile) приложений в общем не отличается от взлома обычных ПК-прог, только arm может смутить, но это только первое время (от трех часов до суток)). PS Чтобы посмотреть полные скрины - удалите "thumbnail/" например http://www.pikucha.ru/2546/thumbnail/restorator.JPG на http://www.pikucha.ru/2546/restorator.JPG |
| Время: 13:16 |