flat assembler
Message board for the users of flat assembler.

Index > Projects and Ideas > Extended Length Disassembler Engine

Goto page Previous  1, 2
Author
Thread Post new topic Reply to topic
Treant



Joined: 09 Oct 2009
Posts: 16
Location: Russia
Treant 18 Feb 2014, 09:26
In fde32 for C code:
Code:
decode(ptr, &cmd);    

not working, because parameters passed through registers as 64 bit fastcall convention.
To work i use next code:
Code:
__asm
{
 mov edx, offset cmd
 mov ecx, offset WMain
 call decode
}
    

Please fix it.
Post 18 Feb 2014, 09:26
View user's profile Send private message Reply with quote
bertomatik



Joined: 25 Nov 2014
Posts: 1
bertomatik 03 Dec 2014, 16:27
Hi yoshimitsu,

I downloaded and compiled your Extended Length Disassembler Engine, works very nicely and as far as I could see determines the length reliably -- in contrast to most of the others out there. I wonder if if the Dec2012 version is the most current or if you continued to work on it. In the latter case, could I obtain an update?

I also have a question: as far as I understand, using the structs etc you provide its easy to extract which registers, addresses etc are affected by a given instruction. But how can I determine which of those operands are read or written?

Thanks for that piece of code!!

Cheers,
bertomatik
Post 03 Dec 2014, 16:27
View user's profile Send private message Reply with quote
yoshimitsu



Joined: 07 Jul 2011
Posts: 96
yoshimitsu 26 Dec 2014, 17:49
@bertomatik:
I'm atm setting it up on github.com (fde32/fde64). However, I haven't changed anything so far. If I will do so, I'll push it to that github-repository, though.

You mean like whether it's mov [eax],eax or mov eax,[eax]? This is not implemented, you'd have to check it yourself by comparing the opcode to either 89h or 8bh (to get the opcodes check the intel manuals or use e.g. ollydbg, I will also upload the fde-source with a commented opcode table to the repo).

@Treant:
I just reviewed it and I'm not quite sure why I did that back then.. the function itself uses ecx and edx, but C uses cdecl which uses the stack, I must've set the compiler to emit fastcalls, I'll fix it, thanks.
Post 26 Dec 2014, 17:49
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.