androidstudio动态调试smali
2017-08-01 11:01
495 查看
参考:http://blog.csdn.net/jiangwei0910410003/article/details/51456735
总体思路:apktool反编译APK修改为可调试并加入断点,apktool回编译APK并signapk加签名,安装,以调试状态打开app,端口转发
baksmali反编译APK得到源代码,用androidstudio打开并设置sourceroot和远程调试端口设置,打好断点就可以开始调试。
一、配置插件
下载插件smalidea
地址: https://bitbucket.org/JesusFreke/smali/downloads
下载smalidea-0.03.zip
下载完成后,打开Android studio的Settings | Plugins,选择 Install plugin from disk
二、反编译apk,修改AndroidManifest.xml中的debug属性并在oncreate()打好断点
1
修改AndroidManifest.xml中的android:debuggable=”true”
找到入口Activity之后,我们直接在他的onCreate方法的第一行加上waitForDebugger代码即可,找到对应的MainActivity的smali源码:
然后添加一行代码:
invoke-static {}, Landroid/os/Debug;->waitForDebugger()V
这个是smali语法的,其实对应的Java代码就是:android.os.Debug.waitForDebugger();
修改完成之后,回编译apk并且进行签名安装
1
然后对APK重新进行签名
java -jar .\sign\signapk.jar .\sign\testkey.x509.pem .\sign\testkey.pk8 debug.apk debug.sig.apk
签名之后就可以进行安装了
安装上面重新签名得到的apk应用
apk install AliCrackme_1.apk
创建目录Smali/src,并且使用baksmali反编译输出到该目录下
创建目录SmaliDebug/src
java
-jar baksmali-2.0.8.jar
AliCrackme_1.apk
-o SmaliDebug/src
3、使用Android Studio导入该目录SmaliDebug
4、选择Create project from existing sources,之后一直选择next
5、成功导入工程后右键点击 src 目录,设定Mark Directory As->Sources Root
6、配置远程调试的选项,选择Run–>Edit Configurations:
7、增加一个Remote调试的调试选项,端口选择:8700
8、设置端口号
9、选择File–>Project Structure 配置JDK
10、以调试状态启动app
然后进行端口转发:
adb forward tcp:8700 jdwp:24551记住这时候需要将DDMS关掉,不然会出现错误
1
1
11、下好断点之后Run->Debug
12、调试程序
总体思路:apktool反编译APK修改为可调试并加入断点,apktool回编译APK并signapk加签名,安装,以调试状态打开app,端口转发
baksmali反编译APK得到源代码,用androidstudio打开并设置sourceroot和远程调试端口设置,打好断点就可以开始调试。
一、配置插件
下载插件smalidea
地址: https://bitbucket.org/JesusFreke/smali/downloads
下载smalidea-0.03.zip
下载完成后,打开Android studio的Settings | Plugins,选择 Install plugin from disk
二、反编译apk,修改AndroidManifest.xml中的debug属性并在oncreate()打好断点
java -jar apktool_2.0.0rc4.jar d -d AliCraceme_1.apk -o out1
1
修改AndroidManifest.xml中的android:debuggable=”true”
找到入口Activity之后,我们直接在他的onCreate方法的第一行加上waitForDebugger代码即可,找到对应的MainActivity的smali源码:
然后添加一行代码:
invoke-static {}, Landroid/os/Debug;->waitForDebugger()V
这个是smali语法的,其实对应的Java代码就是:android.os.Debug.waitForDebugger();
修改完成之后,回编译apk并且进行签名安装
java -jar apktool_2.0.0rc4.jar b -d out -o debug.apk1
1
然后对APK重新进行签名
java -jar .\sign\signapk.jar .\sign\testkey.x509.pem .\sign\testkey.pk8 debug.apk debug.sig.apk
签名之后就可以进行安装了
安装上面重新签名得到的apk应用
apk install AliCrackme_1.apk
创建目录Smali/src,并且使用baksmali反编译输出到该目录下
创建目录SmaliDebug/src
java
-jar baksmali-2.0.8.jar
AliCrackme_1.apk
-o SmaliDebug/src
3、使用Android Studio导入该目录SmaliDebug
4、选择Create project from existing sources,之后一直选择next
5、成功导入工程后右键点击 src 目录,设定Mark Directory As->Sources Root
6、配置远程调试的选项,选择Run–>Edit Configurations:
7、增加一个Remote调试的调试选项,端口选择:8700
8、设置端口号
9、选择File–>Project Structure 配置JDK
10、以调试状态启动app
adb shell am start -D -n com.example.simpleencryption/.MainActivity如果不用 ddms 可以通过adb shell执行 ps | grep kugou命令查看转发端口:
然后进行端口转发:
adb forward tcp:8700 jdwp:24551记住这时候需要将DDMS关掉,不然会出现错误
1
1
11、下好断点之后Run->Debug
12、调试程序
相关文章推荐
- apk逆向 - smali动态调试
- AndroidStudio+ideasmali动态调试smali汇编
- AndroidStudio+ideasmali动态调试smali汇编
- Android逆向系列之动态调试2–Smali注入
- Android studio动态调试smali
- 【转自看雪】反编译apk+eclipse中动态调试smali
- Android 逆向分析(三)之动态调试Smali
- AS动态调试smali
- AndroidStudio+ideasmali动态调试smali汇编
- Android APK程序的smali动态调试
- Android Studio动态调试Smali
- smali 调试方法(动态调试)
- Android的smali动态调试方法
- AndroidStudio+ideasmali动态调试smali汇编
- Android Studio+ideasmali动态调试smali汇编
- AndroidStudio无源码动态调试apk
- eclipse动态调试smali
- Eclipse 动态调试smali
- Android studio动态调试smali
- Smali动态调试方法