C++ 反反调试(TLS回调函数)

关于 TSL 反调试的内容,参考这篇文章

说完反调试,如果不说反反调试就 毫无意义
在这里插入图片描述

下面讲下针对 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 打开程序,发现反反调试已经生效:
在这里插入图片描述在这里插入图片描述
拜拜了您嘞

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值