打包器问题及解决方案研究
1. 捕获解包图像的方法
在处理打包二进制文件时,捕获解包图像是一项重要任务。常见的捕获解包图像的方法有以下几种:
- 使用调试器 :
- 可以使用调试器逐行执行代码,或者在特定位置设置断点。
- 不过,打包程序也有反调试手段,常见的反调试方法有两种:
- 使用公共 API :如 IsDebuggerPresent() ,它返回一个布尔值,指示是否存在调试器。破解这种方法可以始终将返回值设置为 FALSE 。
- 检查 NtGlobalFlag 字段 :关注堆尾检查( 0x10 )、堆释放检查( 0x20 )和堆参数检查( 0x40 )这些值。这些值来自注册表键 HKLM/System/CurrentControlSet/Control/Session Manager 中的 GlobalFlag 字段。调试进程在内存中总是设置这些值,可通过清除进程环境块中的这些位来破解。
- 使用模拟器 :
- 在受保护的环境中使用模拟器执行打包二进制文件。
- 但模拟器也面临被攻击的风险,打包程序最常见的攻击方式是尝试检测模拟器,因为很难制作出行为与真实机器非常接近的模拟器。而且不同模拟器的能力不同,检测方法也多样。
此外,并非所有保护方法在执行时都会将
超级会员免费看
订阅专栏 解锁全文
4万+

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



