说完反调试,如果不说反反调试就 毫无意义 !

下面讲下针对 TLS 回调函数的反反调试方法。
引用了 TLS 功能的程序会在 PE 文件里生成一个 TLS 表:
进入这个表中查看,发现它的大小为 24 个字节:

关于 TLS 的结构体,有 32 位和 64 位两个版本:


其中 _IMAGE_TLS_DIRECTORY64 大小为:8x4+4x2=40,_IMAGE_TLS_DIRECTORY32 大小为:4x6=24,那么就说明,我们刚刚看到的程序使用了 _IMAGE_TLS_DIRECTORY32 。我们需要的是 AddressOfCallBacks 这个成员,也就是下图中 +12 的这个位置。

在 hex 界面找到 +12 这个位置,又因为 DWORD 大小为 4 ,所以再向后查 4 字节,也就是下图这个样子:
把它的内容清空(设置为 0),保存。再次用 OD 打开程序,发现反反调试已经生效:


拜拜了您嘞
本文深入探讨了针对TLS回调函数的反反调试方法,详细解析了PE文件中的TLS表结构,包括32位和64位版本的区别。通过修改AddressOfCallBacks成员,实现了有效的反反调试策略。
775

被折叠的 条评论
为什么被折叠?



