app安卓逆向之动态调试smali代码(不需要修改app代码)

1.准备工具


2.正式调试

2.1 apk反编译

  1. 对于apk文件的获取这里不过多叙述,可以使用电脑直接从官网下载,也可以在模拟器中下载然后使用共享文件夹传到电脑端,百度网盘里有京东到家的apk提供学习。

  2. 把对应的apk文件放到随机文件中,这里直接放在apktool文件夹中
    在这里插入图片描述

  3. 地址栏输入cmd,弹出命令行窗口运行语句,执行完毕会在apk所在目录生成反编译好的apk文件

    apktool d base.apk							- d后面跟apk文件地址,相对绝对路径都可
    

在这里插入图片描述
在这里插入图片描述


2.2 adb配置

  1. 将安卓 \sdk\platform-tools\adb.exe 的adb.exe复制到模拟器中的 \xyMobile\Microvirt\MEmu文件夹,对该文件夹下的adb.exe进行覆盖

2.3 Android Studio的使用

  1. Android Studio打开刚才反编译后的文件夹

  2. 载入完毕后,右键根目录设置为Sources Root
    在这里插入图片描述

  3. 导航栏FILE\Settings\Plugins引入smalidea插件,选择smalidea-0.05.zip,然后重启Android Studio
    在这里插入图片描述

  4. 重启完毕使用adb指令连接安卓模拟器(如果前面AS及SDK配置好的话这里能直接在AS的Terminal使用adb指令,如果不能使用,需要重新配置好相应的SDK配置,请自行百度<as配置sdk>)

  5. 启动对应的安卓模拟器载入完毕后,然后在打开了刚才反编译目录的AS窗口中,点开Terminal命令框输入指令

    adb devices
    

    查看是否已经成功连接上安卓模拟器,如图已连接成功
    在这里插入图片描述

    如果没有显示有已连接列表,则先百度查询对应安卓模拟器的adb默认连接端口,然后输入指令

    adb connect 127.0.0.1:端口号
    

    参考端口列表:

    模拟器名称adb端口
    夜神安卓模拟器62001
    逍遥安卓模拟器21503
    BlueStacks(蓝叠安卓模拟器)5555
    雷电安卓模拟器5555
    天天安卓模拟器5037
    网易MuMu(安卓模拟器)7555
    安卓模拟器大师54001

重点!!!!以下操作请按照顺序来,不然可能出现看不到手机进程信息的情况
6.更改内存中ro.debugger的值,使得在不修改apk的前提下进行动态调试,操作如下:

  • 将mprop文件(网盘中有)放置到安卓模拟器的/data/local/tmp目录下

  • 在AS的Terminal命令框中输入指令,进入到安卓系统中(前提AS与模拟器已连接成功)

adb shell

在这里插入图片描述
7.进入到/data/local/tmp目录,运行命令

    chmod 777 mprop

    ./mprop ro.debuggable 1

8.此时关闭AS,仅保留安卓模拟器

9.进入Android Studio主文件夹,进入子目录 \sdk\tools\,打开monitor.bat(AS3.0开始取消了monitor的内置模块,需要到sdk所在文件中启动)
在这里插入图片描述

10.重新打开AS并且仅仅打开当前反编译后app的项目

11.重复以上第五步操作,重新使用adb connect连接安卓模拟器,此时便能看到手机的进程信息
在这里插入图片描述

12.连接成功后使用模拟器打开对应app应用
在这里插入图片描述


2.4 断点动态调试

  1. 此时在安卓模拟器中打开目标app,在monitor.bat中找到对应的进程信息
    在这里插入图片描述

    此处的8620为目标端口号

  2. 返回AS,新增Remote
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

​ 保存退出,debug运行。

  1. 由于apktool反编译出来为smali代码,因此最好使用其他能反编译成java代码的工具对照查看,本人一般使用jadx(网盘中有,直接运行.exe即可,前提是本地配置好jdk)。对照着查看目标代码,打好断点进行,操作app进行调试。
    在这里插入图片描述

3.总结

​ 至此已经完成了基于Smalidea+Android studio动态调试,记得目前AS4.1版本由于冲突问题不兼容smalidea插件,因此请使用AS4.1以下版本!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值