看流星社区

 找回密码
 注册账号
查看: 2085|回复: 0

反反调试总结

[复制链接]

该用户从未签到

发表于 2017-6-1 13:34:08 | 显示全部楼层 |阅读模式
TP:3种方法适用于win7 x64 ~ win10
一:1.恢复调试权限 2.结束11号线程 3.恢复所有线程
二:秒杀TP方法:CE使用VEH模式 结束11号线程
三:手动过TP:先于TX游戏运行OD,结束11号线程 直接附加进程
x86方法:
1.以上随便一种 + IAT HOOK Tesafe.sys MmIsAddressVaild 对挂钩函数地址进程过滤
2.以上随便一种 + 重载内核
HS:
1.双机调试
大部分HS游戏使用TMD壳 而TMD壳有一个反调试函数 使用ZwQuerySystemInformation 35号功能SystemKernelDebuggerInformation 检测内核/应用层调试器
过的方法内核Hook ZwQuerySystemInformation 进行过滤 x64需要越PG!
HS的驱动使用MmGetSystemRoutineAddress获取KeDebuggerEnabled 和 KdEnableDebugger 地址进行操作使双机失效 方法是:hook MmGetSystemRoutineAddress 只要是获取这两个函数都返回一个假函数指针一个假内存地址
在应用层使用
ZwQueryInformationProcess 7号功能 ProcessDebugPort 检测是否被调试 方法 hook ZwQueryInformationProcess 过滤7号功能 使返回数据为0即可
x64下还需要处理ObjectCallBacks 注销也好替换也好总之不要HOOK 有检验 当然如果有精力可以HOOK 然后hook NtOpenprocess 过滤OD等调试工具 总之不能让它自己得到自己的句柄即可
XIGCODE3:
双机使用了SEH结构化异常处理 自己触发int 2d异常 自己处理 如果有调试器这个异常就被调试器夺过去了 调试器只是将eip+1 然后就放行了,游戏找不到这个异常就over 方法hook int 2d触发的地方 跳过异常的地方直接跳进他的异常函数
XIGCODE3的反调试很简单 一个StrongOD就可以调试了 问题是如何保护OD ObjectHook或者ObjectCallBacks都行
如果发现打不开进程 就要恢复ObjectCallBacks 然后hook NtOpenProcess进行过滤 ObjectCallBacks的特点是全局 任何进程都必须遵守 这也是为什么白名单失效的原因
做到打不开进程即可当然要过滤OD啦
XIGCODE检测很强 反调试很弱
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-19 11:36

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表