Eigenen Luacode kompilieren
Ich bin relativ neu was Lua angeht. Nun habe ich ein kleines Skript geschrieben und möchte es vor fremden Zugriff schützen. Dazu möchte ich den Code verbergen, ähnlich, wie der Kollege hier im Bild.
http://saved.im/mtg4mjk5ywxw_vs/lua.jpg
Die Methode mit luac kenne ich, aber da bleibt mir noch zu viel lesbarer code übrig.
Ich freue mich, wenn mir jemand von den Experten heir weiterhelfen kann.
Grüße Harzi
AW: Eigenen Luacode kompilieren
Kompilieren kannst du LUA nicht.
nur "unkenntlich" machen
http://facepunch.com/showthread.php?t=1275910
AW: Eigenen Luacode kompilieren
Erstmal danke gamerpaddy für die durchaus hilfreiche Antwort. Leider habe ich nach dem encrypten das Problem, dass das Script nicht mehr macht, was es soll. Keine Funktion wird richtig angesprochen. Woran kann das liegen? Hat jemand eventuell eine weitere Methode, um sein Script vor neugierigen Blicken zu verbergen?
*grübelnder* Harzi
AW: Eigenen Luacode kompilieren
Clientside scripts (die du vom Server per AddCSLuaFile an den Client sendest, kannst du nicht "unkenntlich" machen. Die wo es brauchen, haben ein de-obfuscator)
Auf serversite scripts kann eh keiner ausser du Zugreifen, solange du die Sepperat machst (also eine init.lua und eine cl_init, stats eine einzelne shared.lua)
Aber wieso sollte man Scriptcode verbergen?
Keiner, nichteinmal die Stargate, ACF, Wiremod, DarkRP, PERP und GHD macher verschleiern ihren Code, wobei ich denke dass der Code von denen 1000x komplexer & größer ist als deiner.
Der typ auf dem Bild hat einfach jeden buchstabe per Byte eingegeben (oder umgewandelt..) wenn man nun ein Lua code macht, der so ausssieht:
Code:
local code = '/27/76/117/97......................'
print(string.char(code))
Ausführt, ist der script 1:1 sichtbar
mit
Code:
local code = ' local f = "fuck" local ply = Entity(0):GetNWEntity("me") local level = 3 // hard function fkmehrd(what, player, difficult) local str = "" if level==1 then str="normal" elseif level == 2 then str="ok" elseif level == 3 then str="hard" end return ""..what.." "..player:Nick().." " end fkmehrd(f,ply,level)'
print(string.byte(code,0,string.len(code))
Wird er verschlüsselt..
(Scripts sind aus dem Kopf gegriffen, könnten also nicht funktionieren. zur not macht man eine for schleife, die jeden buchstaben in ein byte umwandelt und es mit / trennt)
Am besten mach alle zeilenumbrüche weg, und schreib es so dass es keiner lesen kann. Ich hatte mal ein Script gemacht, welches sich auf einer seite, auf der Server aufgelistet werden die den "Mod" von dort hatten einwählt.
Dann hab ich den in ein Mod von mir Implementiert & jeder der sich den Runterlud, sendete eine Anfrage mit dem Namen einer Community in die liste. Ein variablennamen war 40 stellen lang und an andere gebunden.. musste selber aufschreiben, was nun was ist.
AW: Eigenen Luacode kompilieren
Hallo Gamerpaddy,
ich danke Dir für deine durchaus aufschlussreichen Ausführungen. Doch leider verstehe ich kein Wort :-) Mir is jetzt klar, dass der Typ auf dem Bild Bytecode verwandt hat. Doch, mir ist noch nicht klar, wie er zu diesem Code kommt. Dein Codeschnippsel sagt mir gar nix.
Ich weiß, dass Anfänger durchaus nerven können, aber könntest du es mir noch einmal für Dummies erklären oder evtl. mein Script umwandeln?
Grüße
Harzi
AW: Eigenen Luacode kompilieren
Also nochmal kurz..
Du hast ein Script, welches verschlüsselt werden soll damit keiner es lesen kann.
Ich poste den Code, der "glaube ich zumindest" genauso das Gleiche macht, wie auf deinem screenshot.
Du verstehst den Code nicht & wie man ihn einsetzt.
Wieso solltest du dann deinen Code verschlüsseln, wenn du nichteinmal diesen Verstehst? Mit einem anfängercode wie diesen hier
Code:
hook.Add("PlayerSay","my first code", function (ply,text,public)
ply:PrintMessage(HUD_PRINTTALK,"WHOO I SAID "..text)
end)
kann keiner was anfangen.
Kopier dein Script in eine string variable (mit [[ und ]] als anfang-end stringabgrenzung zb. local meinecodevariable = [[ print("hi") ]]) sag der variable folgendes newvar = string.char(meinecodevariable,0,string.len(meineco devariable))
dann den output newvar mit print ausgeben und in dein Scriptfile kopieren.
vorher aber noch local code = "<code hier rein>" loadstring(code)
AW: Eigenen Luacode kompilieren
Noch einmal vielen Dank Gamerpaddy,
jetzt habe auch ich es verstanden. :oops:
Danke
Harzi001