/\ /\ / \_ _/ \ ____/ /__ T E A M . F I F T Y . T H R E E __\ \____ \__ ____\\- ____ -//____ __/ / /_____ ______\ \__________\ \ _/ /_\ \_________________________-// // ____/ /_\ \_ __\ _\ ____ /___ _ \_ \/ // ___\/_ /__ ))______________\_ _______\_|__ /____\/_____\ /gf _/______________(( \___\\- /___//- /____((- TEAM FiFTY THREE TUTORiALS PACK # SEVENTEEN Итак. Прием отлова серийников =) Приборы и материалы: Прога (EasyAddress PE) POSE PRCedit Debuffer / SouthDebugger. Краткое описание подопытного: Прога заменяет собой стандартые "Contacts, позволяя прикрепить в записи фотку". Ограничения: 7 дней работы. Начало действий: // Не буду рассказывать как юзать тулзы, указанные выше. Об этом я уже писал в прошлых туторах. Так что шас прямиком к делу. Первым делом запускаем прогу и пробуем зарегить: Есессно нас посылют... Обидно. Чтож делать - открывам прогу в PRCedit. Находим в папочку Alerts нужный нам текст (The Secuirity Code is not valid). Жмем на References.... Появляемся в части кода и видим, что алерт с нехорошей надписью находится на метке L11 (offset: 0000036a). Ищем ссылку на эту метку и находим ее по адресу 00000342. По этому адресу стоит опкод BNE (Branch if Not Equal). Строкой выше находится сравнение 2х значений (CMP.L A3,D0). Логично предположить что это и есть наши серийники. Нужно проверить. Ставим бряк (4E48) вместо b08b и топаем регить прогу по новой. (не забываем перед этим запустить дебаггер ака Debuffer.) Вводим любое число, допустим 123 и жмем Register. Эмуль виснет, дебаггер сработал (появилась строка OK>). Это все круто, но мы ничего не видим.... Правильно, т.к. Мы просто не сказали дебеггеру что мы от него хотим =) А хотим мы увидеть регистры, верно? Для этого вводим магическую команду ".regs" (без кавычек и не забудьте точку перед символом.) Ура, появилось что-то. =) Поскольку мы считаем что сравниваются значения в регистрах A3 и D0, то есессно смотрим на них. A3 --> 7B D0 --> B076 // Значения приведены в системе HEX. Серийник, думаю понятно, нада вводить в системе Decimal. Перевести значения можно стандартным калькулятором. Смотрим: 7B --> 123 (как раз что мы вводили) B076 --> 45174 Хм..... Загружам чистый файл (без изменений который) и пробуем ввести второе значение в палм и получаем Ура! Какой отсюда вывод? Правильно - мы круты не по годам, ;-) тока что зарегили прогу. Без вмешательства в код. Кстати можно зарегить эту прогу, заменив пару байтиков. =) Это будет домашним заданием ;-)))) Да, чуть не забыл. Этот серийник для HS name "Tutorial" За сим разрешите откланяться. V0land // TSRh