Airey 发表于 2021-1-27 23:54

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

本帖最后由 Airey 于 2021-1-27 23:58 编辑

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代码



.line 20
    iget-boolean v1, p0, Lcom/hba/Testapplication/MainActivity;->flag:Z
    const/4 v2, 0x0         
    if-eqz v1, :cond_0   
    .line 21
    invoke-static {}, Lcom/hba/Testapplication/DateUtils;->getTime()Ljava/lang/String;
    move-result-object v1
    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

    .line 23
    iget-object v0, p0, Lcom/hba/Testapplication/MainActivity;->tv:Landroid/widget/TextView;

    invoke-virtual {v0, v2}, Landroid/widget/TextView;->setVisibility(I)V

    goto :goto_0

    .line 25
    :cond_0
    invoke-virtual {v0, v2}, Landroid/widget/TextView;->setVisibility(I)V

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,安装即可。
成功!





用到的工具下载地址:

apk逆向工具:https://y6blnu1l.lanzouj.com/b0dkmcung密码:e7jc




电脑apk逆向工具:
https://y6blnu1l.lanzouj.com/b0dkmcvdc
密码:bqnp


Airey 发表于 2021-1-28 00:20

本帖最后由 Airey 于 2021-1-28 12:57 编辑

米饭大师 发表于 2021-1-27 23:59
新版360反射还能成功吗
我用的3.5版本的反射大师,然后逆向的是最新版藏x馆app,表示可以脱到一些,安装后会闪退,可能没脱干净,也有可能我没修复dex的原因。

Airey 发表于 2022-1-17 10:25

yyyg8 发表于 2022-1-16 20:59
链接都挂了啊大神能补个么

电脑apk逆向工具:
https://y6blnu1l.lanzout.com/b0dkmcvdc
密码:bqnp

apk逆向工具:https://y6blnu1l.lanzout.com/b0dkmcung密码:e7jc

米饭大师 发表于 2021-1-27 23:59

新版360反射还能成功吗

m0716273254 发表于 2021-1-28 01:32

感谢分享,虽然有些看不懂

Sky.Xpy 发表于 2021-1-28 09:49

手游脚本时间限制能破解吗?

13169456869 发表于 2021-1-28 09:59

感谢分享!!

ASlien 发表于 2021-1-28 11:07

支持,全套分享软件的已经很不容易了,一个mt,去分析代码其实就能破很多软件了,只是要搞懂smali的逻辑,新手可以转换成java更好懂一些

慵懒丶L先森 发表于 2021-1-29 01:18

感谢分享,很好的思路提供教程,还提供了工具的下载。期待后期能更新更多的细节,比如脱壳、脱壳后的DEX修复等等教程

EulerNN 发表于 2021-4-2 12:15

谢谢,想入门了

爱睡的小猫 发表于 2021-4-2 17:06

感谢分享,但有一个地方还看不懂,复制到该类那个地方看不懂
页: [1] 2
查看完整版本: 新手安卓逆向破解常规思路