我将 Frida 与 Python 结合使用。
连接到远程进程
import frida
frida.get_device_manager().add_remote_device('192.168.3.55:2222).attach(1234)
如何像在 Frida cli(Javascript) 中那样枚举模块
Process.enumerateModules();
但是使用Python?
过程与使用
frida
命令时相同,Python代码只能在客户端使用。对于服务器端,您必须加载 Frida JavaScript 代码。
您可以通过将 JavaScript 文件作为字符串集成到 Python 代码中来实现此目的:
import frida, sys
script = """
Process.enumerateModules({
onMatch: function(module){
console.log('Module name: ' + module.name + " - " + "Base Address: " + module.base.toString());
},
onComplete: function(){}
});
"""
session = frida.get_device_manager().add_remote_device('192.168.3.55:2222).attach(1234)
script = session.create_script(script)
script.load()
sys.stdin.read()
或者我更喜欢的方式,在 Python 代码中加载一个单独的 JavaScript 文件:
script.js
Process.enumerateModules({
onMatch: function(module){
console.log('Module name: ' + module.name + " - " + "Base Address: " + module.base.toString());
},
onComplete: function(){}
});
我的弗里达.py
import frida, sys
import codecs
frida_js = './script.js'
with codecs.open(frida_js, 'r', 'utf-8') as f:
source = f.read()
session = frida.get_device_manager().add_remote_device('192.168.3.55:2222).attach(1234)
script = session.create_script(source)
script.load()
sys.stdin.read()