安卓逆向实战——录音达人
安卓逆向实战——录音达人
前言
这是从mt论坛的一篇教程帖子而来的,算是比较简单的入门级逆向了,但我觉得可以很好地体现逆向思路,于是便记录了下来。
正文
首先观察这个软件的会员截图
提示有VIP,而且需要登陆才可以使用。
然后果断放到mt里面看看情况。
这款软件逆向起来比较简单,没有加壳,但有签名验证。所以首先是用mt管理器对它进行去签处理,就用v1+v2+v3的版本就行了。
去签了之后就可以对dex文件进行逆向操作了。
这种简单的app直接搜方法名就行了。搜索isvip,进入第一个方法。
然后就开始分析smial语法就行了。我就直接把smile语法贴出来了。
1 | .method public isVip()Z |
分析可知,这是一个判断是否为vip的方法,就是通过d函数的返回值来判断是否为vip,这里mt论坛上的原帖是再次进入d函数中,针对d函数所返回的值进行逆向,也是可行的,我就直接在下面加了一行代码,将v0强行赋值为1,一样可以实现逆向。
效果如下,可以看到已经成为VIP了。
然后就是关于文字转语音的时长破解。
在isvip的方法往上翻,可以找到这个方法getUserTimeS
1 | .method public getUserTimeS()J |
这个就是控制可语音转文字时长的关键代码。修改原理跟上面的类似,也是直接在返回v0的值前给v0赋值。
这里我用的论坛给的数据。
1 | const-wide v0, 0x4102369980000L |
这样对v0进行赋值就可以了。
逆向成功,可以正常使用语音转文字功能。帖子里的逆向方法是继续进入d函数里面,对d函数的返回值进行修改,大同小异,也可以最终实现功能
后记
至此,所有的逆向已经结束。附上原帖:https://bbs.binmt.cc/thread-142642-1-1.html
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lucky!
评论