Petter Djupfeldt och Lucas Taubert

Learning Reverse Engineering

Sammanfattning

Reverse engineering är processen att översätta kompilerad kod till källkod, och att analysera denna. Det är ett användbart ämne, eftersom det är väldigt svårt att bygga vidare på eller att återskapa ett program, om man inte vet hur det ser ut på insidan. Att veta det underlättar även om man ska skapa nya program som ska interagera med det äldre programmet.

Utmaningen med reverse engineering är att mycket av den information som finns i ett programs källkod går förlorad när den kompileras, och att återskapa denna genom olika sorters analys, av vilka en del diskuteras i rapporten.

För att lära oss om det här ämnet gav vi oss på att reverse:a några applikationer och spel. Vi använde olika infallsvinklar, verktyg och metoder för att ta reda på hur vi skulle få ut så mycket information som möjligt.

Vi hittade en mängd metoder som var optimala för oss och lät oss modifiera ett datorspel både i runtime och dess kompilerade byte-kod, för att helt ändra spelets beteende. Metoderna kräver viss kunskap om programmering, men de ger en god grund för en nybörjare att börja reverse:a på egen hand.