反调试技术(一)--静态反调试

为了保护自己的程序不被破译等,很多软件使用了反调试技术来阻止逆向程序员对自己程序进行爆破,这同时也催生了另一种技术--反调试破解技术的出现。反调试技术分为静态反调试技术和动态反调试技术。相比来说静态反调试技术更容易实现,破解一般也只需要一次,我们这次就先谈一下静态反调试技术,以及对应的破解之道。

1.PEB结构中有几个重要的成员标示了进程是否处于被调试状态。(以下以32位为例)
+0x002 BeingDebugged : UChar
+0x00c Ldr                      :  _PEB_LDR_DATA
+0x018 ProcessHeap       : Ptr32 Void
+0x068 NtGlobalFlag       : Uint4B

BeingDebugged成员在被调试状态会显示1,正常情况下为0。解决方法:更改该值为0。
Ldr:进程在被调试状态时堆内存区域会出现一些特殊的标志,未使用的堆内存区域全部填充着0xFEEEFEEE,而Ldr正好在堆内存中被创建(只在XP系统中有,Vista之后的系统没有这种标志)。解决方法:将该区域覆盖为NULL即可。
ProcessHeap:Proce
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值