新手安卓逆向破解常规思路

1、首先逆向一款app软件,先查看是否加固(MT管理器或者ApkScan查壳等工具查看)
2、若被加固(360加固等),可以使反射大师apk进行脱壳。(此处暂时不详细讲)
3、分析代码,可使用jadx工具查看app源码。
4、修改代码,此处代码为smali代码,可使用AndroidKiller工具修改。

这里讲关于修改app会员的方法【注:不会与服务端做校验前提下】
我用自己写的app做为例子,假设这里就是当前会员时间

然后打开SDK文件夹下tools文件夹里面monitor.bat,如图所示
可以看到时间显示id,这时候使用jadx查看源码分析,将APK拖入jadx中,如图所示,

 此时我们搜索刚才查看到的id名字,可以看到被编译后的代码,我们选中一个逐步分析。

 

可见这里有关于时间代码,因为这里是假设,此处flag就是用于模拟服务端是否有会员,因为这里写flag为false,则显示当前会员时间。
此时用AndroidKiller工具对apk进行反编译,进行分析smali代码

 

iget-boolean v1, p0, Lcom/hba/Testapplication/MainActivity;->flag:Z   这个以意思就是flag的值给p0,然后p0给v1


if-eqz v1, :cond_0    判断v1,如果v1为true则继续执行下面的代码,否则跳转到 cond_0 处
因为这里flag为假,则跳转到这里
:cond_0
invoke-virtual {v0, v2}, Landroid/widget/TextView;->setVisibility(I)V


修改会员思路
第一步,让flag为true,只需要修改v1,在if-eqz上面一行写上   const/4 v1,0x1       即可。


第二步,修改时间,因为不与后端服务器做校验,只需要修改代码生成的时间


这个我写了个date的工具类,如图所示

然后将java代码转变成smali代码,这里用到的工具为java2smali 工具

然后将这段代码粘贴到该类里面

修改的代码改成如下,即可

然后保存编译打包成apk,安装即可。

成功!

猜你喜欢

转载自blog.csdn.net/2302_76405773/article/details/132067924