逆向工程 - Frida - Print Library Info



參考資訊:
https://github.com/frida/frida
https://frida.re/docs/functions/
https://frida.re/docs/installation/

hook.py

import os
import frida

os.system('sleep 3&')

session = frida.attach("sleep")
 
script = session.create_script("""
    rpc.exports.enumerateModules = () => {
        return Process.enumerateModules();
    };
""")
 
script.load()
 
for m in script.exports.enumerate_modules():
    print(m)

編譯、執行

$ python3 ./hook.py
    {'name': 'sleep', 'base': '0x555a4726a000', 'size': 41920, 'path': '/usr/bin/sleep'}
    {'name': 'linux-vdso.so.1', 'base': '0x7ffcdefa3000', 'size': 3421, 'path': 'linux-vdso.so.1'}
    {'name': 'libc.so.6', 'base': '0x7ff12a282000', 'size': 1970000, 'path': '/usr/lib/x86_64-linux-gnu/libc.so.6'}
    {'name': 'ld-linux-x86-64.so.2', 'base': '0x7ff12a499000', 'size': 213720, 'path': '/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2'}
    {'name': 'libdl.so.2', 'base': '0x7ff12a480000', 'size': 16400, 'path': '/usr/lib/x86_64-linux-gnu/libdl.so.2'}
    {'name': 'librt.so.1', 'base': '0x7ff12a47b000', 'size': 16416, 'path': '/usr/lib/x86_64-linux-gnu/librt.so.1'}
    {'name': 'libm.so.6', 'base': '0x7ff12a16b000', 'size': 913680, 'path': '/usr/lib/x86_64-linux-gnu/libm.so.6'}
    {'name': 'libpthread.so.0', 'base': '0x7ff12a476000', 'size': 16400, 'path': '/usr/lib/x86_64-linux-gnu/libpthread.so.0'}