一步一步教学:动态调试smali代码

事前准备: 逆向工具:Apktool,Jadx
使用的调试工具:Android Studio 2.2.3
使用到一个smali的支持插件:Smalidea
Smalidea插件下载地址:https://bitbucket.org/JesusFreke/smali/downloads/ 要下载后缀zip的插件包哦
安装smaliidea在Android Studio里,才能实现smali断点调试。
在这里插入图片描述
在安装好各项工具后,可以开始我们的逆向之旅。

Step 1:首先使用androidKiller打开apk文件, 在application标签里面要有 android:debuggable=“true” 这句代码,没有是不能调试apk的 现在调试的这个例子默认是有这句代码的 有的apk中没有这句代码要自行添加上。
Step2:当前调试的apk以及是可调试的,那么在apktool的当前目录下放入apk文件,按住shift右键打开powershell,输入以下命令进行apk解包操作。

apktool d -f '.\Test包.apk' -o test

Step3: 之后在当前目录下会得到test的目录,进入该目录将smali代码复制到另外一个空文件夹Reverse_Test_Project

Step4:打开Android studio,import project 选择Reverse_Test_Project
一直点下一步,直到打开主页面。
在这里插入图片描述
Step5: 在主页面点击Android 下拉菜单中选择Project,然后对smali文件夹都点击右键–>Make Directory As —>Source Root。

在这里插入图片描述

Step6:配置远程调试的选项,选择Run–>Edit Configurations 并增加一个Remote调试的调试选项,端口选择:8700,然后点ok
在这里插入图片描述
Step7: 打开命令行 输入命令
adb shell am start -D -n com.test.application/com.test.application.MainActivity 对apk进行动态调试 这条命令运行后手机屏幕将会进入到调试界面(如果手机屏幕没有进入到调试界面说明USB没有连接好手机 或者USB调试模式 没有打开 或者其他原因)

答疑:假设不知道自己apk的报名以及具体activity 可以在手机安装当前进程,即可看到
在这里插入图片描述
Step8:打开Android Device Monitor 记住下图标志的两个数字 然后把Android Device Monitor关掉
在这里插入图片描述
Step9: 打开CMD窗口 输入以下命令

adb forward tcp:8700 jdwp:9173 

转发8700 端口 (这里 jdwp是自己Android Device Monitor中要调试app的Online值 )
这时候在Android Studio 配好的debug configurations就可以收到了。

Step10: 在Android studio 中, 点击File–>Project Structure 配置JDK
在这里插入图片描述
Step11: 在完成了上述步骤后,基本完成环境配置,这时在想要下断的地方鼠标左键点一下,出现红圈就是断点,

Step12:点击Debug ‘smali’ 即可开始动态调试你的APP了
在这里插入图片描述
到此结束,如果还有什么不明白的地方欢迎评论留言!
参考: https://www.52pojie.cn/thread-658865-1-1.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值