Урок 0 - Введение во взлом программ для PalmPilot

  1. Что нужно иметь?
  2. POSE - Palm OS Emulator
  3. Prc2Bin - Resource Extractor
  4. PilDis - Pilot Disassembler

Что нужно иметь?

Как я уже писал, для взлома программ на PalmPilot не нужно ничего сверхъестественного. От Вас не потребуется знание ассемблера, C или любого другого языка программирования. Вам не нужны сверхсложные программы, не нужно читать горы документации. Ломать - не строить. Взламывать защиту программ на PalmPilot может даже ребёнок! Даже чайник! Даже секретарша! Всё, что Вам нужно - это иметь PalmPilot, компьютер, две маленьких утилиты, hex-редактор, уметь работать с командной строкой (хотя бы чуть-чуть) и hex-редактором (хотя бы чуть-чуть) и понимать (хотя бы чуть-чуть), что такое машинные коды.

Вообще, не только для взлома программ на PalmPilot, хорошо бы иметь Far Manager. Если у Вас его нет, а тем более, если у Вас нет Windows, то я предоставляю Вам самим решать, чем Вы сможете его заменить.

Далее я коротко расскажу Вам, что из себя представляют программы на PalmPilot и как пользоваться нашими инструментами для взлома. Начнём мы с эмулятора.

POSE - Palm OS Emulator

Palm OS Emulator screenshot
Рис. 1
Palm OS Emulator - это программа, которая запускается на Вашем компьютере и использует его для имитации внутренностей Вашего Пилота. Вы можете запустить любую программу для Пилота на эмуляторе и она будет "думать", что запущена на настоящем Пилоте. Эмулятор удобен тем, что позволяет обойтись без самого Пилота, если того нет под рукой, а также тем, что позволяет чуть более вольно обращаться с содержимым памяти.

Когда Вы скачаете и установите эмулятор, Вам останется только раздобыть для него ROM-image. ROM-image - это операционная система Вашего Пилота.

Чтобы вытащить ROM из вашего Пилота (точнее, скопировать, не надо паниковать!), выберите Transfer ROM из меню и следуйте инструкциям.

Теперь, когда Вы запустите эмулятор, у Вас на экране появится что-то почти неотличимое от настоящего PalmPilot'а. (рис. 1, нажмите на рисунок, чтобы увидеть увеличенное изображение)

По правой кнопке вызывается контекстное меню (рис. 2), в котором Вам нужно знать лишь несколько пунктов. Но на всякий случай я кратко перечислю, что они делают.

Главное меню эмулятора
Рис. 2

Для начала я советую Вам установить в Settings / Properties... Ваше имя вместо Palm OS Emulator и выбрать Never save session. Потом в Settings / Skins... включить White background и, при желании и разрешении хотя бы 1024x768, Double scale.

Использовать эмулятор крайне просто. С помощью меню Install Application / Database устанавливаете нужную Вам программу. За один раз можно устанавить до 10 файлов. Если нужно больше, то придется повторить процесс. Если Вы устанавливали файлы при открытом Launcher'е, то следует сначала войти в какую-нибудь имеющуюся программу (например, MemoPad) и выйти из нее. Тогда в Launcher'е появятся иконки новых программ.

При работе с эмулятором у Вас периодически будут появляться подобные предупреждения об ошибке (рис. 5).

Сообщение об ошибке
Рис. 5

Бояться не надо. Это сообщение означает всего лишь, что программа использует недокументированные возможности, работая с ресурсами Пилота напрямую. Теоретически, в новых моделях это может привести к ошибке, однако, на практике, бояться нечего. Использование недокументированных возможностей необходимо для реализации допольнительной функциональности системы с помощью hack'ов, для работы с более качественной графикй, для работы различных database-manager'ов, вообщем, для использования Вашего Пилота на 200%. Не бойтесь, эти "ошибки" ничем Вам не грозят и служат лишь в качестве предупреждения для разработчика, информируя его о возможных проблемах с новыми моделями.

Prc2Bin - Resource Extractor

Prc2Bin (автор Darrin Massena) - это утилита для извлечения ресурсов из файлов *.prc. В программах для PalmOS каждая форма, каждый диалог, каждая картинка - это отдельный ресурс. Определение того, какие ресурсы используются программой для вывода сообщений о необходимости зарегистрироваться, об успешной регистрации, о неудачной регистрации - это ключевой момент во взломе программ для PalmPilot.

Использовать эту утилиту очень просто.

prc2bin.exe program.prc

Prc2Bin создаст кучу файлов с расширением bin (это ресурсы) и один с расширением hdr (это заголовок), которые Вы можете спокойно просматривать.

PilDis - Pilot Disassembler

PilDis (автор Bill Hunt) - это простая утилита командной строки, которая переводит бинарный файл *.prc с программой в текстовый файл с ассемблерным кодом. Использовать её крайне просто.

pilotdis.exe program.prc

PilDis создаст файл program.prc.s с ассемблерным кодом программы. PilDis можно использовать и с файлами типа code0001.bin, которые создаются утилитой prc2bin. Разница только в том, что во втором случае файл code0001.bin.s с текстом программы не будет содержать данных, а только код. Ниже пример текста программы на ассемблере (выделение моё). Бояться не надо, ничего сложного здесь нет.

000008c8   486efffc				PEA	-4(A6)
000008cc   4e4fa11e				TRAP	#15,$A11E = sysTrapEvtGetPen
000008d0   0c6d0001ffa0				CMPI.W	#1,-96(A5)
000008d6   4fef000c				LEA	12(A7),A7
000008da   66000088				BNE	L55
000008de   4a6dffaa				TST.W	-86(A5)
000008e2   6d000080				BLT	L55
000008e6   4a2effe2				TST.B	-30(A6)
000008ea   6778					BEQ	L55
000008ec   302efffc				MOVE.W	-4(A6),D0
000008f0   906dffae				SUB.W	-82(A5),D0
000008f4   3f00					MOVE.W	D0,-(A7)
000008f6   487a000e				PEA	L50
000008fa   487a0004				PEA	L49
000008fe   06970000915a				ADDI.L	#37210!$915a,(A7)
00000904   4e75					RTS
00000906   5340				L50	SUBQ.W	#1,D0
00000908   3200					MOVE.W	D0,D1
0000090a   e049					LSR.W	#8,D1
0000090c   ee49					LSR.W	#7,D1
0000090e   d240					ADD.W	D0,D1
00000910   e241					ASR.W	#1,D1

Первый столбец - это адреса команд. Второй столбец - это сами команды в шестнадцатиричной системе счисления. L50 - это метка в коде. Четвертый столбец - это мнемокоды для команд. И пятый - это параметры команд.

Команды ассемблера можно разделить на три основные группы - команды перехода (BEQ L55 по адресу 000008ea), команды сравнения (CMPI.W по адресу 000008d0) и все остальные (например, MOVE.W по адресу 000008f4). Особняком стоит команда пустая команда NOP с шестнадцатиричным кодом 4e71, которой на экране нет. Она служит для того, чтобы заменить ею те команды, которые мы не хотим, чтобы выполнялись.

Теперь можно переходить и ко взлому. Не забудьте только, что на сайте пиловаров тоже есть четыре урока по взлому. Стоит и их почитать.

Урок 1 - DatePlan

TopList

Copyright © PalmPot.
Последнее обновление 25.06.2000.