Как разблокировать аккаунты, защитить компьютер и стать хакером
Полезные инструменты

Ваш IP

Узнай свой IP адрес

Проверить сайт

Test tools by WebSitePulse

Генератор MD5

1. Введите строку Строка:


2. Копировать MD5:

Реклама

интернетЧто ломаем……
А ломаем мы прогу Advanced Dialer. Она хороша тем, что показывает при дозвоне айпишник провайдера. Требуют буржуи-программеры за свое творение не много не мало 29 баксов. Ну что ж. Платить я не собирался (и смотреть на рекламу вверху тоже)).
Вот оно! Unregistered в заголовке и реклама!
Разбор полетов
Первое, что я сделал – проверил программу с помощью знакомой крекерам утилитой PeID. В ответ получил, что исполняемый файл(ADialer.exe) запакован:
ASProtect 1.22 — 1.23 Beta 21 -> Alexey Solodovnikov.
Популярный протектор. Но я не буду распаковывать, я применю метод online патча. Теперь загрузим программу в отладчик. Использовать будем OllyDbg. Жму f9 и вижу, что программа завершилась, хотя сам диалер запустился. Это означает только одно (хотя бывают и исключения)– этот файл всего лишь небольшой загрузчик. Тогда надо поискать другие исполняемые файлы в директории с программой (это не всегда будет файл с расширением exe, так как функция CreateProcess может запустить даже txt файл – расширение значения не имеет. Так, например, в R-Studio программа с защитой была спрятана в незапакованном (!) bin-файле). Но для начала посмотреть список запущенных процессов….
Видно, что никакого ADialer.exe в памяти не висит, а вместо него лишь params.ovl. Наивные, наивные разработчики! Глянем в директорию с программой и там действительно есть params.ovl. Это просто переименованный экзешник. Значит, основная программа не там, где я предполагал сначала. params.ovl (для PeID тоже, кстати, расширение значения не имеет, как и для отладчика) тоже запакован ASProtect. Теперь грузим в отладчик его. Нет антиотладки, и защиту, видимо, разработчик написал сам… Может, он решил просто запаковать и ничего больше?))))))))… *Возвращаясь к теме защиты – триала нет, есть только требование регистрации (причем не очень навязчивое). Пробую зарегистрировать программу… И получаю………
Что ж, проанализируем прогу в отладчике……. Поищем в текстовых строках
Name or Registration Key are not correct.Check Name or Registration Key and try again.
Как видно, все нашлось успешно. Ставлю бряк на загрузку строки……. Снова ввожу неправильный регистрационный код… Точка останова срабатывает…….
Беглый анализ показал, что достаточно изменить данный прыжок на безусловный:
004C592B |. /74 1B JE SHORT params.004C5948
Тогда регистрация успешна. Перед самым прыжком вызывается проверяющий валидность номера и имени код…… Меняем прыжок и видим, что реклама пропала, как и ненавистная надпись в заголовке. Что теперь? Дело в том, что патч я ставил в памяти и код уже успел распаковаться (то есть пропатчить хиевом в офлайне не получится). Следующий шаг – написание простого патчера, реализующего все сказанное при каждом запуске проги.
Интерфейс делать не буду, так как здесь это лишнее.Писать буду на ассемблере, так как программы получаются маленькие и не содержат ничего лишнего.
Привожу исходный код патчера в листинге ниже. Исходник снабжен подробными комментариями, поэтому, имея кое-какой опыт программирования, понять его нетрудно….
Вот и все!
OUTRO
Можно усложнить пример, добавить GUI в патчер (10 минут работы) или вообще вычислить рег. номер)))))))))))))))))))) Нет предела совершенству. Интересующимся GUI частью патчера рекомендую заглянуть на http://www.uinc.ru/ (там есть статьи на эту тему)
А вот, что стало…………..)))))))))))))))))))

Исходник простого патчера
.386
.model flat, stdcall
include user32.inc
include windows.inc
include kernel32.inc
includelib kernel32.lib
includelib user32.lib
.data
file2 db «params.ovl»,0
buffertool dword ?
processInfo PROCESS_INFORMATION <>
hProcess dword ?
bufferfirst dword ?
hexv db 0ebh
.code
Main:
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
LOCAL startInfo:STARTUPINFO
invoke GetStartupInfo,ADDR startInfo ; заполнение структуры STARTUPINFO
invoke CreateProcess,offset file2,0,0,0,0,0,0,0,ADDR startInfo,ADDR processInfo ;запуск файла на ;исполнение
invoke Sleep,500h ; ждем, пока программа распакуется
invoke WriteProcessMemory,dword ptr processInfo.hProcess,004C592Bh,offset hexv,1,esp ;пишем в ;процесс
exit:
invoke ExitProcess, NULL ; со спокойной совестью выходим
WinMain endp
end Main

Скорость печати
Набирайте отображаемый текст и вы узнаете вашу скорость набора текста


Рейтинг@Mail.ru


Copyright © 2024 Как разблокировать аккаунт. Все права защищены.