内容简介:代码调试能够帮助我们更加快速分析代码,帮我们验证各种猜想。因此掌握smali代码调试的技巧对于APK反编译来说是必不可少的技能通过ps挑选出需要调试的进程
代码调试能够帮助我们更加快速分析代码,帮我们验证各种猜想。因此掌握smali代码调试的技巧对于APK反编译来说是必不可少的技能
先决条件:目标进程可调试
将应用修改为可调试
应用可调试,需要app的manifest文件里面打开debuggable=true
。具体如何将apk变为debuggable的,可参见 Android Apk反编译系列教程(二)APK重打包
- debug编译的时候debuggable默认是打开的
- release编译的时候debuggable默认是关闭的
<application android:debuggable="true" </application> 复制代码
验证修改是否成功
- JDWP详解参见: www.jianshu.com/p/1f22362f4…
// 筛选出目标app进程 adb shell ps | grep 包名 // 查看手机里面可调试的进程,如果上面挑选出来的进程在adb jdwp出的列表里面,那么上述修改就是成功的 adb jdwp 复制代码
JDWP调试原理
smali代码调试方法
(一) 定位到需要调试的进程
通过ps挑选出需要调试的进程
adb shell ps | grep 包名 复制代码
二)新建本地进程与手机上远端进程建立连接
db forward tcp:8700 jdwp:进程号 复制代码
(三)Android Studio attch到本地进程对应端口上面
(1)将aptool反编译项目导入AS
(2)新建远程连接
- 端口与上述端口(8700)一致即可
- android studio-> localhost:8700->手机对应进程
(3)定位到smail代码所在位置打断点
定位的技巧这里不坐赘述,将在后面的系列教程里面详解介绍。这里推荐一个辅助分析的工具 bytecode-viewer 。特点
- 能够同时分析资源和代码
- 代码支持 java 和smali代码对比分析,这样就能快速帮我们定位到smali代码所在位置
(4)点击debug即可
以上所述就是小编给大家介绍的《Android Apk反编译系列教程(三)Android Studio调试smali代码》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题)
- Solidity编译器和简单调试
- Golang源码探索(一) 编译和调试源码
- JVM源码分析-JVM源码编译与调试
- 反编译之利用AndroidStudio动态调试smali源码
- Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Collective Intelligence
Toby Segaran / O'Reilly Media / 2007-8-26 / USD 39.99
Want to tap the power behind search rankings, product recommendations, social bookmarking, and online matchmaking? This fascinating book demonstrates how you can build Web 2.0 applications to mine the......一起来看看 《Programming Collective Intelligence》 这本书的介绍吧!