Исследование Active Phone ServerDelphi , Программа и Интерфейс , Исследование программИсследование Active Phone Server
Оформил: DeeCo Но мне захотелось посмотреть, как устроена регистрация этой программки, хочу сразу сказать, что программа не проявляет никаких признаков незарегистрированности, кроме надписи 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
Статья Исследование Active Phone Server раздела Программа и Интерфейс Исследование программ может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Исследование программ ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |