Oplev hemmelighederne bag omvendt kodning i League of Legends

Hvordan løser man et spilnedbrud efter at have tilsluttet en funktion med en struktur?

Udvikling af krogstrukturen

En bruger stillede for nylig et spørgsmål på et forum med speciale i videospils reverse engineering. Han var interesseret i, hvordan man kobler en specifik funktion ind i et spil for at ændre dets adfærd. Efter at have analyseret funktionen med IDA (Interactive Disassembler), fandt han ud af, at dens type var __int64 __fastcall(int a1, unsigned int *a2, unsigned int *a3).

Spillet går ned

Så han skabte en struktur med en tilsluttet funktion, der kaldte den oprindelige funktion efter en forsinkelse på 10 millisekunder. Men da han brugte denne struktur, styrtede spillet ned.

Han undrede sig over, hvorfor spillet gik ned og spekulerede på, om han skulle udelade Sleep(10)-instruktionen i sin tilsluttede funktion.

En kodefrigivelse uden forsinkelse

Ved at bruge den samme rammekode uden forsinkelse fandt han ud af, at spilnedbruddet ikke længere fandt sted, hvilket fik ham til at stille spørgsmålstegn ved vigtigheden af ​​Sleep-instruktionen i hans hooked-funktion.

Aktuel forskning

En anden forumbruger foreslog at søge efter dekompileringer af tidligere versioner af spillet for at finde funktioner, der bruger de samme forskydninger, som blev fundet ved analyse af den indledende funktion.

Han nævnte også muligheden for at søge efter strenge i IDA for at udføre statisk kodeanalyse.

Han påpegede endelig, at reverse engineering af et spil som TFT (Teamfight Tactics) er komplekst, fordi få mennesker har været interesseret i det, og derfor er der kun lidt offentlig viden om det.

Han rådede derfor brugeren til at blive ved i deres forskning og fortsætte med at udforske forskellige muligheder.

Kilde: www.unknowncheats.me