安卓逆向环境配置

安卓逆向环境配置

周三 5月 14 2025
836 字 · 4 分钟

安卓逆向环境配置

均在模拟器环境下运行apk

这里使用雷电9

0.adb

参考:ADB安装及使用详解(非常详细)从零基础入门到精通,看完这一篇就够了-CSDN博客

下载:dl.google.com/android/repository/platform-tools-latest-windows.z…

解压后要将解压目录添加到系统环境变量,方便直接在cmd里输入adb​实现调用

常用指令:

BASH
adb version :显示 adb 版本
adb devices:查看当前连接的设备,已连接的设备会显示出来(重要)
adb root:获取Android管理员(root用户)的权限。
adb shell:登录设备 shell,该命令将登录设备的shell(内核),登录shell后,可以使用 cd,ls,rm 等Linux命令
adb shell getprop ro.product.cpu.abi #查看系统架构
exit:退出shell

其他指令在动态调试介绍

1.jadx

2.jeb

下载及使用教程:JEB动态调试Smali-真机/模拟器(详细,新手必看) - 吾爱破解 - 52pojie.cn

静态分析

一些使用技巧

  • jeb加载apk后显示的是smali语言界面,要查看反编译后的Java语言,使用右键-转换(Tab)

  • 下断点Ctrl+b

  • 步过f6​、跳出f7​、步入^f6​(?)

动态调试

示例:[NewStarCTF2023]Week3 Andronative

  • 模拟器端
  1. 开启root权限

image

  1. 打开USB调试(这种应该适用于实体机,但还是打开,没坏处)

    设置里找到关于-版本号,连点几次版本号,进入开发者模式

image

找到USB调试,打开

image

  1. 确保apk的debugger权限

使用MT管理器修改runfaraway.apk​中的AndroidManifest.xml

确保android:debuggable="true"

具体步骤:

提取安装包

image

image

定位到安装包

image

查看

image

打开方式选反编译

image

修改保存编译后重新签名APP

image

导出到共享文件夹中(可以在模拟器-更多-共享文件夹-高级选项 设置共享文件夹目录)

在模拟器中是/sdcard/Pictures

在windows中是D:\用户名\Documents\leidian9\Pictures

导入jeb

  • Window端

调试需要先在smali代码里下断点

image

然后先在模拟器里打开要调试的软件,然后启动调试

可以查看局部变量的值等

image

over

3.ida(动调.so)

找到ida目录下的dbgsrv​文件夹

image

把这四个文件都push​进模拟器里:

BASH
adb push "D:\CTF\tools\IDA\dbgsrv\android_server" /data/local/tmp
adb push "D:\CTF\tools\IDA\dbgsrv\android_server64" /data/local/tmp
adb push "D:\CTF\tools\IDA\dbgsrv\android_x64_server" /data/local/tmp
adb push "D:\CTF\tools\IDA\dbgsrv\android_x86_server" /data/local/tmp
#(注意后面的目录可以随便选,有时候反调试会检测)
adb shell #进入shell
su #拿root权限
ls -l #查看执行权限
#给执行权限
chmod +x android_serverx64
chmod +x android_serverx86

image

对于这4个版本,有些运行会出错,我的是运行前两个都会报错

image

所以我选择另外两个,这里用x64的(改了一下名字)

image

再开一个终端,执行adb forward tcp:23946 tcp:23946转发端口

BASH
# 再开一个终端,进行端口转发
adb forward tcp:23946 tcp:23946

# 一些相关命令

# 查看端口
netstat -ano | findstr "5037"
# 杀死进程
taskkill -f -pid 8377

adb kill-server
#在关闭adb服务后,要使用如下的命令启动adb服务。
adb start-server

注意要调试的.so文件的架构要与ida进行远程调试文件的架构要匹配

image

模拟器里打开要调试的app,ida​里下好断点,然后附加进程

image

找到要附加的程序,双击

image

same

image

成功断下,变量的值、调用堆栈都能看到

image

over

参考资料

Apk_动态调试方案 - Only-xiaoxiao - 博客园(主)

JEB动态调试Smali-真机/模拟器(详细,新手必看) - 吾爱破解 - 52pojie.cn

Android 「动态分析」IDA 调试 so - 吾爱破解 - 52pojie.cn


Thanks for reading!

安卓逆向环境配置

周三 5月 14 2025
836 字 · 4 分钟