Resource Injection | 插件注入
1. 功能概述
**資源注入(Resource Injection)**允許你在合法資源(resource)的執行環境中運行程式碼,藉此存取該資源的全域函式與資料,例如 TriggerServerEvent。這能在某些防作弊系統下,繞過事件 token 機制。你可以透過資源列表頁找到特定資源名稱,或使用 "any" 表示注入到任意資源上下文中。
2. 提供的 API 函式
MachoInjectResource(resource, code)
將 code 字串注入到指定的 resource 中執行。在資源上下文中執行,因此無法使用 Macho 自身隔離環境的函式或資料。
MachoIsolatedInject(code)
混合使用 Macho 的隔離環境執行 code,可用於呼叫 MachoWebRequest 等。
MachoResourceInjectable(resource)
回傳布林值,表明指定資源是否存在且可注入。
MachoResourceStop(resource)
停止一個資源,相當於在選單中執行 “macho-stop”。該文件針對這功能故意寫得較少資訊。
MachoResourceStart(resource)
啟動先前 macho-stop 停止的資源。
MachoInjectResourceRaw(resource, code)
無繞過的執行API
MachoInjectThread(type,resource,file,code)
讓您可以透過 file 參數(即資源視圖中顯示的執行緒名稱)直接將程式碼注入正在執行的執行緒。您將能夠存取全域變數、局部變數等(設定 type = 0)。
MachoInjectResource2(type,resource,code)
與 MachoInjectResource 類似功能上添加了 Type
3. 完整檔案注入方式
在 Lua 檔案的首行添加以下指令,可注入整個檔案內容到指定資源中。請注意 resource 必須是字面常數,例如 "any":
[MachoHijackResource(resource)]此方式將注入完整檔案內容,使其以指定資源的上下文執行。
總結整理
功能
可在合法資源上下文內執行程式碼,存取資源全域函式與資料
核心 API
MachoInjectResource, MachoIsolatedInject, MachoResourceInjectable, MachoResourceStop, MachoResourceStart
隔離環境差異
注入執行(MachoInjectResource)失去對 Macho 隔離 API 的存取能力;隔離注入(MachoIsolatedInject)則保留 Macho 隔離能力
用途範例
注入觸發事件、偵測資源是否可注入、停止或啟動資源
整檔注入
[MachoHijackResource(resource)] 可將整個檔案注入指定資源中執行
最后更新于