20210321-学习随笔
20210321
使用apktool反编译对程序进行调试
-
对apk进行反编译(异常报错,暂未成功)
apktool d -d xx.apk -o xxdir # 参考官网apktool用法https://ibotpeaches.github.io/Apktool/install/xx.apk:需要反编译的目标apk
xxdir:存放反编译结果的目标目录
能反编译的最高apktool版本为
apktool_2.0.3.jarSmaliDebugging has been removed in 2.1.0 onward.
-
修改
AndroidManifest.xml中application节点,添加android:debuggable="true"属性 -
在入口点类的
onCreate方法中添加invoke-static{},Landroid/os/Debug;->waitForDebugger()V -
对apk进行回编译
apktool b -d xxdir -o new.apk -
对apk文件进行签名
java -jar signakp.jar xx.pem xx.pk8 -
AndroidStudio导入编译后的文件目录,下断点
-
设置远程调试
Run -> Debug Congigurations -> Remote Java ApplicationHost:localhost:8700
使用AndroidKiller反编译配合AndroidStudio对程序进行调试
-
AndroidStudio安装smalidea(设置高亮及断点)
在Settings中
-
使用AndroidKiller对apk进行反编译
-
【工程管理器】->【项目名】->【右键->打开方式->打开文件路径】
-
复制【文件路径\Project】到AndroidStudio打开【Open an Existing Project】
-
Configure Framework,默认OK
-
AS添加远程调试
- 菜单栏->Run->Edit Configurations
- 点【+】,添加【Remote】,修改端口
localhost:8700
-
adb启动调试apk(需先安装调试apk)
adb shell am start -D -n {package}/{name} # AndroidManifest.xml # {package}:<manifest>节点 package属性 # {name}:主<activity>节点 android:name属性 -
打开
Android Device Monitor,点击模拟器下的{package}来设置端口-
AS4.0版本已经没有快捷按钮,路径:
sdk\tools\monitor.bat -
如果模拟器下无对应包,重启adb服务,并重新进行第【7】步
adb kill-server adb start-server
-
-
AS在smali下 行号前双击 设置断点,点击调试按钮进行调试
tips
- AndroidKiller中smali文件修改
- 可直接注释跳转修改apk运行流程
- 可 右键->插入代码,插入log方便调试

浙公网安备 33010602011771号