VX Heaven

Library Collection Sources Engines Constructors Simulators Utilities Links Forum
[Previous] [Index] [Next]

Yet Another Disassembler

Author: herm1t

YAD is the IA-32 instruction parser. 32-bits mode only. It splits the instrcutions into pieces and stores it to the structure of type yad_t defined in "yad.h". The engine can also assemble the insn. back. The functions has the following prototypes:

        int yad(uint8_t *opcode, yad_t *diza);
        int yad_asm(uint8_t *opcode, yad_t *diza);

Both functions return the length of (dis)assembled instruction or in the case of yad() - zero, if error occured. The flags field of the structure may also had the C_BAD flag set, indicating that while insn. is still valid its highly suspicious and should not appear in the normal program. Currently, this flag is set for "00 00" and "FF FF" opcodes and instructions with redundant prefixes.

The engine might be also called "Less eXtended Disassembler Engine", because it's primarily based on XDE v. 1.02 by Z0mbie, the stuff related to operands parsing was omitted, but the table was regenerated to reflect the changes in IA-32 since the last release of XDE. There were also minor clean-ups in the code.

The constants and the data structure is partially compatible, if you gonna use this instead of XDE, you'll have to slightly change your code.

The size of the engine is about 2Kb depending on compilation options.

Quick jump to:
(Full info)

yad01.zip5822YAD 0.01May 2008MD5 sum fa2ba8db876b84fe0d66f5dc01d1cd8d
yad02.zip6667YAD 0.02May 2008MD5 sum e41e014920ddd7846164e695d046d5f3
yad03.zip6726YAD 0.03May 2008MD5 sum bbabb35810584c4092563387279451e1
yad04.zip20562YAD 0.04May 2008MD5 sum eb195beee36e75e5160ec1d188a74fed
yad05.zip17197YAD 0.05May 2008MD5 sum 567f15e7875e24da62d9a4716548ad3c
yad06.zip17416YAD 0.06May 2008MD5 sum b0909f4b7932e1bd39dcac28e001cf93
yad07.zip19250YAD 0.07May 2008MD5 sum 5bfbf259ec6ebd870cbe805cdc3b2935
yad08.zip12159YAD 0.08Jul 2008MD5 sum 0b910fd1ab2ea385a430251ed6b115fc
yad09.zip22628YAD 0.09Jul 2008MD5 sum 7167c17000f659657ce04f5eab8b86a8
yad10.zip23263YAD 0.10Jul 2008MD5 sum e3e09714793d02e781548327fc3c2a84
yad11.zip25300YAD 0.11Aug 2008MD5 sum 9bd5efff8fbe566b780795f30f12e5bd
yad12.zip26305YAD 0.12Aug 2008MD5 sum 5d583c9b6080d20ec9ae497afefa91ca
yad13.zip50552YAD 0.13Oct 2008MD5 sum f3739e1c3b9aa57c72a524eef8d5d5fd

By accessing, viewing, downloading or otherwise using this content you agree to be bound by the Terms of Use!