Keep and carry on.

前言

总结一下android动态调试的方法,分别是java层和native层,java层主要用到的工具是android studio,而native层用ida进行动态调试。

安卓动态调试方法总结

Java层动态调试

使用baksmali.jar(可以在网上找到)反编译apk

lip_image001

Android studio打开生成的smali文件

lip_image002

lip_image003

把src文件夹设置为srouce root

ip_image005

在程序中下断点

ip_image007

添加remote,端口设置为8700

lip_image008

ip_image010

打开ddms,选中要调试的程序

lip_image011

选择android studio的debug程序

lip_image012

连接成功

ip_image014

运行,停在断点处

ip_image016

变量窗口

ip_image018

寄存器窗口

lip_image019

可在代码中选择要看的寄存器,右键,选择add to watches查看寄存器值

lip_image020

native层动态调试

  1. 复制文件,修改权限,以Root权限运行android_server。

adb push android_server /data/local/tmp/

cd /data/local/tmp/

chmod 755 android_server

./android_server

ip_image002

  1. 端口转发

adb forward tcp:23946 tcp:23946 //windows 控制台下转发window 到模拟器或者手机的

ip_image004

启动程序,设置process options

QQ截图20161102210457

QQ截图20161102210506

选择attach process

QQ截图20161102210530

ida就挂载上去,此时可以通过搜索module.list找到我们自己编写的so函数,然后可以下断点进行调试

Read More
⬆︎TOP