Re: convert x86 assembly to c ?

Trent Waddington <s337240@student.uq.edu.au>
25 Sep 2000 13:21:30 -0400

          From comp.compilers

Related articles
convert x86 assembly to c ? winsim@winsim.com (Lynn McGuire) (2000-09-24)
Re: convert x86 assembly to c ? s337240@student.uq.edu.au (Trent Waddington) (2000-09-25)
Re: convert x86 assembly to c ? Martin.Ward@durham.ac.uk (2000-09-25)
Re: convert x86 assembly to c ? dlindauer@notifier-is.net (david lindauer) (2000-09-25)
Re: convert x86 assembly to c ? winsim@winsim.com (Lynn McGuire) (2000-09-25)
Re: convert x86 assembly to c ? winsim@winsim.com (Lynn McGuire) (2000-09-28)
Re: convert x86 assembly to c ? vbdis@aol.com (2000-09-28)
Re: convert x86 assembly to c ? bsheff2@yahoo.com (2000-10-01)
| List of all articles for this month |
From: Trent Waddington <s337240@student.uq.edu.au>
Newsgroups: comp.compilers
Date: 25 Sep 2000 13:21:30 -0400
Organization: University of Queensland
References: 00-09-172
Keywords: disassemble

I'm currently developing a retargetable decompiler which will work on
windoze binaries. However, 1) we are not aiming at win16 because it
is such a pain and 2) we are no-where near a useful stage of
development. A big problem with decompilation in general is
determining the number of parameters that a procedure takes. Liveness
analysis can do this, but on x86 this means you have to determine what
stack locations are used before they are defined. With traditional C
calling convention this is not a problem (ie, unix is ok) but when you
introduce pascal calling conventions - callee pop - you have no way of
knowing exactly how the stack pointer is changed after each call. So
you have to do a lot of analysis on the entire call graph just to
discover the stack depth at any point in the control flow graph. When
you have cycles in your call graph this problem because non-trivial.
Windows code makes use of both the C calling convention and the pascal
calling convention, for both local calls and calls to dll's. There
are also other problems to determining the parameters of a procedure
that pop up when you start looking at register calling conventions, as
are present in most RISC machines.


Trent Waddington
University of Queensland


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.