26种对付反调试的方法
发布时间:2019-03-22 20:28:59 所属栏目:策划 来源:luochicun
导读:目前主要有3种分析软件的方法: 1.数据交换分析,研究人员使用数据包嗅探工具来分析网络数据交换。 2.对软件的二进制代码进行反汇编,然后以汇编语言列出。 3.字节码解码或二进制解码,然后以高级编程语言重新创建源代码。 本文针对的是Windows操作系统中
检查操作系统版本的功能代码如下:
如何避开IsDebuggerPresent检查 为了做到这一点,在执行检查代码之前,需要将0置于BeingDebugged。例如,可以使用DLL注入:
Windows X64里的进程如下:
TLS回调 其实,在主函数中检查调试器的存在不是最好的方法,因为TLS回调处于反汇编列表时反向工具的第一个位置。它实施的检查可以由nop指令擦除,从而解除保护。如果使用CRT库,则在将控制权转移到主函数之前,主线程就已经有一个调用堆栈了。执行调试器存在检查的一个方法便是TLS回调。如下图所示,在可执行模块入口调用之前就已经调用回调函数。
NtGlobalFlag 在Windows NT中,存在一组标识,它们存储在全局变量NtGlobalFlag中。在系统启动时,NtGlobalFlag全局系统变量将使用系统注册表项中的值进行初始化:
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |