记一次逆向大作业:一个离线阅读器的破解过程

阅读器链接:百度网盘 请输入提取码

软件运行起来是个框框,右键这个框框有菜单可以注册,注册之后会提示快到期了。


拖到DIT里面查壳 发现是C# .Net 有混淆,先不管,直接丢到dnspy里面看代码

直接在dnspy里面搜索 “会员”

可以看到有4个结果,一个个打开看.

其实第一条就是我们要找的结果,仔细观察这个函数可以得到两个很关键的点,一个会员状态,一个过期时间,会员状态本身就是个 enum 枚举有3个状态,会员(永久会员),非会员(期限会员),过期。

根据代码可以看到,这个状态是联网获取的并且请求和响应没有加密,那这里就有两个方式破解抓包破解和修改程序了。

  1. 抓包破解

掏出HttpDbgPro开始分析,先直接开软件,可以看到登录请求,是个GET请求,请求头里面带上了UID,这个UID就是软件界面显示的UID,实际就是用这个UID判断用户的,响应可以看到是明文的

我们把json格式化一下

伪造响应重要数据都出来了,我们直接在HttpDbg里面修改响应的status为1

发现现在怎么提示离线版本了,

发现是被自动回复截断了,改成用文件回复


然后在文件里面改下数据,就可以正常回复,这时候我们再重新打开软件,可以显示会员信息了,但是我们打开会员信息发现和之前的没有变化

但是在httpdbg上可以看到有一条新的请求

伪造完了点一下刷新用户信息

  1. 修改软件

我们已知永久会员的状态是1,直接右键编辑IL指令

我们先把这两句选中,右键用NOP替换,然后在15行填上idc.i4.1(常数1),然后点确定

可以看到代码里面赋值的地方已经被我们替换成一个常量了。注意看下面的switch语句,判断的是服务器返回值的status,所以还需要修改一下,和上面的同理

上面的这个修改了之后switch就变成判断1了,所以保存了之后直接去打开这个exe看效果

学生一个可能有不足,希望有大佬指点一下,诚心感谢
一起加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值