吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1557|回复: 8
收起左侧

[.NET逆向] 记一次简单的.NET程序patch过验证

[复制链接]
M3351AN 发表于 2025-11-1 11:11
本帖最后由 M3351AN 于 2025-11-1 11:14 编辑

"人们不想买一个四分之一英寸的钻头。他们想要的是一个四分之一英寸的孔!" -- 西奥多·莱维特


某个网络游戏的第三方离线版启动器,可能是基于法务问题等的考量,在启动时会验证是否安装了正版游戏。

Screenshot 2025-10-23 204951.png

而这个启动器是开源的,而且是.net mono,但每次更新都要重新编译/用dnspy修补,也是很麻烦的
于是就有人发明了创建注册表项和占位文件来过验证的方法,但这个方法,我觉得终究是不够优雅

而众所周知的,这个离线版的客户端启动器是一个基于.NET 9的程序,在较早的版本中(4.0.0 以前)基于.NET的更早版本。
但它们的原理都是相同的。启动程序时,CLR会接管执行,然后通过JIT编译器,把IL转换成本机机器码。
而我们的修补则从IL入手。我们首先利用ILSpy工具找到验证函数的代码,
它在这里(几乎同样的源码已经由这个离线版的开发团队开源,可以看到几乎一致)
image.png
接着我们切换到IL视图,得到了这样的IL代码
image.png
它所对应的字节码就是
[Asm] 纯文本查看 复制代码
07
16
FE 01
2A
关键在于 07 和 16 这两个字节,在IL代码中,它们分别代表 ldloc.1 (加载局部变量1)和 ldc.i4.0(压入常量 0),它们组成了相等判断的两项.
如果我们改为
[Asm] 纯文本查看 复制代码
16
16
FE 01
2A

得到的就是
image.png
显然,这永远返回“真”
同理,改为
[Asm] 纯文本查看 复制代码
07
07
FE 01
2A

image.png
这一样会永远返回真。
接着就是定位这段字节序列所在的位置,只需要使用随意哪个十六进制编辑器进行搜索,
但如果直接搜索07 16 FE 01 2A我们会得到至少4个结果
image.png
但与此同时,我们注意到在这段代码前还有leave.s IL_00d4语句
image.png
因此可以确定图中1C0B942位置,即DE 00 07 16 FE 01 2A对应的就是我们要找到的位置,
保险起见我们取特征码到26 15 0B DE 00 07 16 FE 01 2A
只patch一个字节
Screenshot 2025-10-23 205048.png
测试,启动器成功启动离线版游戏,没有再弹出正版提示。这个方法也可以很方便的编写自动工具,根据特征码找到要修改的IL代码的位置,patch一个字节,优雅的解决问题

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
pHz + 1 热心回复!
3yu3 + 1 + 1 用心讨论,共获提升!

查看全部评分

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

煙花 发表于 2025-11-3 13:16
进来学习学习
huangmo1 发表于 2025-11-4 10:04
jgs 发表于 2025-11-4 14:52
可以用论坛内wtujoxk的C# .net内存特征码搜索、内存修改、软件断点工具写一个通杀补丁更优雅。
https://www.52pojie.cn/forum.php?mod=viewthread&tid=2001085&highlight=%CC%D8%D5%F7%C2%EB
 楼主| M3351AN 发表于 2025-11-4 23:44
jgs 发表于 2025-11-4 14:52
可以用论坛内wtujoxk的C# .net内存特征码搜索、内存修改、软件断点工具写一个通杀补丁更优雅。
https://ww ...

哈哈,感谢提醒。我一开始还没发现有这么好用的工具,所以干脆自己造轮子了,用C++写了一个小程序,觉得还不够方便,又干脆用js重构一个网页版的,让AI画网页了
akr1982 发表于 2025-11-5 01:25
学习了  抄作业开始~~~~
aochuan 发表于 2025-11-5 20:37
老了,只看不好弄了
SONGXINGJING520 发表于 2025-11-6 08:48
.net的研究真是博大精深
Ezra05972 发表于 2025-11-6 14:35
成功get到
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-11-15 15:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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