Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Использование WinAPI для снятия защиты. Часть первая.


Разместив фразу в интро к данному разделу про то, что Delphi (через WinAPI в частности) можно использовать для снятия защит, подумал, что некоторые могут сразу и надолго не поверить :( Поэтому решил в срочном порядке привести хотя бы простенький пример из указанной области. Предыстория такова: после установки Audiograbber 1.80 Full version обнаружил, что кейген упорно выдает неправильные серийники. Искать свежее лекарство было влом, поэтому пришла идея ликвидировать неудобства самому. Кто не знает, эта программа при запуске выводит окошко с требованием регистрации, на фоне которого запускается вожделенный инструмент граба. У окна с требованием неактивна кнопка закрыть в углу, оно модально в пределах приложения, принудительное закрытие выгружает всю программу. Рабочее окно выключено (в смысле disabled). Задача была решена с помощью InqSoft Sign Of Misery, но вариант на Delphi даже меньше весит:) В результате - что-то вроде exe-ярлыка.


//В этом, сокращенном, варианте программы
//отсутствуют проверки существования файла\версии\окна etc.
//Игра называется "Сделай сам":)
program ag_v180_full_launcher;
{$APPTYPE CONSOLE}
uses SysUtils, Windows;
//Программа консольная
//(любите красивости - перепишите для формы со своим лого&копирайтом:)),
//а модуль Windows для работы с окнами audiograbber'a

const
    ag_exe = 'start audiograbber.exe';//надеюсь, что понятно
    ag_title = 'Audiograbber';//заголовок рабочего окна audiograbber'a
    nag_title = 'Authenticate';//заголовок окна с требованием регистрации
    refresh_time = 100;//пауза для цикла сканирования окон в миллисекундах

var
    nag_handle : THandle;//дескриптор окна с требованием регистрации

begin
    WriteLN('Audiograbber v1.80 Pro Launcher by Dr.NiR');
    nag_handle := 0;
    WinExec(ag_exe, SW_SHOW); //запускаем жертву экзекуции...
//в цикле ждем окончания загрузки
//и появления окна с требованием регистрации
    while nag_handle=0 do
    begin
        nag_handle := FindWindow(nil, nag_title);
        sleep(refresh_time);
  end;
//Просто закрыть окно нельзя, выгружается весь audiograbber
//мы его просто спрячем:)
    ShowWindow(nag_handle, SW_HIDE);
//Но это не все. Необходимо сделать активным рабочее окно
    EnableWindow(FindWindow(nil, ag_title), true);
end.


Хотите поделиться своими творениями? Размещу с удовольствием, мыльте!

К списку статей


Есть комментарии, вопросы, ссылки на полезные ресурсы? Все это можно указать здесь:

E-mail для ответа:

Сообщение:



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS