Исследование Active Phone Server

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Оформил: DeeCo

Автор: http://www.cracklab.narod.ru

Итак, эта тулзень настолько мне понравилась, что я даже вижжу от радости 🙂

Но мне захотелось посмотреть, как устроена регистрация этой программки, хочу сразу сказать, что программа не проявляет никаких признаков незарегистрированности, кроме надписи Unregistred в окне «О программе»

Но жажда приключений зовёт в путь…

Необходимые инструменты:

1)SoftIce

2)Нервы

3)Мозг не обязателен (нафиг вам мозги??? — хай комп думает)

Поехали:

Я запускаю программу, открываю окно «About», ввожу имя: vallkor, РН: 123321 ставлю бряк в айсе: bpx MessageBoxA и нажимаю кнопку «Enter» (в программе, а не на клаве), при этом выскакиваю в айсе и нажимаю 2 раа F12, чтобы вернуться из системной библиотеки, мы тут:

015F:10016C18 E853ECFEFF CALL 10005870

Теперь посмотрим выше в поисках условного перехода, который мог привести к такому грустному сообщению, и в 10 строках выше видим:

015F:10016BF1 E89A000000 CALL 10016C90 <-- вызов процедуры проверки

015F:10016BF6 83C404 ADD ESP,04

015F:10016BF9 85C0 TEST EAX,EAX

015F:10016BFB 740E JZ 10016C0B <--ЕСЛИ Неправильный РН - прыгаем на плохое сообщение

Зайдём в процедуру проверки (F8) и, проскролив совсем немного, видим:

015F:10016D08 E873FCFFFF CALL 10016980 <--сравниваем наш РН с правильным

015F:10016D0D 83C408 ADD ESP,08

015F:10016D10 85C0 TEST EAX,EAX

015F:10016D12 0F84E2000000 JZ 10016DFA <--прыжок, если не равны

Как окажется потом, нам правильный РН и не нужен. Итак, когда будет выполняться условный переход

JZ 10016DFA

нужно изменить флаг ZF на противоположный, чтобы не прыгнуть, а посмотреть, что же будет делать программка, если наш и правильный РН окажутся одинаовыми. После того, как мы это изменили, посмотрим, что же делает дальше программка:

…поскипано не нужное…

015F:10016DAE 52 PUSH EDX <--в edx имя файла: c:\Program Files\Apserver\Aon.key

015F:10016DAF FF15FCD00110 CALL [KERNEL32!CreateFileA] <--создаём файл с таким именем

…поскипано…

015F:10016DBD 8B1D2CD10110 MOV EBX,[KERNEL32!WriteFile] <--заганяем в ebx адрес функции записи в файл

потом в файл делается две записи:

1).pН

2)456654

ydoonru

Нетрудно даже невооруженным глазом определить, что первая запись (.pН) указывает на то, что в фале хранится регистрационная информация а вторая запись (456654 ydoonru) — это наш РН и имя пользователя, разделённые символомами (), каждый символ РН и имени пользователя увеличен на 3, т.е.

456654 = 123321

ydoonru = vallkor

Пробуем теперь перезапустить программу… и видим, что в окне «About» наше имя в качестве зарегистрированного пользователя, с чем мы себя и поздравляем 🙂 Теперь каждый может таким вот образом при помощи софтайса создать себе такой файлик и наслаждаться жизнью.

При попытке изменения вручную файла Aon.key у меня в окне о программе опять появилась надпись Unregistred, т.е. в тех неизвестных байтах () хранится что-то типа проверочной суммы (Check Sum), но разбираться мне уже было лень, да и зачем, ведь рабочий файлик получен и за 40 секунд такой же самый можно сделать для любого имени!

ВсЁ!

PS: Если бы имел лишние бабки — обязательно бы заплатил за такую чудную программку, чеснслово 🙂 чего и вам желаю.

Исследовал и наваял туториал:

vallkor //PTDS

E-mail: vallkor@chat.ru

Page : http://vallkor.chat.ru

{/codecitation}

Добавить комментарий