概述
Hook 框架是⼀种技术,⽤于在运⾏时拦截和修改应⽤程序的⾏为。通过 Hook,你可以劫持应⽤程序的⽅法调⽤、修改参数、篡改返回值等,以达到对应⽤程序的修改、增强或调试的⽬的。
常见的有
Xposed Framework :Xposed 是⼀个功能强⼤的开源 Hook 框架,可以在不修改应⽤程序源代码的情况下,对应⽤程序进⾏各种修改。它允许你编写模块来拦截和修改应⽤程序的⽅法调⽤,修改应⽤程序的⾏为和逻辑。Frida:Frida 是⼀个跨平台的动态 Hook 框架,⽀持安卓和其他操作系统。它提供了⼀个强⼤的 JavaScript API,可以在运⾏时对应⽤程序进⾏ Hook,包括⽅法拦截、参数修改、调⽤注⼊等。 Frida 可以⽤于安全研究、逆向⼯程和应⽤程序调试等⽅⾯。
电脑端
# 指定版本安装 pip install frida==16.0.1 pip install frida-tools==12.0.1 # 安装最新版 pip install frida # 16.0.9 pip install frida-tools # 12.1.2 # 若安装出现错误,下载源码包安装(下方是在报错情况下使用,如安装成功可忽略) #### 必须根据 :frida版本 + Python版本 + 操作系统 来选择下载响应的egg或whl⽂件。 https://pypi.doubanio.com/simple/frida/ pip install frida-16.0.1-cp37-abi3-macosx_10_9_x86_64.whl
⼿机端安装frida-server
# 1 先查看⼿机架构 adb shell getprop ro.product.cpu.abi # arm64-v8a # 2 下载frida-server https://github.com/frida/frida/releases # 3 解压,上传到⼿机 /data/local/tmp/ ⽬录下 -解压得到⽂件,把⽂件上传到⼿机 adb push ./今⽇软件/frida-server/frida-server-16.0.19-androidarm64 /data/local/tmp/ # 4 赋予可执⾏权限 adb shell # 进⼊⼿机命令⾏ su # 切换为超级⽤户 cd /data/local/tmp/ chmod 755 frida-server-16.0.19-android-arm64 # 加⼊执⾏权限 ls -al # 查看权限
手机端启动并 hook 应⽤
# 切换到⼿机的/data/local/tmp⽬录下 adb shell su # 获得权限 cd /data/local/tmp # 切换目录 ./frida-server-16.0.19-android-arm64 # 启动 frida
电脑端配置
开启端口转发
# ⽅式⼀:命令⾏中敲
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
# ⽅式⼆:使⽤python执⾏
import subprocess
subprocess.getoutput("adb forward tcp:27042 tcp:27042")
subprocess.getoutput("adb forward tcp:27043 tcp:27043")
编写python代码,打印⼿机中的进程
# 枚举⼿机上的所有进程 & 前台进程
import frida
# 获取设备信息
rdev = frida.get_remote_device()
# 枚举所有的进程
processes = rdev.enumerate_processes()
for process in processes:
print(process)
# 获取在前台运⾏的APP
front_app = rdev.get_frontmost_application()
print(front_app)
本文作者为星辰,转载请注明。