阅读器链接:百度网盘 请输入提取码
软件运行起来是个框框,右键这个框框有菜单可以注册,注册之后会提示快到期了。
拖到DIT里面查壳 发现是C# .Net 有混淆,先不管,直接丢到dnspy里面看代码
直接在dnspy里面搜索 “会员”
可以看到有4个结果,一个个打开看.
其实第一条就是我们要找的结果,仔细观察这个函数可以得到两个很关键的点,一个会员状态,一个过期时间,会员状态本身就是个 enum 枚举有3个状态,会员(永久会员),非会员(期限会员),过期。
根据代码可以看到,这个状态是联网获取的并且请求和响应没有加密,那这里就有两个方式破解,抓包破解和修改程序了。
- 抓包破解
掏出HttpDbgPro开始分析,先直接开软件,可以看到登录请求,是个GET请求,请求头里面带上了UID,这个UID就是软件界面显示的UID,实际就是用这个UID判断用户的,响应可以看到是明文的
我们把json格式化一下
伪造响应的重要数据都出来了,我们直接在HttpDbg里面修改响应的status为1
发现现在怎么提示离线版本了,
发现是被自动回复截断了,改成用文件回复
然后在文件里面改下数据,就可以正常回复,这时候我们再重新打开软件,可以显示会员信息了,但是我们打开会员信息发现和之前的没有变化
但是在httpdbg上可以看到有一条新的请求
伪造完了点一下刷新用户信息
- 修改软件
我们已知永久会员的状态是1,直接右键编辑IL指令
我们先把这两句选中,右键用NOP替换,然后在15行填上idc.i4.1(常数1),然后点确定
可以看到代码里面赋值的地方已经被我们替换成一个常量了。注意看下面的switch语句,判断的是服务器返回值的status,所以还需要修改一下,和上面的同理
上面的这个修改了之后switch就变成判断1了,所以保存了之后直接去打开这个exe看效果
学生一个可能有不足,希望有大佬指点一下,诚心感谢
一起加油!