Исследование Active Phone Server
Оформил: 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
|