Lazy loaded image
安卓逆向
smali动态调式
字数 545阅读时长 2 分钟
2021-9-15
2024-7-5
type
status
date
slug
summary
tags
category
icon
password

一、Android Studio 调试的原理

使用 Android Studio 进行动态调试,通过 Android Studio 导入反编译出的完整的 smali 代码,设置好调试所需的条件,设置断点。将移动设备连接至 PC端,然后运行待调试的apk应用程序,当该应用程序执行流程,运行至smali代码的断点处时,就会触发断点。从而可以进行进一步的分析和调试,让程序的运行流程和中间参数更清晰。

二、流程

1、待调试的apk设置debuggable="true"

使用AndroidKiller工具,反编译我们要调试的APK文件,反编译成功后,在“工程管理器”找到AndroidManiFest.xml文件,再找到该文件里的application标签,查看标签中是否存在android:debuggable=“true”属性,如果文件中不存在android:debuggable=“true”,则需要进行添加。

2、导入Project

3、调试环境配置

配置远程调试的选项,选择Run–>Edit Configurations选项,
点击“+”号,新建remote类型调试器,设置Name,修改端口号,可以选择未被占用的任意端口,本次设置为8700。

4、动态调试smali代码

(1)普通模式调试

查看app的进程pid
进行端口转发,其中的“tcp”是之前配置调试环境时指定的端口号:8700,“jdwp”这里指的是我们要调试的程序的进程pid

(2)调试模式启动应用程序调试

查看app的进程pid
进行端口转发,其中的“tcp”是之前配置调试环境时指定的端口号:8700,“jdwp”这里指的是我们要调试的程序的进程pid

快捷键:

F9:跳到下一个断点 F8:单步步过 F7:单步步入 Alt+shift+F7:强制进入 Shift+F8:单步步出
上一篇
Docker布置mitmproxy镜像使用Python脚本拦截请求
下一篇
smali语法基础详解

评论
Loading...