Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Learning Reverse Engineering.
KTH, School of Computer Science and Communication (CSC).
KTH, School of Computer Science and Communication (CSC).
2012 (English)Independent thesis Advanced level (professional degree), 10 credits / 15 HE creditsStudent thesis
Abstract [en]

Reverse engineering is the process of translating compiled programs to source code, and analyzing the resulting code. It is useful, since without knowing the inside of a program it is very difficult to build onto it, create software that can interact well with it, or simply create a similar program of your own. The challenge of reverse engineering lies within the fact that a lot of information contained within the source code of a program is destroyed in the compilation process, and re-obtaining it is done through different kinds of analyses, of which some are discussed within. To delve into this subject, we tried to reverse a few applications and games with different approaches, tools and methods, to find out how the most information could be acquired. We found a set of methods that were optimal to us, and allowed us to modify a computer game both in runtime, and to edit the compiled bytecode to completely change the game's behaviour. The methods require some knowledge about software engineering, but they provide a good framework for a beginner to start reversing on their own.

Abstract [sv]

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.

Place, publisher, year, edition, pages
2012.
Series
Kandidatexjobb CSC, K12018
National Category
Computer Science
Identifiers
URN: urn:nbn:se:kth:diva-131023OAI: oai:DiVA.org:kth-131023DiVA: diva2:654469
Educational program
Master of Science in Engineering - Computer Science and Technology
Uppsok
Technology
Supervisors
Examiners
Available from: 2013-10-07 Created: 2013-10-07

Open Access in DiVA

No full text

Other links

http://www.csc.kth.se/utbildning/kandidatexjobb/datateknik/2012/rapport/djupfeldt_petter_OCH_taubert_lucas_K12018.pdf
By organisation
School of Computer Science and Communication (CSC)
Computer Science

Search outside of DiVA

GoogleGoogle Scholar

urn-nbn

Altmetric score

urn-nbn
Total: 52 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf