參考資訊:
https://github.com/frida/frida
https://frida.re/docs/functions/
https://frida.re/docs/installation/
https://github.com/frida/frida/releases
PC
$ cd $ wget https://github.com/frida/frida/releases/download/17.0.7/frida-server-17.0.7-linux-arm64.xz $ xz -d frida-server-17.0.7-linux-arm64.xz $ adb push frida-server-17.0.7-linux-arm64 /tmp
Android
$ su # cd /tmp # sleep 10000& # ./frida-server-17.0.7-linux-arm64 -l 0.0.0.0:8888
main.py
import os
import sys
import frida
REMOTE_IP = "127.0.0.1"
REMOTE_PORT = 8888
def on_message(message, data):
print(message)
device = frida.get_device_manager().add_remote_device(f"{REMOTE_IP}:{REMOTE_PORT}")
session = device.attach('sleep')
script = session.create_script("""
rpc.exports.enumerateModules = () => {
return Process.enumerateModules();
};
""")
script.on("message", on_message)
script.load()
for m in script.exports.enumerate_modules():
print(m)
PC上測試
$ adb devices
List of devices attached
XXXX device
$ adb forward tcp:8888 tcp:8888
$ python3 main.py
{'name': 'sleep.coreutils', 'base': '0x5575d00000', 'size': 90544, 'path': '/bin/sleep.coreutils'}
{'name': 'linux-vdso.so.1', 'base': '0x7fb7c56000', 'size': 2312, 'path': 'linux-vdso.so.1'}
{'name': 'libc.so.6', 'base': '0x7fb7a50000', 'size': 1739720, 'path': '/lib/libc.so.6'}
{'name': 'ld-linux-aarch64.so.1', 'base': '0x7fb7c1d000', 'size': 250712, 'path': '/lib/ld-linux-aarch64.so.1'}
{'name': 'libdl.so.2', 'base': '0x7fb5640000', 'size': 69648, 'path': '/lib/libdl.so.2'}
{'name': 'libm.so.6', 'base': '0x7fb55a0000', 'size': 618520, 'path': '/lib/libm.so.6'}
{'name': 'libpthread.so.0', 'base': '0x7fb5580000', 'size': 69648, 'path': '/lib/libpthread.so.0'}