安卓逆向分析教程2


【开始操作】APK拖进AndroidKiller,刚开始就出现问题
01.png 
文件一直卡死在这里,百度搜索了一下,AndroidKiller版本因为不更新,不能兼容最新SDK生成的APK,于是我就去下载ApkIDE改之理,因为本人本身就是刚接触电脑端安卓逆向,也不会存在换软件后不适应的情况,所以继续,安装完成APKIDE后,同样的,将安装包拖进去,如下图
02.png 
手机打开APP后确认过,进去后就是购买界面,操作方法与思路与前面的笔记一样,打开AndroidManifest.xml,找到第一启动类的路径,如下图
03.png 
根据路径,打开对应的smali文件已帖其实找到的字符的smali文件貌似是我们一开始找到的smali文件的副类,本人新手,也不知道用什么专业用语来形容,不知道的可以自行去上一笔记进行比较
04.png 
我通过路径发现这里有两个,貌似与上次很像,先打开下面的看看
05.png 
点击这个按钮,查看Java源码
06.png 
可以看到onClick(单击)事件里面有Toast.makeText方法,这是生成弹窗的方法,后面这串数字应该就是需要输出的对象的文本,根据我以前安卓开发的经验,打开R.string文件来找到对应的内容,如下图
07.png 
可以看到一个成功,一个失败,这样我就可以确定了,我们打开smali文件,找到对应的地方,我在MainActivity.smali里面并没有找到Toast方法,但是我看到了这个
08.png 
可以看到,这里的Lnnj/newcm/MainActivity;->success:Z就是上面那个if判断里面的内容 


【修改方法一】
.line 18const/4 v0, 0x0

iput-boolean v0, p0,Lnnj/newcm/MainActivity;->success:Z 

return-void 

修改为:
.line 18const/4 v0, 0x1 

iput-boolean v0, p0,Lnnj/newcm/MainActivity;->success:Z 

return-void  


还记得我之前讲过另外一个smali文件吧,抱着试试的心态,我打开了那个smali文件
09.png
真的找到了,Toast方法,再往上看,发现了if判断,判断条件是V2,再往上发现了两个不知道的对象,同样的,我打开smali这边的R$string.smali看看
10.png 
同样的,找到了成功与失败,返回前面smali文件
11.png 
12.png 
我们可以看到一个是获取到V4的字符串,一个是获取到V3的字符串,V4是成功的提示 


【修改方法二】
const v4, 0x7f060023 

const v3, 0x7f060022

const/4 v2, 0x0 


修改为:
const v4, 0x7f060023

const v3, 0x7f060022 

const/4 v2, 0x1 

【修改方法三】(不建议使用)
const v4, 0x7f060023 

const v3, 0x7f060022 

const/4 v2, 0x0 


修改为:
const v4, 0x7f060023

const v3, 0x7f060023

const/4 v2, 0x0 


【修改方法四】
.line 36iget-object v0, p0, Lnnj/newcm/MainActivity$1;->this$0:Lnnj/newcm/MainActivity;

iget-boolean v0, v0,Lnnj/newcm/MainActivity;->success:Z

if-eqz v0, :cond_0 


修改为:
.line 36iget-object v0, p0,Lnnj/newcm/MainActivity$1;->this$0:Lnnj/newcm/MainActivity;

iget-boolean v0, v0, Lnnj/newcm/MainActivity;->success:Z 


if-nez v0, :cond_0

赞 (0)