大白兔联盟

文章搜索
搜索
当前位置:首页 > 前沿技术 > 逆向汇编 > 文章详情

反调试技巧 001 使用 Win32 API反调试

大白兔    2023-4-12  258  0评论

基于win32 api的反调试

说白了就是使用 windows 提供的api函数来检测是否被调试

1. IsDebuggerPresent()

底层原理:
检查进程环境块(PEB)的BeingDebugged标志。
微软说明:

反制调试方法(c++)

if (IsDebuggerPresent())
    ExitProcess(-1);

2. Check/Remote/Debugger/Present

底层原理:
查询进程环境块(PEB)中的IsDebugged标志。
如果进程没有运行在调试器环境中,函数返回0;如果调试附加了进程,函数返回一个非零值。
它不仅可以探测系统其他进程是否被调试,通过传递自身进程句柄还可以探测自身是否被调试。

反制调试方法(c++)

BOOL bDebuggerPresent;
if (TRUE == CheckRemoteDebuggerPresent(GetCurrentProcess(), &bDebuggerPresent) &&
    TRUE == bDebuggerPresent)
    ExitProcess(-1);

技巧

直接创建一个线程实时监控(dog)

_beginthread(TheadDebug, 0, 0);
void TheadDebug(void*) {
        while (!IsDebuggerPresent());
        exit(1);
}

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论