前言
跳过一些内容,关于smali语法,静态分析资料很多,不重新写,主要记下之前动态调试的学习过程。
环境
android studio或idea,这里我是用的idea。
Jeb是一款专业实用且为安全专业人士设计的Android应用程序的反编绎工具。
安装:
https://down.52pojie.cn/Tools/Android_Tools/
准备工作
要进行app调试,需要以调试模式启动app。
需要改apk中的manifest设置为可调试,或者修改安卓的ro.debuggable为1。
执行命令:
adb shell am start -D -n "com.xxx.xxxx/.MainActivity”
此时手机或者模拟器会出现如下界面,然后才可以在idea或者jeb中去进行调试:
jeb动态调试
先打开jeb,把要调试的apk拖进去。
找到想要观察的地方,通过ctrl+b下断:
然后再完成最前面的准备工作,就可以开始调试了。
找到对应的设备和进程,附加进程就可以了。
然后就去触发断点,就会断下来。
然后就可以愉快的调试了。
idea动态调试
要通过idea或者as调试apk,首先要安装一个插件。
然后先对要调试的app进行解包,用apktool,然后导入idea。
右键点击smali文件夹,设定Mark Directory as -> Sources Root。
然后设置断点:
同样调试模式打开app,然后配置idea去连接jdb。
然后就可以开始run -> Debug了。
触发断点,就可以断下来了。
然后就可以愉快的调试了。
总结
主要记下之前动态调试的学习过程,两种方式都可以,看自己选择。