Анти-отладка - предотвращение дампов памяти - PullRequest
5 голосов
/ 06 июня 2011

Я пытаюсь реализовать некоторые базовые функции защиты от отладки в моем приложении.Одна из областей, на которой я хотел сосредоточиться, в частности, это попытка помешать людям легко извлечь полезный дамп памяти из моего приложения.Я прочитал статью по адресу: http://www.codeproject.com/KB/security/AntiReverseEngineering.aspx

, и это дало мне много советов о том, как определить, присутствует ли отладчик, а также некоторую информацию о том, как можно предотвратить дамп памяти.Но автор отмечает, что следует соблюдать осторожность при использовании этих методов, таких как удаление исполняемого заголовка в памяти.Он упоминает, что могут быть случаи, когда ОС или другие программы могут захотеть использовать эту информацию, но я не могу понять, с какой целью.

Кто-нибудь получил какие-то другие советы о том, как я мог бы помешать реверс-инженерам создавать дампы?моя программа?

Я на Windows.

С уважением,

Филип Беннфол

1 Ответ

4 голосов
/ 20 августа 2013

Нет разумного способа помешать кому-либо захватить дамп памяти вашего процесса. Например, я мог бы присоединить к системе отладчик ядра, прервать все выполнение и извлечь дамп вашего процесса из отладчика. Поэтому я бы сосредоточился на том, чтобы сделать анализ более сложным.

Вот несколько идей:

  • Запутайте и зашифруйте ваш исполняемый код. Дешифруйте только в памяти и не храните дешифрованный код дольше, чем вам нужно.

  • Не храните конфиденциальную информацию в памяти дольше, чем необходимо. Используйте RtlZeroMemory или аналогичный API для очистки буферов, которые вы больше не используете. Это также относится к стеку (локальные переменные и параметры).

...