PEB
BeginDebug :
调试标记位,当值为1,说明本进程处于被调试状态
//获取调试标记位的值
bool begindebug = IsDebuggerPresent();
if(begindebug)
{
//被调试
}
反反调试方法 : 修改PEB为原始值,OD插件自带了
原始API
int info;
NtQueryInfomationProcess(GetCurrentProcess(),
查询信息类型,
&info,
sizeof(info),
NULL);
查询信息类型 :
0x07 : 获取调试端口(ProcessDebugPort),被调试 0XFFFFFFFF
0x1E : 获取调试句柄(ProcessDebugObjectHandle),被调试,非NULL
0X1F : 获取调试标记(ProcessDebuglag),被调试,为0
反反调试方法 : 找到具体的函数调用,更改其条件跳转
或利用HOOK过滤函数的返回值
反调试
最新推荐文章于 2024-12-08 11:43:55 发布