Make your own free website on
Home Page ModifyTime 2006-07-15


08 Oct 2006
Released version 0.0108b
  • from patch from Jason Hood:
    • recognise float types (ByteInfo::typeFloat)
    • allow -1 in arrays
    • added the functions to dump raw bytes and output C-escaped strings
    • added more instructions to GetUseType (adapted)
    • Windows API function argument reference (winapifn.lst file)
    • custom function aliases and arguments (customfn.lst file)
    • comparison instructions will use condition codes, other instructions flags (eg: "cmp eax, 0" / "je ADDR", but "test eax, eax" / "jz ADDR")
    • made the "Referenced by" output an option, instead just using delineators to indicate calls ("========") and jumps/constants ("--------"), also indicating how many forward/backward references (eg: "=1<=2>==" means this function is called once before this address and twice after)
  • mark reference detected in complex reference and use them
  • dump even data
  • update floating point disassembly (up to Pentium 4)

03 Oct 2006
Released version 0.0107b
  • from patch from Jason Hood:
    • if there are no code sections, treat the section containing EP as code
    • primitive recognition of Unicode strings (`(StringData)L"unicode"') !!! WONDERFUL !!!
    • display only the first 100 characters of strings
    • if the instruction is 11 bytes, keep the bytes on one line
    • display strings using "StringZ" pseudo-instruction (adapted)
    • display base address using 2, 4 or 8 digits, depending on its value
    • add a tab after BYTE/WORD/DWORD
    • made the REP actual prefixes for string instructions (eg: "rep movsb")
    • added short options for most of the long
    • added --show-cRef for the original "Referenced by" display (calls)
    • added --show-URef for the original "Referenced by" display (uncond. jumps)
    • added --show-CRef for the original "Referenced by" display (cond. jumps)
    • added --show-refs for the original "Referenced by" display (all of above)
    • add space after each colon in DLL display (eg: "Addr:xxx" -> "Addr: xxx")
    • minor fixes
  • added --no-entry-code options to specify that entry point does not point to code (happen with some driver)

For developers

  • add GetLiteralSize support for offsets in Param
  • add Instruction::IsNop (adapted from Jason patch)

26 Sep 2006
Released version 0.0106b
  • from patch from Jason Hood:
    • reduced the file header, added option for original display
    • dump known resource types, added option for original display
    • use three columns to display relocations
    • added space after the comma (eg: "mov al, 0")
    • only use "repe" (and "repne", not "repnz") when appropriate, "rep" otherwise
    • made the REP actual prefixes for string instructions (eg: "rep movsb")
    • "normalised" the condition codes
    • added --full-headers(-H) for the original headers display
    • added --raw-resources(-R) for the original resource display
    • replace "Ord." with "Ord#"

For developer

  • changed GetStringStats to IsPossibleString

21 Sep 2006
Released version 0.0105b
  • from patch from Jason Hood:
    • BUG FIX fix crash fix crash when importing by ordinal
    • BUG FIX some typo fix
    • BUG FIX FEMMS & PREFETCH (swapped opcodes)
    • BUG FIX MOVLPS (swapped src/dst)
    • BUG FIX ARPL (EwGw not EvGv)
    • TEST/XCHG ("mem,reg" instead of "reg,mem")
    • improve a lot disasm adding SSE/SSE2
    • start float handling
    • enhanced x86test (read from file, read bytes on command line)
  • BUG FIX read correctly across sections
  • enable warning if compiled with gcc
  • do not use CFLAGS/CXXFLAGS in configure

04 Jan 2004
Released version 0.0104b
  • fix dll search under win32

21 May 2003
Released version 0.0103b
  • BUG FIX DevC++ produced buggy executable
  • ADD --addr-start --addr-end options to disassemble partially

For developer

  • Rewritten options code

2 February 2003
Released version 0.0102b
  • BUG FIX do not try to search full api name for export
  • ADD print possible strings references (idea and partial implementation from Jeremy Smith)
  • ADD find external dll to read full api names (if ordinal) (used current directory on Unix, SearchPath on windows)

For developer

  • OutOfAddress is now global
  • cleanup and constification
  • new ::DataReader class (removing dependency for dasm)
  • renames ReadByte/Word/Dword in ReadU8/U16LE/U32LE (now only on DataReader)

1 January 2003
Released version 0.0101b
  • updated DevC++ project
  • BUG FIX print wrong disassembly on some cases (without -b option)
  • a bit faster

For developer

  • renamed api to symbol and FileByte to ObjectModule
  • review Relocation classes for bfd use
  • move Symbols and entryPoint infos into ObjectModule
  • many cleanup
  • new mode to read object (ObjectModule::DataReader class)

1 August 2002
Released version 0.0100b
  • ADD add ws2_32 to cache
  • BUG FIX fix overlapped instruction printing output
  • BUG FIX filler skip relocation on 0 byte sequences
  • BUG FIX fix overlapping beetween code and data

29 July 2002
Released version 0.0099b
  • ADD print import name if imported by ordinal
  • BUG FIX if unknown data contain relocation are printed as DWORD, not single bytes (this is the main reason for this fast release)

28 July 2002
  • updated site layout

25 July 2002
Released version 0.0098b
  • removed ole2 and added odbc32 from cache
  • print hexadecimal file characteristics
  • print more flag of file characteristics
  • filled some missing directory names

13 July 2002
Released version 0.0097b
  • BUG FIX correct spelling in README
  • ADD for some dll (wsock32, ole32, oleaut32 for the moment) show imports name even if imported by ordinal (for now cached in executable)

2 July 2002
Released version 0.0096b
  • BUG FIX wrong check if byte occupied (I promise I'll always do regression test from now on :) )
  • BUG FIX some spell fix on doc and syntax usage

16 June 2002
Released version 0.0095b
  • ADD add option to select what output (useful for script or other things)
  • show decimal and hex for ordinals
  • update man page

For developer

  • fix make distcheck
  • add GUI to dist (still in alpha)

12 June 2002
Released version 0.0094b
  • Projects for DevC++ (console and GUI)
  • Project for Anjuta 1.9 (console)
  • begin GUI (some preliminary code only)
  • BUG FIX import without Hint-Name handled correctly (Borland and early Microsoft compiler)

For developer:

  • moved some utils file to a new directory
  • transform many defines to enum

18 March 2002
Released version 0.0093b
  • BUG FIX fix len check marking data
  • ADD option for icon extraction
  • test for little endian during compilation

10 December 2001
Released version 0.0092b
  • BUG FIX fix compile problem with VC++ in release mode (severe BUG)
  • some file cleanup

9 December 2001
Released version 0.0091b
  • BUG FIX do not collapse symbols for same address

29 November 2001
Released version 0.009b
  • BUG FIX unicode handling fixed if wchar_t is not 16bit unicode
  • BUG FIX invalid esc decode instruction (small 0.0089 only bug)
  • some cleanup
  • fixed some missed include

28 October 2001
Released version 0.0089b
  • started redesign code

24 June 2001
Released version 0.0088b
  • NEWS: project ported to SourceForge (
  • BUG FIX fixed priority for complex memory references
  • BUG FIX raw-dump rewind file for empty section
  • BUG FIX fixed relocation detection with some strange file
  • BUG FIX fixed small problem with MSVC compiler
  • disabled unsafe heuristic, too unsafe
  • improved config scripts

10 March 2001
Released version 0.0087b
  • BUG FIX invalid SECC instruction reported as valid
  • BUG FIX removed overwriting information with bad one marking integer
  • import marked as loader bytes
  • added Borland C++ project files to source

For developer:

  • some cleanup in code
  • added note.txt to source

25 February 2001
Released version 0.0086b
  • BUG FIX removed log print
  • BUG FIX missing some list item separator in man page

For developer:

  • removed silly dependency from peformat.h
  • This project is not dead! I'm the only programmer and every single problem can slow down developing!

21 December 2000
Released version 0.0085b
  • BUG FIX removed some wrong relocation checking (3D Now! and SECC1)
  • BUG FIX checked memory parameter for 3D Now!
  • BUG FIX correct too restrictive debug check (stupid mistake)
  • BUG FIX incorrect cvtpi2ps handling
  • Fixed some constant for performance and size optimization

For developer:

  • renamed inst_offset to pc
  • revisited pc handling in x86dasm
  • removed bit field from PE structure

5 December 2000
Released version 0.0084b
  • ADD finished all Pentium III instructions
  • ADD Athlon instruction and parameter
  • ADD --raw-dump parameter

For developer:

  • removed old C style code
  • RelocationInfo associated with FileByte

18 November 2000
Released version 0.0083b
  • ADD man page for UNIX
  • .spec file use rpm global options
  • small precision improvement

For developer:

  • many changes to encapsulate old style C code to object oriented
  • preparing to merge with bdf (now code is GPL, so I can include bdf without license problem)
  • there are no BUG FIX in this version!
  • why I waited for so many time ?
    • I had many other work (and other problem too)
    • I studied other freeware project for merging or optimize my work (bdf, DCC, PEDasm and others)

2 September 2000
Released version 0.0082beta
  • BUG FIX fixed data resided in two section
  • BUG FIX bad address reference for some complex reference
  • BUG FIX bad label marking for some jmp dword ptr [x*4+y] reference
  • BUG FIX some minor correction
  • print information on complex reference
  • if bad parameters print usage and return error
  • added some instruction processing

For developer:

  • Fixed TIstrInfos constant use

August 26th 2000
Released version 0.008beta
  • BUG FIX not infinite loop for some overlapped code (rarest)
  • BUG FIX don't overwrite priority on data
  • BUG FIX correct condition on heuristic motor
  • BUG FIX not relocation on string!
  • rewrite auto_ptr (more compatible)
  • rewrite some PE structure (more compatible)

For developer:

  • separate complex reference analysis from code.cpp to codescan.cpp
  • eliminate TCodeRange class (not used)
  • renamed export identifier (keyword on some compiler)
  • fix table for registry information (x86reg)

June 10th 2000
Released version 0.0075beta
  • Source code released.

March 22th 2000
Released version 0.0075beta
  • BUG FIX not extend sign on byte constant for byte registry operation
  • ADD add --show-priority to options

March 12th 2000
Released version 0.007beta
  • BUG FIX wrong priority order
  • BUG FIX no overlapped code
  • BUG FIX fixed loader data exclusion on some file
  • ADD Added global reference to heuristic motor

February 14th 2000
Released version 0.006beta
  • BUG FIX xchg eax,ebx printed as xchg ax,ebx
  • BUG FIX internal uninitialized error (3 day of work!!)
  • BUG FIX fixed some insignificant memory leak
  • ADD instruction movntq (found AMD doc)
  • ADD jmp dword [4*reg+constant] improved
  • ADD start global analysis
  • some optimization

January 17th 2000
Released version 0.005beta

I start revision program output

  • BUG FIX string/loader data length not reported correctly
  • BUG FIX loader data not handle correctly
  • BUG FIX resource with name handled as ID
  • BUG FIX overflow on section name printing
  • BUG FIX segment override not printed
  • BUG FIX print [] if param is [00000000h]
  • BUG FIX if [xxx] xxx constant write always unsigned
  • BUG FIX if file has no relocation handled as with relocation
  • ADD option for version and processor disabling

January 11th 2000
Released version 0.004beta
  • BUG FIX cmpxcghg8b have bad parameter
  • ADD Pentium III control instruction (prefetchX, fxsave, fxrstor, ldmxcsr, stmxcsr, sysenter, sysexit, sfence)
  • ADD Pentium III MMX instruction (maskmovq, pextrw, pmovmskb, pavgb, pavgw, pinsrw, pminub, pminsw, pmaxub, pmaxsw, pmulhuw, psadbw, pshufw)
  • ADD full AMD 3DNow! instruction extension

January 8th 2000
Released version 0.003beta
  • BUG FIX Correct disassembly for Imm8 signed extended, now extend sign
  • BUG FIX Wrong size setting of memory
  • ADD Excluded loader code
  • ADD Added api call to heuristic motor

January 4th 2000
Released version 0.002beta
  • BUG FIX Relocation on instruction not handled correctly
  • BUG FIX More label than needed
  • BUG FIX String are now handled correctly
  • BUG FIX No code and code overlap on complex jmp
  • ADD Relocation on code finished
  • ADD Options (--bytes)
  • ADD Better data analysis

January 1th 2000
Released version 0.001beta
  • BUG FIX Don't add many reference
  • BUG FIX Not initialized data pointer are not correct
  • ADD relocation use

November 19th 1999
Released version 0.00015beta
  • BUG FIX Don't exit if some instruction is unknown
  • BUG FIX fixed error printing Numeric export
  • ADD data analysis for pointer in code
  • ADD check for string in code - many new BUG :-)

November 25th 1999
Released version 0.0001beta

November 11th 1999
Released version 0.00001beta

Project started on September 1999

Home Page
Frediano Ziglio
e-mail: freddy77 _AT_ gmail _DOT_ com
Valid CSS! Valid HTML 4.01! WML, Website META Language