SEH反调试(SetUnhandledExceptionFilter)
生活随笔
收集整理的這篇文章主要介紹了
SEH反调试(SetUnhandledExceptionFilter)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
// SEH反調(diào)試.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。
//#include <windows.h>
#include <stdio.h>DWORD g_bIsDebug = 0x1;// 非調(diào)試模式下會運行這里的代碼
LONG WINAPI ExceptionFilter(PEXCEPTION_POINTERS pExcept)
{g_bIsDebug = 0x0;// 跳過異常指令 mov dword ptr[eax], eaxpExcept->ContextRecord->Eip += 2;// 忽略異常,否則程序會退出return EXCEPTION_CONTINUE_EXECUTION;
}int main()
{SetUnhandledExceptionFilter(ExceptionFilter);// 主動制造 "非法地址" 異常,跳轉(zhuǎn)到異常處理函數(shù)__asm {xor eax, eaxmov dword ptr[eax], eax}printf("%d\n", g_bIsDebug);return 0;
}
只要把制造異常的代碼NOP掉即可反反調(diào)試。
總結(jié)
以上是生活随笔為你收集整理的SEH反调试(SetUnhandledExceptionFilter)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GIVE_A_TRY.exe 逆向(NC
- 下一篇: IDA __OFSUB__ 测试