安全分析与研究
专注于全球恶意软件的分析与研究
关于反调试与反反调试的一些技术,很多人喜欢面试的时候拿来问别人,我这里给大家总结一下,供大家参考学习,多调试多实战分析一些样本就慢慢理解了。
PEB
PEB包含了进程调试相关信息,通过PEB结构体中的标志位,实现反调试,PEB结构中有两个标志位:BeingDebugged和NtGlobalFlag,反调试代码,如下所示:
如果进程被调试,则BeingDebugged值为0x1,NtGlobalFlag值为0x70,如果进程没有被调试,则这两个值为0x0
如何获取PEB结构信息,可以通过windbg,打开windbg调试程序,然后使用命令!peb,如下所示:
使用命令:dt nt!_PEB 000000c63a87c000(PEB地址),就可以得到PEB结构,如下所示:
可以看到被调试的这个进程的PEB中BeingDebugged的值为0x1,NtGlobalFlag的值为0x70
原文始发于微信公众号(安全分析与研究):简单的反调试技巧介绍
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论