恶意样本分析-Lab16-01 反调试1分析
恶意样本分析-Lab16-01 反调试1分析
这个样本是随书《恶意代码分析实战》第十六章的样本,主要用来熟悉反调试的一些手段,这个算是样本分析中需要掌握的基础知识。这篇笔记会包含了静态分析和静态分析。基本要求
在分析这个样本之前可以先看一下恶意样本分析–16Windows中一些常用的反调试记录
静态分析
静态分析就不做PE信息的分析,直接走IDA分析,这个过程尽量不走伪代码分析,分析汇编指令,便于在x64dbg上分析时快速定位。
由于已经在第九章分析了,因此这里关注到反调试手段。首先来到入口处看到关键指令
很明显这个两个检测都是PEB
结构的变量的检测,如果都不为0,则会调用函数sub_401000
删除样本。
动态调试分析
使用x64dbg
加载来到入口位置(这里注意如果程序放行就会停止同时样本被删除),
- 检测BeingDebugged
第一个检测返回状态值不为0,为1
手动修改结果eax=0
修改完之后就手动过掉这个检测。
-
测ProcessHeap
双击ZF就从0变为1
这样就过掉这个检测。
-
检测NtProcessFlag
这里会检测NtProcessFlag的值是否为0x70
正常情况的是0,如果被调试可以看到这个状态值是0x70
这里同样清掉这个值为0即可。
这样就过掉所有的检测了
剩下的就是之前分析的不再继续分析了。