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

本文介绍了如何使用adb和apktool进行Android应用的动态调试。首先下载adb并安装apk,然后通过apktool反编译apk以获取smali代码。由于smalidea不兼容androidstudio4.1,故使用idea进行调试。在idea中安装smalidea插件,设置文件类型,导入反编译的smali文件。接着配置动态调试环境,找到包名和入口activity,使用adb命令启动调试并转发端口。最后,在idea中设置远程调试,成功在check函数处设置断点并进行调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

本文是对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
在这里插入图片描述
在程序中输入用户名和密码,并点击登录,可以成功断在断点位置:
在这里插入图片描述
调试信息如下图所示
在这里插入图片描述

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值