安卓逆向的一个小例子,顺便分享安卓逆向视频教程
首先分享一份安卓逆向的视频地址烦请查看http://www.52pojie.cn/thread-247179-1-1.html
还有顺便推介一下吾爱里移动安全区放出的安卓逆向8节课,持续更新。
学着做了一段时间的windows逆向的内容,相接处一下安卓的就找了一些资料。看完之后受益匪浅,但是还是有一些欠缺的东西。比如app被加壳
后,还不会去app的壳,如果谁能看见,烦请分享一下。
不多废话,这里拿了一个吾爱的例子做学习,由于刚接触,东西拿的比较low,大家要是有好的app练习的话也可以联系我一起学习。
1、首先你得有安卓逆向的一些工具,这里我用的是apkIDE,吾爱的工具包里有了。还需要下载jdk包然后配置java环境,这里不多说,很简单。
2、其次我们需要的就是一个安卓的模拟器,网上有好多,比如蓝蝶和海马等。
3、基本流程是,首先把app放到模拟器中,看一下我们需要着手的点还有一些需要注意的事项,关键的信息等做记录;其次,我们进行用IDE
进行反编译,并搜索关键信息;找到关键信息后分析关键代码,修改关键位置;最后编译查看是否达到目的。整个流程基本上和Windows内容相
差不大。
4、将app放到ide中,查找关键词激活vip,这里需要注意的是unicode和ascll的区别和转换。
5、这里只找到一个信息进入发现附近信息。
const/16 v2, 0x1e
if-ge v0, v2, :cond_0
在这里我们可以看到这个判断的语句,送查看v0和31的大小也就是之前看到30分的要求,则可以知道这个判断决定这程序的走向。如果小于30则直接
往下走,如果大于等于31则直接跳到cond_0
6、所以我们可以做以下修改:
const/16 v2, 0x1e
goto :cond_0
这样是让判断直接到达cond_0的情况。
7、重新编译,验证没问题。