AndroidStudio动态调试(waitForDebugger)

1:
反编译
2:
打开apk调试功能,使apk可以进行调试;
在反编译后的 文件里的 AndroidMainfest 文件里的 application元素 里
添加 android:debuggable=“true”
3:
让apk打开后 等待调试,暂停在入口位置,如同OD调试程序停留在入口一样;
入口函数 可以通过 androidkiller反编译 得到 apk入口文件
然后在入口文件的
onCreate 函数下 第一行 添加
invoke-static{},Landroid/os/Debug;->waitForDebugger()V
4:
回编译
5:
用Apktoolbox 对回编译的apk进行 签名 //AndroidKiller的话 可以省略 因为工具集成了
6:
安装 (用豌豆荚 或者 cmd命令 或者是 用androidkiller反编译一个apk然后回编 然后到它的 bin文件夹里 把我们签名好的 apk 放进去 把名字改成 存在的 apk的名字一样的名字 ) 这样就可以通过 androidkiller 工具来进行 安装 和卸载
7:
运行前打开 monitor (这个可以得到运行的apk 端口 一般是8700 因为在monitor上找到目标进程的时候 选中的时候 这时就赋予了 8700端口 这个端口在后面 andoirdstudil里面要设置的)
运行 cmd 输入 monitor 稍等一会即可打开monitor
这步必须要 因为要赋予进程的端口 让 androidstudio配置 这个端口 好调试
8:
打开 androidstudio 打开我们之前apk反编译后的 修改好的 工程文件夹
在 静态分析好后的 所需要动态调试的 位置 下断点
同时 进行下 调试配置 (菜单栏 运行->编辑结构->+ -> 远程 (其他默认 设置下断口 端口就是 monitor 里的 端口号如:8700))
9:
手机运行apk 这时会停留在 等待调试状态
10:
androidstudio 点击 Debug运行(运行后面的 那个也有小运行标志的)
这时 手机apk就会运行了 进行操作 操作到下断点的部分 这时androidkiller 就会到断点位置了

要点1,必须使用2.1.0之前的apktool版本,还不能使用新版,新版无法反编译
要点2,必须使用apktool,androidkiller反编译的载入AS是smali文件,不是java,无法设置断点
要点3,先打开monitor,否则手机无法正常显示.如仍然不行,重新插拔手机数据线即可.如仍然不能解决,删除掉电脑中一切手机助手程序,还有手机中一切手机助手程序重试

你可能感兴趣的:(安卓逆向)