On 12/17/2012 4:38 AM, Jacob Carlborg wrote:> On 2012-12-17 10:58, Walter Bright wrote:
>
>> Google "convert object file to C"
>
> A few seconds on Google resulted in this:
>
> http://www.hex-rays.com/products/decompiler/index.shtml
>

hex-rays is an interactive tool. It's "decompile" to things like this:

v81 = 9;
v63 = *(_DWORD *)(v62 + 88);
if ( v63 )
{
   v64 = *(int (__cdecl **)(_DWORD, _DWORD, _DWORD,
   _DWORD, _DWORD))(v63 + 24);
   if ( v64 )
     v62 = v64(v62, v1, *(_DWORD *)(v3 + 16), *(_DWORD
     *)(v3 + 40), bstrString);
}

It has wired in some recognition of patterns that call standard functions like strcpy and strlen, but as far as I can see not much else. It's interactive in that you have to supply the interpretation.

It's pretty simple to decompile asm by hand into the above, but the work is only just beginning. For example, what is v3+16? Some struct member?

Note that there is no type information in the hex-ray output.

Reply via email to