【安卓逆向】动态调试smali代码


前言

本文是对52pojie《教我兄弟学Android逆向系列课程》按照自己思路的实践,不完全按照原文思路。
原文思路笔者认为走了弯路,且使用了较多工具。
此文使用到的工具仅为:adb、apktool、idea
原文链接:教我兄弟学Android逆向04 动态调试smali代码

下载并使用adb安装

apk链接:https://pan.baidu.com/s/1smNIrST 密码:uzsa
下载完成后,使用adb进行安装

adb install jwx02.apk

安装完成后,在所有应用中可以找到:
在这里插入图片描述
应用界面:
在这里插入图片描述

使用apktool反编译apk

apktool d jwx02.apk

反编译完成后,在apk文件夹下会生成一个和apk同名的文件夹,内容如下:
在这里插入图片描述
其中的smali文件夹就是反编译后的smali文件。
由于smalidea插件不支持android studio 4.1版本,因此这里使用idea进行调试。
smalidea插件下载地址:download page
在idea中安装:
file->setting->plugins->install plugin from disk
在这里插入图片描述
安装完成后,需要重启idea并完成如下修改:
file->setting->editor->filetype
在这里插入图片描述
点击加号并填入*.smali, 然后点击确定。
将使用apktool反编译生成的smali文件夹拖入idea中,不出意外的话,这里已经可以对文件下断点了。
在这里插入图片描述

设置动态调试环境

寻找要调试apk的包名和入口activity,可以在apktool反编译的文件夹下的AndroidManifest.xml文件中找到:
在这里插入图片描述
输入命令开启调试:

adb shell am start -D -n hfdcxy.com.myapplication/hfdcxy.com.myapplication.MainActivity

找到对应包名的pid

adb shell ps

在这里插入图片描述
这里是14288
然后使用adb转发本地端口:

adb forward tcp:8800 jdwp:14288

在这里插入图片描述
紧接在idea中配置远程调试:
在这里插入图片描述
选择remote jvm debug
在这里插入图片描述
端口填为刚刚写的转发的端口:8800
在这里插入图片描述
点击OK就设置完成了。

开始调试

打开main activity, 找到check函数,并设置断点:
在这里插入图片描述
点击右上角的debug
在这里插入图片描述
在程序中输入用户名和密码,并点击登录,可以成功断在断点位置:
在这里插入图片描述
调试信息如下图所示
在这里插入图片描述

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值