Entdecken Sie die Geheimnisse der umgekehrten Codierung in League of Legends

Wie kann ein Spielabsturz behoben werden, nachdem eine Funktion mit einer Struktur verknüpft wurde?

Entwicklung der Hakenstruktur

Ein Benutzer hat kürzlich in einem Forum, das sich auf Reverse Engineering von Videospielen spezialisiert hat, eine Frage gestellt. Er interessierte sich dafür, wie man eine bestimmte Funktion in ein Spiel einbinden kann, um dessen Verhalten zu ändern. Nachdem er die Funktion mit IDA (Interactive Disassembler) analysiert hatte, stellte er fest, dass ihr Typ __int64 __fastcall(int a1, unsigned int *a2, unsigned int *a3) war.

Der Spielabsturz

Also erstellte er eine Struktur mit einer Hook-Funktion, die die ursprüngliche Funktion nach einer Verzögerung von 10 Millisekunden aufrief. Als er jedoch diese Struktur verwendete, stürzte das Spiel ab.

Er fragte sich, warum das Spiel abstürzte und fragte sich, ob er die Sleep(10)-Anweisung in seiner Hooked-Funktion weglassen sollte.

Eine Codefreigabe ohne Verzögerung

Indem er ohne Verzögerung denselben Framework-Code verwendete, stellte er fest, dass der Spielabsturz nicht mehr auftrat, was ihn dazu veranlasste, die Bedeutung der Sleep-Anweisung in seiner Hooked-Funktion in Frage zu stellen.

Aktuelle Forschung

Ein anderer Forumbenutzer schlug vor, Dekompilierungen früherer Versionen des Spiels zu durchsuchen, um Funktionen zu finden, die dieselben Offsets verwenden, die bei der Analyse der ursprünglichen Funktion gefunden wurden.

Er erwähnte auch die Möglichkeit, in IDA nach Zeichenfolgen zu suchen, um eine statische Codeanalyse durchzuführen.

Abschließend wies er darauf hin, dass das Reverse Engineering eines Spiels wie TFT (Teamfight Tactics) komplex ist, da sich nur wenige Menschen dafür interessiert haben und es daher wenig öffentliches Wissen darüber gibt.

Er riet dem Benutzer daher, bei seiner Recherche beharrlich zu bleiben und weiterhin verschiedene Möglichkeiten zu erkunden.

Quelle: www.unknowncheats.me