. 编写 Python 脚本:
import frida
import sys
# 定义 hook 逻辑的 JavaScript 代码
js_code = """
Interceptor.attach(ptr('%s'), {
onEnter: function (args) {
// 从控制台读取输入的数字
var input = parseInt(prompt("Enter a number to store in RCX: "), 10);
// 将输入的数字存储到 RCX 寄存器
this.context.rcx = input;
console.log('RCX set to: ' + input);
}
});
""" % '0x1821ef1b0' # 替换为实际的内存地址
# 定义消息处理函数
def on_message(message, data):
if message['type'] == 'send':
print("[*] {0}".format(message['payload']))
else:
print(message)
# 附加到目标进程
session = frida.attach("target_process_name") # 替换为实际的进程名称
script = session.create_script(js_code)
script.on('message', on_message)
script.load()
# 保持脚本运行
sys.stdin.read()
- 运行脚本:
python hook_rcx.py
在运行脚本时,它会附加到目标进程,并在指定的内存地址处 hook 代码。当代码执行到该地址时,会弹出一个提示框,要求你输入一个数字,然后将该数字存储到 RCX
寄存器中。