Android逆向-动态调试smali代码
使用AndroidStudio可以动态调试Smali代码,需要用到一个插件smalidea-0.05.zip
smalidea-0.05.zip
1.安装插件
2.将smali代码所在的目录导入AndroidStudio中,并在入口类中下断点
3.安装apk
Adb install xxx.apk
以调试方式启动apk
adb shell am start -D -n com.bufish.org/.LogoActivity
4.在AndroidMonitor中现在调试进程,设置调试端口为8700
5.在AndroidStudio增加一个新的调试配置
6.使用工具栏中的debug按钮,进行连接调试。
调试过程中,可以查看寄存器的值
Android逆向-动态附加调试smali代码
前提条件:
①apk中的清单文件中application标签中有debug属性
android:debuggable=”true”
或者整个android系统是debug版本
②关闭Android Monitor
调试步骤:
首先运行一下apk,然后调试方式启动apk
adb shell am start-D-n com.bluelesson.apkcrackme/.MainActivity
在AndroidStudio中直接附加进程
附加分析cake.apk
两种调试方式注意:
方式一:
1.androidkiller 反编译apk,生成smali代码AndroidKiller v1.3.1\projects\fkby\Project
2.使用android studio导入反编译生成的project如果没有安装smalidea插件,需要先安装一下,安装完之后重启
3.开monior
4.开模拟器
5.以调试方式启动apk(先安装apk)
adb shell am start-D-n com.bufish.org/.LogoActivity
6.在monitor中找到调试进程,选择进程,设置通用调试端口8700
7.在android studio设置断点,创建调试配置,设置调试端口
默认是8700,如果连不上,连接monitor中进程显示的端口
8.点击android studio中的调试按钮,连接调试
常见问题:
1.模拟器无法在monitor中正常显示进程列表
关掉模拟器,结束掉adb进程,重启模拟器
2.调试连接端口无法连接8700
换进程的另一个端口
方式二:
前提条件:程序要有debug属性或者系统是debug系统
1.androidkiller反编译apk,生成smali代码
2.使用android studio导入反编译生成的project如果没有安装smalidea插件,需要先安装一下,安装完之后重启
3.开模拟器
4.以调试方式启动apk(先安装apk)
5.点击android studio中的附加调试按钮,连接调试