Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • 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
Designing an object-oriented decompiler: Decompilation support for Interactive Disassembler Pro
Blekinge Institute of Technology, Department of Software Engineering and Computer Science.
2002 (English)Independent thesis Advanced level (degree of Master (One Year))Student thesisAlternative title
Design av en objekt-orienterad dekompilator : Dekompilatorstöd för Interactive Disassembler Pro (Swedish)
Abstract [en]

Decompilation, or reverse compilation, takes a computer program and produces high-level code that works like the original source code. This makes it easier to understand a computer program when source code is not available. However, there are very few tools for decompilation available today. This report describes the design and implementation of Desquirr, a decompilation plug-in for Interactive Disassembler Pro. Desquirr has an object-oriented design and performs basic decompilation of programs running on Intel x86 processors. The low-level analysis uses knowledge about specialized compiler constructs, called idioms, to perform a more accurate decompilation. Desquirr implements data flow analysis, meaning the conversion from primitive machine code instructions into code in a high-level language. The major part of the data flow analysis is the Register Copy Propagation which builds high-level expressions from primitive instructions. Control flow analysis, meaning to restore high-level language constructs such as if/else and for loops, is not implemented. A high level representation of a piece of machine code contains the same information as an assembly language representation of the same machine code, but in a format that is easier to comprehend. Symbols such as ?*? and ?+? are used in high-level language expressions, compared to instructions such as ?mul? and ?add? in assembly language. Two small test cases which compares decompiled code with assembly language shows promising results in reducing the amount of information needed to comprehend a program.

Abstract [sv]

Dekompilering, eller omvänd kompilering, tar ett datorprogram och omvandlar det till högnivåspråk som fungerar som den ursprungliga källkoden. Detta gör det lättare att förstå ett datorprogram när källkod inte finns tillgänglig. Det finns väldigt få verktyg för dekompilering tillgängliga idag. Den här rapporten beskriver design och implementation av Desquirr, en dekomplator-plugin för Interactive Disassembler Pro. Desquirr har en objekt-orienterad design och utför grundläggande dekompilering av program som kör på Intel x86-processorer.

Place, publisher, year, edition, pages
2002. , p. 25
Keywords [en]
decompilation, reverse engineering, program transformation
National Category
Computer Sciences Software Engineering
Identifiers
URN: urn:nbn:se:bth-5604Local ID: oai:bth.se:arkivex5197F1D4EB744970C1256BD700661C4AOAI: oai:DiVA.org:bth-5604DiVA, id: diva2:832992
Uppsok
Technology
Supervisors
Available from: 2015-04-22 Created: 2002-06-13 Last updated: 2018-01-11Bibliographically approved

Open Access in DiVA

fulltext(167 kB)425 downloads
File information
File name FULLTEXT01.pdfFile size 167 kBChecksum SHA-512
cd401c75b4fd0edf73ef3d625a0d3d4de236077221e28ed63c0d0eb4c318bb94e428f0a3cb094412c2c3b5622a53791c21afa878407d1b31baca79c159c0dea6
Type fulltextMimetype application/pdf

By organisation
Department of Software Engineering and Computer Science
Computer SciencesSoftware Engineering

Search outside of DiVA

GoogleGoogle Scholar
Total: 425 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

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

Direct link
Cite
Citation style
  • apa
  • 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