吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1687|回复: 13
收起左侧

[已解决] 请编写DLL注入后Patch掉自校验

  [复制链接]
苏紫方璇 发表于 2024-1-30 15:48
1000吾爱币
本帖最后由 苏紫方璇 于 2024-2-1 21:22 编辑

zp1.4.9设置只选:校验文件。

下VirtualAlloc和MapViewOfFile断点,运行程序,在VirtualAlloc下断下,程序申请的内存为00AE0000

取消VirtualAlloc,运行,这时断在MapViewOfFile处,返回地址00D50000

再取消MapViewOfFile断点

下断 hr eax,运行程序,在断下位置的段尾ret处下断,之后F7到达这里:

00B06530    3B48 46         cmp ecx,dword ptr ds:[eax+0x46]

这里是校验值比较,可以修改使其相同而跳过自校验,先不修改,继续向下走,

到达目标位置:
00B0B8CB  ^\0F84 F58AFFFF   je 00B043C6                             ; 目标位置

手工修改为jne就跳过自校验了。

偏移值:00B0B8CB - 00AE0000 = 0x2B8CB

实现写一个DLL修改此处00B0B8CB的jz为jne,提供C++源码。

因为网络问题,图片没有上传成功,和程序一起打包:
https://www.123pan.com/s/YL29-nyyOh.html

最佳答案

查看完整内容

第一种比较通用的方法就是在VirtualAlloc 获取地址之后,在je 跳转位置下个硬件执行断点或写入断点,添加VEH来接受异常,修改跳转。 第二种的话你调试器定位它je 代码被写入位置,在0x004BC4D1 位置movsb 会写入代码,你也可以hook这里。如果你观察movsb 前后的代码可以看到 原来的代码是被压缩存储在exe文件里面,你分析压缩算法,直接修改exe文件里面的值也行

免费评分

参与人数 3吾爱币 +3 热心值 +2 收起 理由
lyl610abc + 1 + 1 路过围观,可惜没时间玩一玩这个
cndml + 1 + 1 用心讨论,共获提升!
董督秀 + 1 用心讨论,共获提升!

查看全部评分

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

少年持剑 发表于 2024-1-30 15:48
朱朱你堕落了 发表于 2024-1-30 19:08
少侠,zp使用了MapViewOfFile函数,你根据他这个函数特性HOOK很巧妙,但是如果这不是ZP壳,那么这个HOOK ...

第一种比较通用的方法就是在VirtualAlloc 获取地址之后,在je 跳转位置下个硬件执行断点或写入断点,添加VEH来接受异常,修改跳转。
第二种的话你调试器定位它je 代码被写入位置,在0x004BC4D1 位置movsb 会写入代码,你也可以hook这里。如果你观察movsb 前后的代码可以看到 原来的代码是被压缩存储在exe文件里面,你分析压缩算法,直接修改exe文件里面的值也行
少年持剑 发表于 2024-1-30 16:38

点评

少侠,zp使用了MapViewOfFile函数,你根据他这个函数特性HOOK很巧妙,但是如果这不是ZP壳,那么这个HOOK位置如何找?怎么判断解码? 或这么说吧,如果在本例中你可以HOOK VirtualAlloc, 但不HOOK MapViewOfFile,  详情 回复 发表于 2024-1-30 19:08
无闻无问 发表于 2024-1-30 16:48
苏紫方璇  版主大佬也悬赏?

点评

那必须的呀,不懂就问呗,最近被某人拉进脱壳深坑,一脸懵逼中  详情 回复 发表于 2024-1-30 18:13
 楼主| 苏紫方璇 发表于 2024-1-30 18:13
无闻无问 发表于 2024-1-30 16:48
苏紫方璇  版主大佬也悬赏?

那必须的呀,不懂就问呗,最近被某人拉进脱壳深坑,一脸懵逼中
董督秀 发表于 2024-1-30 18:35
本帖最后由 董督秀 于 2024-1-30 18:36 编辑

佩服,一楼大佬的代码简洁而高效。自己也尝试过其他写法,感觉很复杂。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
朱朱你堕落了 + 1 + 1 论坛高手如云,只是很多大佬潜水而已。

查看全部评分

朱朱你堕落了 发表于 2024-1-30 19:08
本帖最后由 朱朱你堕落了 于 2024-1-30 19:43 编辑

少侠,zp使用了MapViewOfFile函数,你根据他这个函数特性HOOK很巧妙,但是如果这不是ZP壳,没有使用MapViewOfFile函数,那么这个HOOK位置如何找?怎么判断解码?
或这么说吧,如果在本例中你可以HOOK VirtualAlloc,  但不HOOK MapViewOfFile,HOOK位置找哪里,代码怎么写?
bester 发表于 2024-1-30 20:38
MapViewOfFile 段尾retn处下断,获得eax的值,再进行hr eax,运行断下的这个位置,也就是当前eip,这个值加上0x19CA6,就到了je的位置,我不知道是不是个例,反正我电脑上是这样可以算出来,接下来的事情我跟一楼想法差不多 veh解决

点评

兄弟你可以试试,并不容易实现,很多坑的。  详情 回复 发表于 2024-1-31 11:44
朱朱你堕落了 发表于 2024-1-31 11:44
bester 发表于 2024-1-30 20:38
MapViewOfFile 段尾retn处下断,获得eax的值,再进行hr eax,运行断下的这个位置,也就是当前eip,这个值加上0x1 ...

兄弟你可以试试,并不容易实现,很多坑的。
cndml 发表于 2024-1-31 18:24
明明可以直接在文件里修改校验和,静态修改可以,加载进内存后修改更可以,随便hook一个系统函数就能实现。你dll注入后,要判断解码完成,要计算动态地址,不嫌麻烦吗?破解就是要用最简单的技术,达到一剑封喉的效果。

点评

静态修改可以,是可以的。 ”加载进内存后修改更可以,随便hook一个系统函数就能实现“ 大佬,这是什么意思?怎么弄的?  详情 回复 发表于 2024-2-1 01:13
注入dll不就是为了hook一个系统函数来实现么  详情 回复 发表于 2024-1-31 22:28
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-22 02:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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