Статья "Исследование Active Phone Server 9.18 или взлом в памяти":
|
|
<< Все статьи по взлому
|
Версия для печати
|
|
Только для образовательных целей! |
|
Автор: | FEUERRADER [AHTeam] |
Уровень: | Для начинающих |
Программа: |
Размер: |
Язык: |
Тип защиты: |
Инструменты: |
Предисловие: эта статья основана на туториале Vallkor'а "Исследование Active Phone Server", где рассказывается, как взломать этот продукт. Ниже будут приведены выдержки из этой статьи.
Начнём: Запускаем программу, открываем окно "О программе", вводим имя и РН (наугад) ставим bpx GetDlgItemTextA и нажимаем кнопку "Ввести", выскакиваем в SI (или TRW2k), жмем 2 раза F12, чтобы вернуться из системной библиотеки, мы тут:
... 016F:100171E5 CALL `KERNEL32!FindCloseChangeNotification` 016F:100171EB POP EBX 016F:100171EC POP EDI 016F:100171ED MOV EAX,01 016F:100171F2 POP ESI 016F:100171F3 ADD ESP,0C08 016F:100171F9 RET 016F:100171FA POP EDI 016F:100171FB XOR EAX,EAX 016F:100171FD POP ESI 016F:100171FE ADD ESP,0C08 ... Эти инструкции нам ни о чем ни говрят. Попробуем зайти с другой стороны. Заметьте: oкно с сообщением о неверном РН выдается не сразу, а спустя несколько секунд (для понта наверное). Значит используется, скорее всего сообщение WM_TIMER. Проскролим несколько десятков строк вверх от адреса 100171E5.
... 016F:10016FBA CALL `USER32!KillTimer` 016F:10016FC0 PUSH ESI 016F:10016FC1 CALL 10017070 //Интересная функция 016F:10016FC6 ADD ESP,BYTE +04 016F:10016FC9 TEST EAX,EAX //Сравним результат 016F:10016FCB JZ 10016FDB //Прагаем, если 0 016F:10016FCD PUSH BYTE +40 016F:10016FCF PUSH DWORD 10022B50 016F:10016FD4 PUSH DWORD 10022B34 016F:10016FD9 JMP SHORT 10016FFC 016F:10016FDB MOV EAX,[100260B4] 016F:10016FE0 PUSH BYTE +10 016F:10016FE2 TEST EAX,EAX 016F:10016FE4 JZ 10016FF2 ... О, то что нам нужно! Ставим бряк bpx 10016FC1. Прервемся и зайдем по F8 в CALL 10017070, далее трассируем по F10. Вскоре увидим:
... 016F:100170F2 CALL 10016D50 //процедура проверяющая 016F:100170F7 ADD ESP,BYTE +08 //РН с правильным, кому интересно, 016F:100170FA TEST EAX,EAX //загляните. 016F:100170FC JZ NEAR 100171FA //Прыгаем, если флаг Z=0,т.е если РН=ERR0R! ... В статье Vallkor'а сказано: "Нужно изменить флаг Z на противоположный, чтобы не прыгнуть, а посмотреть, что же будет делать программка, если наш и правильный РН окажутся одинаковыми. После того, как мы это изменили, посмотрим, что же делает дальше программка:
...поскипано не нужное... 015F:10016DAE 52 PUSH EDX <--в edx имя файла: c:\Program Files\Apserver\xxxxxxxx.key 015F:10016DAF FF15FCD00110 CALL [KERNEL32!CreateFileA] <--создаём файл с таким именем ...поскипано... 015F:10016DBD 8B1D2CD10110 MOV EBX,[KERNEL32!WriteFile] <--загоняем в ebx адрес функции записи в файл Потом в файл делается две записи, которые xorятся со смещением +3".
Тогда все просто. Заменим условный переход
016F:100170FC JZ NEAR 100171FA на противоположный. Прога будет думать, что РН верный и зарегится. Файл xxxxxxxx.key на каждом компе хххххххх будет разным. Введем d 100170FC и видим 0F84..... Заменять надо 0F84 на 0F85. Итак, такой патч: Патч: aon.exe запакован UPX 0.72. И как говорит сам UPX: packed by obsolete version of UPX. Cannot unpack. Сам файл нам не распаковать и не пропатчить (хотя это спорный вопрос). Тогда будем ломать его в памяти. Тут поможет Sign 0f Misery - мощная система для помощи кракеру. Можно достать тут. Создадим скрипт со следующими инструкциями:
Установиить максимальное время работы скрипта 3,0 сек. N/A Запустить программу Aon.exe N/A Изменить значение байта в адресном пространстве открытого процесса #100170FD 133 Завершить скрипт N/A N/A Заключение: мы получили не loader для файла, а кряк! Его можно запускать всего один раз, он пропатчит прогу, а мы введем всякую ерунду в Имя и РН. Будем зарегистрированы. Теперь этот сrack нам больше не нужен.
|
|
<< Все статьи по взлому
|
Версия для печати
|
|
|
Комментарии читателей к статье "Исследование Active Phone Server 9.18 или взлом в памяти":
|
31.10.2009 21:12 |
очень познавательно,однако все же осилить нужно время и немалое, доверила бы профессионалу |
|
|
|
Добавить свой комментарий:
|
|
|