#include <iostream>
#include <windows.h>
using namespace std;
int main() {
FARPROC Uaddr;
BYTE Mark = 0;
(FARPROC&)Uaddr = GetProcAddress(LoadLibrary("user32.dll"),"MessageBoxA");
Mark = *((BYTE*)Uaddr);//取Messagebox函数的第一字节
if (Mark==0xCC)
{
MessageBoxA(NULL, "bad guy ", "", MB_OK);
return TRUE;//发现断点
}
MessageBoxA(NULL, "good boy", "", MB_OK);
system("pause");
return 0;
}
禁止0xCC断点(最简单的反调试手段)
本文展示了一段C++代码,用于检测MessageBoxA函数是否被插入了断点。通过获取函数地址并读取其首字节,判断是否为断点指令(0xCC),从而确定是否有调试器介入。
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印


被折叠的 条评论
为什么被折叠?



