吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 486|回复: 7
收起左侧

[讨论] 非DLL进行API Hook后如何绕VMP v3版本的调试器检测?

  [复制链接]
董督秀 发表于 2024-11-17 20:38
我想通过纯EXE进行API Hook从而破解示例abcdefg.exe,因此编写了PatchEx64.exe。

PatchEx64.exe的作用是启动示例程序后设置远程Hook NtCreateFile,并等待目标地址解码后写内存。原理类似调试器远程附加进程并设置硬件断点

问题:
PatchEx64.exe运行后能够解决 无壳 的示例与 vmp 2 全保护 的示例,
但是无法解决 vmp 3.8 全保护 的示例,提示发现调试器,原因就是PatchEx64.exe远程附加进程并设置硬件断点的行为类似调试器,因此被检测到了。
我改成使用int 3 断点也不行。

该如何解决这个问题?即在这种情况下如何绕过VMP v3版本的调试器检测提示?

注意:此处要求完全基于纯EXE进行Hook破解不要涉及调用DLL进行破解。调用DLL进行破解是肯定可行的。。。

示例与PatchEx64.exe:
https://wwsc.lanzouo.com/ixjZM2fcu5sd

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
xiuyang6620 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

beatone 发表于 2024-11-17 20:53
时机不对,早了,换API,如有不对,还请谅解
 楼主| 董督秀 发表于 2024-11-17 21:06
beatone 发表于 2024-11-17 20:53
时机不对,早了,换API,如有不对,还请谅解

我试了,换成Hook CreateWindowExW或者Hook NtContinue都不行。如果是使用DLL进行Hook是肯定可以的。但我要求使用纯EXE进行hook。
beatone 发表于 2024-11-18 01:09
https://www.52pojie.cn/thread-688291-1-1.html           这个可以参考

免费评分

参与人数 1吾爱币 +1 收起 理由
董督秀 + 1 这个是Inline patch形式写内存,并非exe实现api hook的

查看全部评分

爱飞的猫 发表于 2024-11-18 03:00
本帖最后由 爱飞的猫 于 2024-11-18 03:14 编辑

Hook API 触发不了,怀疑 VMP 对初始化的那几个函数做了特殊处理。

对 DLL 函数(LoadResource)下的钩子一直没被触发,VMP 可能自己实现了一套 DLL 加载手动从磁盘加载了一份:

此外如果改动的时间过早,会触发内存校验错误:


最后我改成远程启动一个线程,每隔 5s 检测修改一次(反正这玩意初始化贼慢…)。

缺陷:

  • 无法对抗需要尽早修改的情况
  • 根据 CPU 速度,写死的 5s/5次不一定好用,可能换个机子补丁就失败了。

相关代码和补丁(百度网盘

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
董督秀 + 1 + 1 用心讨论,共获提升!

查看全部评分

 楼主| 董督秀 发表于 2024-11-18 03:10
爱飞的猫 发表于 2024-11-18 03:00
[md]Hook API 触发不了,怀疑 VMP 对初始化的那几个函数做了特殊处理。

对 DLL 函数(LoadResource)下 ...

感谢答疑。但能否实现“不依赖于每隔一段时间检测修改一次”的效果。即通过纯exe实现类似dll的api Hook判断解码,并即时修改。

点评

它都不调用我 Hook 的函数(无壳情况下正常触发)。建议测试 VMP + 下 DLL 补丁的情况是否正常。 如果测试通过的话,你可以找 DLL 注入代码(DLL 文件不落地,网上有很多相关源码),将 DLL 注入进去。这个是最省  详情 回复 发表于 2024-11-18 03:14
爱飞的猫 发表于 2024-11-18 03:14
本帖最后由 爱飞的猫 于 2024-11-18 03:16 编辑
董督秀 发表于 2024-11-18 03:10
感谢答疑。但能否实现“不依赖于每隔一段时间检测修改一次”的效果。即通过纯exe实现类似dll的api Hook判 ...

它都不调用我 Hook 的函数(无壳情况下正常触发)。建议测试 VMP 3 + DLL 补丁的情况是否正常。

如果测试通过的话,你可以找 DLL 注入代码(DLL 文件不落地,网上有很多相关源码),将 DLL 注入进去。这个是最省事的。
或者就和我之前回复里的源码一样,手写纯汇编的 ShellCode 然后注入进去执行。缺点就是 Hook 函数 + 自定义的判断逻辑会写起来很麻烦。

免费评分

参与人数 1热心值 +1 收起 理由
董督秀 + 1 谢谢@Thanks!

查看全部评分

 楼主| 董督秀 发表于 2024-11-19 11:21
本帖最后由 董督秀 于 2024-11-19 11:32 编辑
爱飞的猫 发表于 2024-11-18 03:14
它都不调用我 Hook 的函数(无壳情况下正常触发)。建议测试 VMP 3 + DLL 补丁的情况是否正常。

如果 ...

感谢提供思路。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-5 06:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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