-- 目标进程定义 local TARGET_PROCESSES = { ["pcsx2"] = function() local baseAddress = readQword("EEmem") if baseAddress then return string.format("%016X", baseAddress), string.format("%016X", baseAddress + 0x20000000) else print("[ERROR] Failed to read EEmem address.") return "0000000000000000", "00007FFFFFFFFFFF" end end, ["cemu"] = function() local baseAddress = executeCode(getAddress("Cemu.memory_getBase"), 0, 2000) if baseAddress then return string.format("%016X", baseAddress), string.format("%016X", baseAddress + 0x20000000) else print("[ERROR] Failed to read memory_getBase.") return "0000000000000000", "00007FFFFFFFFFFF" end end, ["rpcs3"] = function() return string.format("%016X", 0x300000000), string.format("%016X", 0x300000000 + 0x1FFFFFF) end } -- 处理进程打开事件 MainForm.OnProcessOpened = function(pid, handle, caption) --print("[DEBUG] MainForm.OnProcessOpened called") --print("[DEBUG] Caption: " .. caption) -- 获取当前打开进程的模块列表 local moduleList = enumModules() local processName -- 提取进程名称 for _, module in ipairs(moduleList) do local name = module.Name:lower() if name:match("%.exe$") then processName = name:match("([^/]+)%.exe$") break end end -- 输出调试信息 --print("[DEBUG] Extracted process name: " .. (processName or "nil")) -- 动态更新进程名,匹配目标进程 local processType = processName and (processName:match("^pcsx2") and "pcsx2" or processName:match("^cemu") and "cemu" or processName:match("^rpcs3") and "rpcs3") if processType and TARGET_PROCESSES[processType] then print("[INFO] Target process detected: " .. processName) local fromAddress, toAddress = TARGET_PROCESSES[processType]() MainForm.FromAddress.Text = fromAddress MainForm.ToAddress.Text = toAddress else print("[INFO] Non-target process detected or failed to extract process name.") MainForm.FromAddress.Text = "0000000000000000" MainForm.ToAddress.Text = "00007FFFFFFFFFFF" end -- 打印最终设置 --print("[DEBUG] FromAddress: " .. MainForm.FromAddress.Text) --print("[DEBUG] ToAddress: " .. MainForm.ToAddress.Text) end