吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3849|回复: 89
收起左侧

[原创] 记录第一次破解 .NET单行阅读器无限试用

  [复制链接]
adogs 发表于 2024-7-30 19:59
最近在上班摸鱼的时候发现了一个好用的阅读器,他只有一行文字,可以完美的隐藏在屏幕里面,光明正大的摸鱼而不被老板发现。
具体效果如下:

使用效果

使用效果

但是用了几天之后发现,发现试用天数已经到了,必须要充值才能继续使用。

会员到期

会员到期

对于一个刚开始打工的牛马来说,掏钱那是万万不可能的。所以我先尝试在网上寻找有没有“学习版”来使用一下。但是这个软件好像太小众了,52里也没有相关的资源。
然后我就开始琢磨着自己尝试破解一下。首先先跟着论坛里的新手导航帖学习了一下工具的使用,发现通常破解的第一步是要先确定软件是用什么语言编写或用什么软件编译的。
那么我就试着先给这个软件拖到DIE里看一看。

DIE

DIE

发现他使用了一个叫.NET Framework的库,刚好我在浏览新手导航帖的时候发现有一个Blue大佬的.NET系列教程,于是我就去拜读了一下大佬的第一篇教程。
首先使用NETReflector8软件打开需要破解的阅读器软件。并在搜索栏搜索充值弹窗的字符串,看看能不能从代码上下文找到突破口。

NETReflector8

NETReflector8

搜索后发现只有一个CheckOverDue的函数里有包含这个字符串,那么点进去看看。

CheckOverDue

CheckOverDue

运气很好,一下就找到了控制弹窗出现的逻辑。仔细分析一下这个函数,这个函数的作用是检查用户的试用期限是否到期。
首先将用户的状态与一个叫OverDue的变量进行比较,如果不相等就直接返回true。那跟着看看状态函数和OverDue变量。

UserStatus

UserStatus

OverDue

OverDue

可以看到OverDue是一个值为-1的常亮,而状态函数里如果用户的使用时间超过了软件设置的时间,则会使状态等于OverDue,那么在checkOverDue这个函数里的第一个判断语句里,判断的值一定就为False,没有办法到达return true的语句,所以就会进行第二个判断,并弹出需要充值的弹窗。
那么现在问题的关键就已经找到了,只需要使checkOverDue这个函数永远也无法到达第二个判断语句,那么我们就不会再触发充值弹窗了。首先使用reflexil1插件看一下checkOverDue的IL代码。

reflexil1

reflexil1

发现02行代码中,使用bne.un.s来比较status与-1的值,经过网上查阅发现,ben.un.s操作码的作用是如果两个值不相等,则执行后面的语句。
但是前面分析发现现在status的值一定是等于-1的,那是不是意味着,如果我把这个代码的逻辑改为,两个值相等就执行后面的语句,就可以直接返回true,而避开第二个判断语句了?
说干就干,在网上查阅发现beq.s操作码的作用是如果两个值相等,则执行后面的语句,所以可以使用reflexil1插件将02行代码中的ben.un.s操作码改为beq.s操作码。

beq.s

beq.s

点击update,再使用reflexil1插件保存后,打开软件试一试。

破解成功

破解成功

可以看到现在已经可以成功打开小说阅读了,这次的破解就完成了。
但是后面仔细思考了之后发现,目前改的这个逻辑,只适用于已经到期了的用户。如果是一个新用户,就会出现他明明有试用天数,但是却会弹出充值窗口。
后来发现可以将CheckOverDue函数的逻辑改为,不管怎样,都直接返回true,这样无论是哪一个用户,都可以有无限的试用。
最终CheckOverDue函数修改代码如下,主要是将第00行代码,改为直接用一个ldc.i4.1操作码向栈中存入一个1,也就是true值。
然后将第01行代码改为ret操作码,ret操作码的作用就和return一样,返回一个值。
最后将第02行代码删除,保存后即可成功破解。

最终修改

最终修改

原文件和破解文件如下:
read133.7z (1.03 MB, 下载次数: 492)

免费评分

参与人数 23威望 +1 吾爱币 +38 热心值 +21 收起 理由
笙若 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
易世界 + 1 + 1 我很赞同!感谢大佬!!!!
zzivy629 + 1 + 1 谢谢@Thanks!
joypluto + 1 + 1 谢谢@Thanks!
zuo0yu + 1 + 1 谢谢@Thanks!
zhiyuckt + 1 我很赞同!
lkpoijuh + 1 + 1 很不错,学习一下
Ditto + 1 + 1 谢谢@Thanks!
xfmls + 1 + 1 用心讨论,共获提升!
hyeiz + 1 谢谢@Thanks!
LENY77777 + 1 + 1 热心回复!
再现倪容 + 1 + 1 热心回复!
Explorer12138 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
RFZ1ZJ + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
月婀谷 + 1 + 1 我很赞同!
wzq98 + 1 + 1 谢谢@Thanks!
trieast + 1 谢谢@Thanks!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
T4DNA + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
kavxc + 1 用心讨论,共获提升!
hgyzm + 1 我很赞同!
ForCifer + 1 + 1 谢谢@Thanks!
Augsummer + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

AronnaxM 发表于 2024-7-31 08:55
隐蔽性似乎强于thief
leroy特洛伊 发表于 2024-7-31 17:05
状态与一个叫OverDue的变量进行比较,如果不相等就直接返回true。那跟着看看状态函数和OverDue变量。

既然这样?为嘛部直接一字节修改  “  !=”  为  “=”达到破解目的?
lancelot623 发表于 2024-7-31 06:58
52UFO 发表于 2024-7-31 07:13
这个阅读器简直是摸鱼神器
Jars_123 发表于 2024-7-31 08:41
学习一哈,软件看着不错
xinqinglhj 发表于 2024-7-31 09:13
感谢分享,受教了。
xmj906 发表于 2024-7-31 09:19
感谢分享
zzqzzq 发表于 2024-7-31 09:21
感谢分享!
Augsummer 发表于 2024-7-31 09:25
厉害,学习到了。
tydzjing 发表于 2024-7-31 09:26
单行阅读,像我一目十行这种,不知道读起来会不会觉得慢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-11 19:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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