根据上一张追踪的流程 可以分析ShellCode部分
这一节分析对ShellCode第一部分 反虚拟机进行关键部分分析
具体流程如下:
通过fs:[0x30]PEB 找到Kernel32.dll模块 —> 根据Kernle32.dll模块 找到LoadLibraryA函数 —> 通过LoadLibraryA加载ntdll.dll模块
—>通过ntdll.dll模块 然后获取到NtQueryVirtualMemory函数 —>通过调用NtQueryVirtualMemory 获取自身内存 然后对内存里面的数值 进行算法运算 得到一个特征码—>比较压入堆栈的特征码 如果比较成功证明在虚拟机环境中运行 否者就是 在真实物理机运行
堆栈里面压入的是虚拟机特征码
获取到NtQueryVirtualMemory函数
调用NtQueryVirtualMemory函数 从0x10000开始检查 内存地址
看看关键位置
将这里条件改为无条件 就能绕过反虚拟机
其实里面获取 ntdll.dll模块 获取函数 都是通过一个函数加密模块名/函数名 达到静态分析 肉眼不能直接看出。。。
来源:freebuf.com 2021-04-21 17:43:19 by: Crackhacker
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册