Discussion on [Release]Verschlüsselungsalgorithmus "ersetzen" within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
da viele immer noch nicht wissen, wie es funktioniert, zeige ich es euch jetzt einfach mal.
Was zeigen?
Wie man den XTEA-Algorithmus mit einem anderen Verschlüsselungsalgorithmus überschreiben kann, ohne diesen in der Binary direkt zu bearbeiten (Hex-Codes manipulieren) -> per DLL
Ich garantiere euch jetzt schon, dass das total simpel und keineswegs suboptimal ist.
Was wird benötigt?
Zuerst einmal wird Visual C++ oder ein anderes Programm benötigt, mit dem man C++ Quellcode kompilieren kann (-> C++ Compiler)
Dann braucht ihr noch die Detours Library.
Wie muss man vorgehen?
Zuerst einmal, sucht ihr einfach die Offsets des XTEA-Verschlüsselungs- / Entschlüsselungsalgorithmus (inklusive Imagebase, wenn ohne -> nachträglich hinzufügen).
Das war's eigentlich auch schon fürs Erste.
Sooo, weiteres zu erklären, habe ich eigentlich keine Lust, darum schaut euch einfach den Quellcode im Anhang an.
Wichtige Informationen dazu:
[$xteaDecryptOffset] -> durch das vorhin gefundene Offset des XTEA-Entschlüsselungsalgorithmus (inklusive Imagebase) ersetzen.
[$xteaEncryptOffset] -> urch das vorhin gefundene Offset des XTEA-Verschlüsselungsalgorithmus (inklusive Imagebase) ersetzen.
Wie lade ich die DLL?
Entweder über LordPE die DLL in die ImportTable hinzufügen, oder den asm Code der Binary modifizieren und über kernel32.LoadLibraryA die DLL laden.
P.S. Quellcode nicht beachten, ist ziemlich alt und scheiße geschrieben, tut aber seinen Job.
P.S.² Jegliche Hilfe hierzu, wird meinerseits verweigert.
Wenn man es per DLL macht, macht man es den Leuten noch einfacher, weil dann können sie doch einfach die Funktion der DLL in ihrem Programm einbinden, oder hab ich was falsch verstanden?
Wenn man es per DLL macht, macht man es den Leuten noch einfacher, weil dann können sie doch einfach die Funktion der DLL in ihrem Programm einbinden, oder hab ich was falsch verstanden?
Ja, das ist ja gerade der Vorteil, so kannst du auch anderen Algorithmen verwenden.
Und wenn du dann noch HWBPs verwendest, bist du noch kuhler.
*** meine ich, da es sogesehen unsicherer ist, weil die Leute die den Client entpacken wollen, einfach die Client einbinden können
Und HWBPs sagt hier kaum jemanden was e.e
Eventuell sollte ich hinzufügen, dass es schlau wäre,
wenn die DLL gepackt und an die Binary gebundelt wird, sonst ergibt das natürlich echt weniger Sinn.
Eventuell sollte ich hinzufügen, dass es schlau wäre,
wenn die DLL gepackt und an die Binary gebundelt wird, sonst ergibt das natürlich echt weniger Sinn.
Natürlich wäre es auch gut zu erwähnen wie
Quote:
[17:42:05] Marv aka. Baum: du bist in der metin2 section
[17:42:21] Marv aka. Baum: wenn das nen raum wäre, würden der hauptteil der menschen da drinne schweben
[17:42:25 | Bearbeitet 17:42:27] Marv aka. Baum: weil die keine logik kennen <.<