A decompiler accepts low-level object code » Computer internet security  
Computer and internet security news
computer and networking security portal
 
|
|
|
News
|
Advertise
|
|
Products
|
Contact

A decompiler accepts low-level object code



Sunday, July 1, 2007, 12:46
This news item was posted in Decompilation category and has 0 Comments so far.

A decompiler accepts low-level object code and produces the high-level source code that compiles into the object code. This paper describes a technique for constructing decompilers using attribute grammars and functional programming. Given the grammars for the source and object languages, the authors show how to augment the source language grammar with attributes—values passed up and down the parse tree while it is being constructed—so that the grammar efficiently generates only acceptable source code. A decompiler is an implementation of an attribute grammar as a functional program. Some care is required when implementing infinite attributes (such as the set of “if” statements); an enumeration over a set of infinite attributes should result in all possible combinations. Defining list-manipulating operations with the proper interleaving behavior results in a straightforward translation from an attribute grammar to a functional program. Computability and abstract execution arguments show, among other things, that desirable general decompilation algorithms also solve the halting problem, and so do not exist, and that, for a properly behaved attribute grammar, the associated decompiler properly generates the infinity of source codes. This work represents a useful first step toward decompilation; it will be interesting to see how it can be extended, for example, to deal with optimized object code or to recover the original source code’s type structures. A familiarity with attribute grammars and functional programming speeds the reading along, but is not necessary for the diligent reader.

Related posts:

  1. Ethics of decompilation
  2. Obfuscation is the process of making code harder
  3. Code audits in open source security
  4. Examining ASP.NET AJAX JavaScript source code
  5. Interfacing in grail application
  6. why don’t SSL VPNs simply use SSL to tunnel network-level communications

Related posts brought to you by Yet Another Related Posts Plugin.





Tagged with:

You can leave a response, or trackback from your own site.

Leave a Reply





:::: Recent entries


 
Join My Community at MyBloglog!



My BlogCatalog BlogRank

Computers Blogs - Blog Top Sites