Защита от отладки

 

Защита от отладки для приложений на C#, VB.NET

 

Проверить производится ли отладка или слежение за приложением во время работы (создение объектов, дерево вызовов и т.д.) можно с помощью следующего кода:

 

[System.Runtime.InteropServices.DllImport("Kernel32.dll")]
public static extern uint IsDebuggerPresent();

bool IsDebuging()
{
    foreach (System.Diagnostics.ProcessModule mod in

System.Diagnostics.Process.GetCurrentProcess().Modules)
    {
        if (mod.ModuleName.ToLower() == "diasymreader.dll"
            || mod.ModuleName.ToLower() == "vs7jit.exe"
            || mod.ModuleName.ToLower() == "mcee.dll"
            || mod.ModuleName.ToLower() == "jsee.dll"
            || mod.ModuleName.ToLower() == "cpde.dll"
            || mod.ModuleName.ToLower() == "csm.dll"
            || mod.ModuleName.ToLower() == "profilercallback.dll"
            )
            return true;
    }

    if (IsDebuggerPresent() != 0)
        return true;

    return false;
}

 

Изучение во время исполнения может производится например с помощью .Net profiler, dotTrace.

 

Данный метод полезен если приложение обфусцировано и закрыто для статического изучения (изучение с помощью декомпиляторов), для этого если использовать Inquartos Obfuscator нужно включить опцию "Создание Win32 оболочки"


 

 

 
03.12.2008

Отзывы и комментарии

 


 
Тема
Ваше имя
Почтовый адрес
Текст сообщения
Ключ защиты:
Защита от спама
 
 
 
 
10.12  .NET Reactor
15.11  n
15.11  C# ClickOnce
 
01.08  Task Context
01.08  XLSX в Mono
27.07  прокси