Garrysmod Lua Dumper & Runner, geschrieben in Rust.
C:Users<User>autorunlua_dumps<ServerIP>..
ausgegeben (asynchron, um E/A-Verzögerungen zu vermeiden)lua_run
und lua_openscript
in einer externen Konsoleautorun.lua
), um etwaige „Anti-Cheats“ zu umgehen und zu umgehen.autorun/logs
)autorun/plugins
)Autorun kann auch als Menü-Plugin verwendet werden / wird von Lua automatisch aus dem Menüstatus benötigt.
gmsv_autorun_win<arch>.dll
in Ihren Ordner garrysmod/lua/bin
.require("autorun")
am Ende von garrysmod/lua/menu/menu.lua
hinzuDie traditionelle (aber umständlichere) Methode besteht darin, es einfach zu injizieren.
Autorun verfügt über Scripthook, was bedeutet, dass wir Ihr Skript ausführen, bevor ein anderes Garrysmod-Skript ausgeführt wird, um zu überprüfen, ob der Code durch Ausführen Ihres eigenen Hook-Skripts ausgeführt werden soll. *Dies wird in einer separaten Umgebung von _G
ausgeführt. Um globale Werte zu ändern, führen Sie _G.foo = bar
aus
Beachten Sie außerdem, dass Funktionen wie http.Fetch
und file.Write
nicht vorhanden sind, wenn Sie autorun.lua
ausführen.
Verwenden Sie ihre C-Gegenstücke ( HTTP
und file.Open
).
Sehen Sie sich hier ein Beispielprojekt mit dem Scripthook an.
C:Users < User > autorun
├── autorun . lua # Runs *once* before autorun
├── hook . lua # Runs for every script
├── lua_dumps # Each server gets a folder with their IP as the name.
│ ├── 192.168.1 . 55_27015
│ └── X . Y . Z . W_PORT
├── logs # Logs are saved here
│ └── YYYY - MM - DD . log
├── bin # Store binary modules to be used with Autorun.requirebin
│ └── gmcl_vistrace_win64 . dll
├── plugins # Folder for Autorun plugins, same behavior as above autorun and hook.lua, but meant for plugin developers.
│ └── Safety
│ ├── src
| | ├── autorun . lua
| | └── hook . lua
│ └── plugin . toml
├── settings . toml # See autorun/src/configs/settings.toml
└── ...
Was an die Scripthook-Umgebung übergeben wird, finden Sie in „fields.lua“ als EmmyLua-Definitionsdatei.
Könnte dies mit so etwas wie einer vscode Lua-Sprachservererweiterung für Intellisense verwendet werden?
Hook.lua
Diese Datei wird ausgeführt, bevor jedes einzelne Lua-Skript von Add-ons und Servern auf Ihrem Client ausgeführt wird. Sie können return true
um das Skript nicht auszuführen, oder eine Zeichenfolge, um es zu ersetzen.
-- Replace all 'while true do end' scripts with 'while false do end' ?
local script = Autorun . CODE
if script : find ( " while true do end " ) then
Autorun . log ( " Found an evil script! " )
return string . Replace ( script , " while true do end " , " while false do end " )
end
Mehr finden Sie hier
Sie können aus den Veröffentlichungen eine „stabile“ Veröffentlichung erhalten.
Sie können den absolut neuesten Download (vom Code im Repo) auf der Registerkarte „Github-Aktionen“ erhalten
Beachten Sie, dass es möglicherweise nicht wie erwartet funktioniert (ich würde jedoch empfehlen, dies auszuprobieren, bevor Sie versuchen, ein Problem zu melden, um zu sehen, ob es behoben wurde).
Wenn Sie dies als Menü-Plugin verwenden?, stellen Sie sicher, dass die DLL den Namen gmsv_autorun_win<arch>.dll
trägt
Möglicherweise möchten Sie dies selbst erstellen, wenn Sie Änderungen vornehmen/beisteuern möchten (oder Github-Aktionen aus irgendeinem Grund nicht vertrauen.)
build_win_32.bat
oder build_win_64.bat
.