Как определить - находится ли Ваше приложение в режиме отладки ?

Автор: Simon Carter
Обычно господа взломщики, для того, чтобы взломать защиту приложения, запускают его в режиме отладки и анализируют машинный код для определения точки перехвата ввода пароля с клавиатуры.
Обычно таким способом ломаются игрушки :)
Конечно данный способ не сможет полностью защитить Ваш программный продукт от взлома, но прекратить выполнение секретного кода - запросто. Для этого мы будем использовать API функцию IsDebuggerPresent. Единственный недостаток этой функции, заключается в том, что она не работет под Windows 95.
Теперь посмотрим как эту функцию реализовать в Delphi:

function DebuggerPresent: boolean;

type

 TDebugProc = function: boolean; stdcall;

var

 Kernel32: HMODULE;

 DebugProc: TDebugProc;

begin

 Result := False;

 Kernel32 := GetModuleHandle('kernel32.dll');

 if Kernel32 <> 0 then

 begin

  @DebugProc := GetProcAddress(Kernel32, 'IsDebuggerPresent');

  if Assigned(DebugProc) then

  Result := DebugProc;

 end;

end;

А это окончательный пример вызова нашей функции:

if DebuggerPresent then

 ShowMessage('debugging')

else

 ShowMessage('NOT debugging');

Взято из http://forum.sources.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...