|
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:
fix crash fix crash when importing by ordinal
some typo fix
PUNPCKLDQ was stored as PUNOCKLDQ
FEMMS & PREFETCH (swapped opcodes)
MOVLPS (swapped src/dst)
PACKSSWB (was PACKUSDW)
PACKUSWB (was PACKSSWB)
ARPL (EwGw not EvGv)
FUCOMPP (was FUCOMPUU)
- 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)
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
DevC++ produced buggy executable
--addr-start --addr-end options to disassemble partially
For developer
2 February 2003
Released version 0.0102b
do not try to search full api name for export
print possible strings references
(idea and partial implementation from Jeremy Smith)
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
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 ws2_32 to cache
fix overlapped instruction printing output
filler skip relocation on 0 byte sequences
fix overlapping beetween code and data
29 July 2002
Released version 0.0099b
print import name if imported by ordinal
if unknown data contain relocation are printed as DWORD, not single
bytes (this is the main reason for this fast release)
28 July 2002
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
correct spelling in README
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
wrong check if byte occupied
(I promise I'll always do regression test from now on :) )
some spell fix on doc and syntax usage
16 June 2002
Released version 0.0095b
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)
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
fix len check marking data
option for icon extraction
- test for little endian during compilation
10 December 2001
Released version 0.0092b
fix compile problem with VC++ in release mode (severe BUG)
- some file cleanup
9 December 2001
Released version 0.0091b
do not collapse symbols for same address
29 November 2001
Released version 0.009b
unicode handling fixed if wchar_t is not 16bit unicode
invalid esc decode instruction (small 0.0089 only bug)
- some cleanup
- fixed some missed include
28 October 2001
Released version 0.0089b
24 June 2001
Released version 0.0088b
- NEWS: project ported to SourceForge (perdr.sourceforge.net)
fixed priority for complex memory references
raw-dump rewind file for empty section
fixed relocation detection with some strange file
fixed small problem with MSVC compiler
- disabled unsafe heuristic, too unsafe
- improved config scripts
10 March 2001
Released version 0.0087b
invalid SECC instruction reported as valid
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
removed log print
missing some list item separator in man page
For developer:
- removed silly dependency from peformat.h
- Notes
-
- 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
removed some wrong relocation checking (3D Now! and SECC1)
checked memory parameter for 3D Now!
correct too restrictive debug check (stupid mistake)
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
finished all Pentium III instructions
Athlon instruction and parameter
--raw-dump parameter
For developer:
- removed old C style code
- RelocationInfo associated with FileByte
18 November 2000
Released version 0.0083b
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)
- Note
-
- 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
fixed data resided in two section
bad address reference for some complex reference
bad label marking for some jmp dword ptr [x*4+y] reference
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
not infinite loop for some overlapped code (rarest)
don't overwrite priority on data
correct condition on heuristic motor
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
March 22th 2000
Released version 0.0075beta
not extend sign on byte constant for byte registry operation
add --show-priority to options
March 12th 2000
Released version 0.007beta
wrong priority order
no overlapped code
fixed loader data exclusion on some file
Added global reference to heuristic motor
February 14th 2000
Released version 0.006beta
xchg eax,ebx printed as xchg ax,ebx
internal uninitialized error (3 day of work!!)
fixed some insignificant memory leak
instruction movntq (found AMD doc)
jmp dword [4*reg+constant] improved
start global analysis
- some optimization
January 17th 2000
Released version 0.005beta
I start revision program output
string/loader data length not reported correctly
loader data not handle correctly
resource with name handled as ID
overflow on section name printing
segment override not printed
print [] if param is [00000000h]
if [xxx] xxx constant write always unsigned
if file has no relocation handled as with relocation
option for version and processor disabling
January 11th 2000
Released version 0.004beta
cmpxcghg8b have bad parameter
Pentium III control instruction (prefetchX, fxsave, fxrstor,
ldmxcsr, stmxcsr, sysenter, sysexit, sfence)
Pentium III MMX instruction (maskmovq, pextrw, pmovmskb, pavgb,
pavgw, pinsrw, pminub, pminsw, pmaxub, pmaxsw, pmulhuw, psadbw,
pshufw)
full AMD 3DNow! instruction extension
January 8th 2000
Released version 0.003beta
Correct disassembly for Imm8 signed extended, now extend sign
Wrong size setting of memory
Excluded loader code
Added api call to heuristic motor
January 4th 2000
Released version 0.002beta
Relocation on instruction not handled correctly
More label than needed
String are now handled correctly
No code and code overlap on complex jmp
Relocation on code finished
Options (--bytes)
Better data analysis
January 1th 2000
Released version 0.001beta
Don't add many reference
Not initialized data pointer are not correct
relocation use
November 19th 1999
Released version 0.00015beta
Don't exit if some instruction is unknown
fixed error printing Numeric export
data analysis for pointer in code
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
|