C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 30 - Определяем, что приложение запущено в режиме отладки / Отладка / Visual C++

Шаг 30 - Определяем, что приложение запущено в режиме отладки

Одной из задач по защите приложения может стать определение и запрет режима отладки. Действительно режим отладки позволит опытному программисту обойти Ваши регистрационные процедуры. В Win32 API предусмотрена специальная функция IsDebuggerPresent. Эта функция вернет ненулевое значение, если программа запущена в режиме отладки. Проверим? Можно вписать эту функцию в любое место кода.

BOOL CTestDebugDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;
	if (IsDebuggerPresent()==TRUE) AfxDebugBreak();
	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}

Теперь, если запустить эту программу в отладочном режиме.

30_1.gif (5386 b)

То в ходе выполнения будет вызвано прерывание программы.

30_2.gif (4836 b)

В тоже время при обычном выполнении этого не произойдет. Если вы хотите таким образом защитить Ваше приложение от отладчика учтите, что данную проверку нужно раскидать по всей программе в каждой функции и даже в процедуре получения и обработки сообщений. Только не делайте отдельную функцию, при оптимизации все вызовы этой функции будут перенаправлены в одно место и достаточно будет изменить один – два байта в программе и она будет отключена. Кроме того, неплохо, если обнаружение отладчика приведет к удалению самой программы, перезагрузки Windows или еще чему-нибудь похуже. Чтоб не повадно было. Конечно совсем это не спасет, но усложнит процесс.


| |
Автор Каев Артем.
[AD]