HT ChangeLog ============== version 2.0.11: - [Win32] Save config in home directory - fixed crash while changing text highlighting - small bug fixes version 2.0.10: - [x86] SSE5 :) version 2.0.9: - [Mach-O] ARM and X86_64 support - [Mach-O] support for 64 bit images - small bugs fixes version 2.0.8: - Loading Analyser for java class files was broken - Fixed some cosmetic resizing bugs - Fixed infinite loop in fgetstrz version 2.0.7: - Added a missing #include found by gcc 4.3 - Fixed minor problems found by gcc 4.3 version 2.0.6: - [POSIX] Ignore mouse events - Dump analyser output function was broken - Fixed a lot of (possible) buffer overflows version 2.0.5: - Editing bytes in image mode was broken under subtile circumstances version 2.0.4: - Fixed some 64 bit issues version 2.0.3: - [POSIX] Resize application on SIGWINCH - [x86] SSE4.1/SSE4.2 - [x86] small bug fixes - [x86] reduced opcode table bloat - Allow different displacements in hex view version 2.0.2: - [IA64] disassembler works again (is anybody using this?) - [Java] fixed stupid undefined behaviour bug - [Java] use Signature information when available (annotates generic functions etc.) version 2.0.1: - [Java] annotate exception handlers in byte code - [Java] some byte code improvements (lookupswitch, tableswitch) - Analyser can export HTML files again - [PowerPC] added Cell and POWER6 instructions version 2.0: - renamed process.h to htprocess.h because of some stupid cygwin build problems - fixed some problem with file sizes > 4 GiB version 2.0beta6: - fixed crash when opening read only files in obscure situations - [ELF & java] fixed binary search in image view - [ELF64] some cosmetic fixes - [java] off by one version 2.0beta5: - [Win32] messed up file-saving code version 2.0beta4: - fixed crash in cp-demangle - [Win32] Relax CPU version 2.0beta3: - fixed crash in drop-down widget - fixed loading of class files - fixed generating text output files of analyser - implemented automatic window tiling - fixed saving of text files version 2.0beta2: - should now really support file sizes > 4 GiB - some ncurses wuerg-arounds - better handling of ELFs without program headers - bug fixes version 2.0beta: - new disassembler: (PE and ELF) * x86_64 * ARM * 64 bit PowerPC * VMX128 extension for PowerPC - x86_64 assembler - Allow file sizes > 4 GiB - Rewrote a lot version 0.9.5: - [x86] wrong mnemnonics for iret/d/q version 0.9.4: - [x86] Fixed stupid bug in assembler (group insns weren't accessible) - [x86] Some labels generated by the analyzer were had wrong prefix version 0.9.3: - [x86] added SSSE3 and missing vanderpool/pacifica instructions - [x86] andpd had wrong mnemonic - [x86] allow alternative mnemonics (like jz vs. je) version 0.9.2: - updated ELF program header types - better Mach-O executable sections detection - allow ':' key for changing comments in analyser - [Win] use unicode output - compile with gcc 4.1 - updated minilzo - small bug fixes version 0.9.1: - updated cp-demangle.c from gcc: This fixes two bugs in the symbol name demangler which could crash HT. version 0.9.0: - analyser: support for int, half and byte data-types. - x86 disasm: invlpg, fisttp instructions added - x86 disasm: sse, sse2, sse3 instructions added - x86 asm: support for mmx instructions - configure: set -DNO_NATIVE_UNALIGNED_MOVES for platforms other than x86 - removed 'include ' from cp-demangle.c - fixed a buffer overflow in htperes.cc - handle ELFs w/o segment or program sections (Thanks Daniel Black) - don't malloc(0) (Thanks Daniel Black) - some keyboard fixed for windows xp version 0.8.0: - g++ v3 abi demangler - x86 disasm: added undocumented ffreep (df c0) instruction - compiles with gcc 3.4 - fixed buggy blockop-progress indicator - fixed ugly segfault with elf symbol loading - ppc disassebler updated (altivec instructions) - removed stefan's email address (dead) version 0.8.0pre1: - disassembler: - IBM/Motorola PowerPC (PPC) (new) - file formats: - XBE (X-Box executable) support by Stefan Esser (experimental) - Mach-O header and image support for PPC and x86 (experimental) - FLT (Flat) support (experimental) - PEF support (experimental) - XCOFF32 support - COFF support for coff files without optional header - COFF big-endian support - ELF PPC support - ELF relocatable file support (experimental) - fixed buggy ELF reading code partially (thanks rpm28) - eval dialog: added function help - eval: not ('~') and logical-not ('!') operators - disassembler interface (int maxlen, not byte maxlen) - Win32: fixed access to native windows clipboard - Win32: high CPU usage problems fixed (sys_suspend() bugged) version 0.7.5: - fixed bug in bnstr() with defaultbase > 10 - fixed buffer overflow in htelfsym.cc (thanks Luis Barrancos) - fixed bug in ht_sys_file/ht_stdio_file::extend() - fixed bug, causing invalid history entries when specifying files on the command-line - fixed bug in x86-assembler (correct opcode for [ebp+esp]) - minor fixes in eval-lexer version 0.7.4: - fixed bug in COFF code (hdr_ofs sometimes fixed to 0x800) - fixed bug in blockop (checking if const/var op didn't set 'i' and 'o' and sometimes failed) - fixed bug in Java bytecode disassembler: invalid opcodes crash. Thanks Jerome (freejazz). - fixed bug in Java class processing code: errors always crash HT - fixed: 0xcafebabe in mach_kernel... made classread more strict - fixed object streaming bug in GET_OBJECT (only when compiled with GCC 3.3+) version 0.7.3: - some keys were assigned to multiple commands in hex-viewer - percent display for searches and scrollbars in big files was incorrect - POSIX: improved keyboard handling (merge from 0.9.0 tree) - POSIX: X11 textmode keyboard support didn't work :-), was not configured correctly branch_only - configure now does final (release) builds by default (ie. -O2 -fomit-frame-pointer) branch_only - binary search in */image disabled because its buggy version 0.7.2: - Hexview: Number of bytes per line can be changed now - PE/header: can now follow bound import directory link (it's offset not RVA !) - x86dis: "0f 0f 0f" is now marked invalid (as it should be) - alt-x in blockop dialog was used twice by "cut" and "select expr" - fixed problem in streams that caused files not to be flagged "modified" - security fix: main.cc: strncpy(appname, argv[0], sizeof appname-1); - qword "x shl/shr 32" returns invalid result - ELF/section headers: flags now displayed correctly (thanks "scut") - (POSIX) slightly improved keyboard handling (Ctrl+W = close window) version 0.7.1: - (win2k/xp) fixed bug that caused ht to create ht.cfg in current directory instead of executable's - (win32) findfirst/next now fill the ctime, mtime and atime fields - (win32) chdir() to "X:\" fixed - cmdline param '-h' works again - new config.guess/config.sub version 0.7.0: - whole new Address class for the analyser. Much more flexible. Enables segmented and 64-bit addresses. - ht_snprintf/ht_vsnprintf + many possible buffer overflows fixed - projects (groups of files) - LE: image/analyser,VxD support, internal relocations (beta, no imports) - Java: disassembler, image/analyser - NE: relocations improved - IA-64 disassembler + PE64 support - .Net IL disassembler + PE .Net support (alpha) - submenus - view current/cursor offset in a different view - tools/int2info.pl: converts Ralf Brown's Interrupt List to TexInfo - htpehead.cc: directory goto works now, OFSs really are RVAs ! - sys/djgpp: ff2pstat(...) fixed - got rid of fmt_vaddress - PE/imports,exports,delay-imports based on ht_listbox - x86dis: movzx/movsx and "mov mem32/16, seg" param size ambiguity fixed and many minor fixes - goto dialog auto-documents available eval() functions - Inter-process communication (IPC) via console redirection on all existing platforms. Primitive terminal emulation. - qword support - new streamfiles: ht_sys_file, ht_stdio_file, ht_temp_file, ht_null_file - some memory leaks killed (Valgrind sessions) - log-window scrolling fixed - virtual file system (VFS) rewritten, VFS viewer rewritten - many bugs fixed version 0.6.0b: - textedit: save-bug fixed - sys/posix: pstat() fixed version 0.6.0: - ELF: new OS ABI values supported (eg. FreeBSD) - built-in registry - data not code - palette system redesigned - bin2c text-open-bug for djgpp fixed - physical search modes in image/analyser views implemented - huge memory leak in binary search eliminated - text viewer/editor: many bugs fixed, improved visualization, full undo support, speed ups, save works now - analyser output core rewritten - context menus - syntax highlighting in image/analyser views - text editor: choose syntax highlighting - x86-assembler: lock, repz, repnz support added - "save as" asks before overwriting :-) - search in PE/export, imports and ELF/symbols - history bug with visual search fixed - COFF/image and analyser implemented (experimental) - NE/image and analyser implemented (experimental) - NE/imports added, NE relocations started - info-viewer rewritten to cope with external files/references and to support big files - x86dis: fixed 16/32 bug with "jmp far x:y", fixed bug with lss,lfs,lgs - ht-posix: X11 textmode support (for better key handling) - analyser speed ups - many bugs fixed version 0.5.0: - htdata interface changes (list- and tree-enum) - improved ht-posix keyboard handling (home, end) - analyser can save and load its entire state ! .htcfg files are written for all analysed files - cstream rewritten and renamed to mfile - file truncate/extend now undoable - scrollbar in textedit - replace implemented, htsearch partially rewritten - resize/move behaviour changed (different modes for move/resize, works better on unices) - display if in edit or view mode (hex) - x86asm: "jmp far x:y" works now - select,copy,insert,delete through alt+s,alt+c,alt+v,alt+d - ht_compressed_stream implemented (uses miniLZO). it's used to compress all config files (down to about 30% of their original size) - time tag edit (!) - file/new implemented - textfile save implemented - "save as" implemented - vfs create file implemented - improved handling for broken files - textedit cut/delete - text editor undo + protocol - new info file viewer - byte-order/endianess problems fixed (PE, ELF, etc...) - ELF64 support started - x86dis: fixed signed imm bug (e.g. add word ptr [...], s_imm) - make-system updated and fixed - documentation updated - fixed bug with emptied histories - many bugs fixed version 0.4.5: - file truncate/extend - file has been modified, save ? - text viewer - analyser string detection - improved write caching (consumes less memory) - ht_textfile (allows intermixed line/offset-based read and write access) - text editor with syntax highlighting (C/C++) - handlemsg for ht_subs - ht_group_sub implemented - very powerful yacc/lex-based expression evaluator (supports functions and symbols), replaces old integer and old c/asm string evaluators. works inside: goto, search (eval once), blockop, search (halt if != 0). - evaluate dialog - str- and hex-inputfields fixed - statictext fixed (again...) - ht_view resizing rewritten - non-modal clipboard window - atoms based on tree - delete_timer didn't work ?! - textfile autodetect - file manager: copy files - edit comments - delete history entries - LE: object-flags update - improved scrollbar - scrollbar in hex/analyser - position indicators - new search mode: halt if eval(expr) != 0 - entropy/entropy2 functions search (halt if != 0) - LE: USE16 segments - improved non-x86 support - many bugs fixed version 0.4.4d: - prefixed genericdrawbuf methods with "b_" to avoid macro problems on some systems (printf on hppa) - compiles with gcc 3.0 version 0.4.4c: - linux/htsys.cc to include string.h (needed by FreeBSD, thanks Fyodor) - word/dword tags work again - 386-specific debug code removed - tools.h includes stdlib.h instead of malloc.h version 0.4.4b: - PE/exports ordinal bug fixed - escape in registry bug fixed - window-list on empty desktop bug fixed - build system errors fixed (hthelp.inc missing) version 0.4.4: - exposed() implemented (redraw view only if exposed()) - vfs-viewer (NC/MC-style abstract file manager) implemented - vfs's implemented: file, registry - registry edit dialogs (symlink, color) - block operations (fill file blocks with bytes, words, dwords or fixed strings) - dtree bugs fixed :-( - read caching fixed (ate up too much mem...) and disabled (now that it works its too slow...) - write caching speed-up. especially for linear writes (e.g. block ops) - configuration store/load (re)implemented, new config file format, architecture independant (32+ bits). - object-streams implemented (bin, text, memmap) - statictext (finally ?) fixed - i/o-system abstracted further - win32- and dj-suspend functions implemented - per-file not per-viewer edit-mode - registry store/load - history store/load - ELF support improved: relocations - search for xrefs - show recursive function references - many bugs fixed version 0.4.3: - statictext rewritten (finally ?) - pe and coff share some more data - quickfind completition (tab) for ht_listbox - htdata.cc rewritten (whole new data architecture) - rewrote resize mechanism - auto-select pasted data - registry implemented (replaces old palette system, more flexible) - color editor scrapped - viewer interfaces cleaned up (new name: format) - assembler fully integrated (write) - ht_listpopup is now based on ht_listbox - dialog histories (search, goto & files) - improved linux support (select-mode through alt+v, better menus, no longer wastes CPU time when idle) - empty uformats-bug fixed - message queuing implemented (dirty but works...) - listbox scrollbar works correctly now - enhanced win32 support - heavily improved ELF support: section headers, program headers, symbol tables and code/data analyser - collapsable hts_subs + collapsable headers - listbox sorting by row(s) - follow dword ptr at cursor (press 'f') - name demangling via libiberty's cplus-dem - more efficient growing algorithm for memstreams - general file information viewer - cancel searches in progress - customizable status (time, date, analyser activity) - LE support improved: entrypoints - visual (regex) searching implemented - packed statictag-tables - various asm/disasm(x86), search and clipboard bugs fixed - many bugs fixed version 0.4.2: - empty files/streams and empty ht_uviewers supported correctly - clipboard implemented (copy, paste, show, clear, copy from, paste to) - NE support started (header, segments, entrypoints, names) - close windows, always start - statictext finally works - Space in char-tag and in bit-tag work now - 'jmp/call Ep'-bug fixed - automatically select search results in hex - battlefield implemented - select, delete, copy and paste in inputlines - descs have a selection dialog - per bit dirty - only PE head when unknown optmagic - much x86-assembler work - pe resource refs - always-on-top child-windows implemented - some scrollbars bugs fixed - COFF support started, PE code rewired - LE virtual section memory supported (crashed on bigmem.drv) - fixed a crash in pe/image when analysis changed page layout heavily - bad ht_cached_stream bug fixed (lets hope...) - select hex visualisation problems fixed - inputline's Shift+Del works - search speed improved (caching disabled) - ht_cached_stream large reads improved - dynamic menus - listboxes merged - many bugs fixed version 0.4.1: - PE delay-imports work now - 'db 0'-bug fixed - 'push ff/ffff'-bug fixed - pressing 'c' in image edit mode now works correctly - editing dos read-only files handled - I/O error handling started - continue searches - per-viewer history - x86dis now emits explicit " ptr" on ambigous insns - rewrote ht_uviewer - everybody uses the mktag_* functions now - tag-system rewritten (binary tags, 64-bit ids) - partially rewrote htstream.cc (ht_cached_stream, ht_layer_stream) - ht_tree delete bug fixed - Ctrl-PageDown-bug in log fixed - selections implemented - bit-tag implemented - ELF support started (header) - color-transparency - MZ image (re)implemented - LE image (re)implemented (LE non-linear image mapping supported!) - new search feature: range - active and move windows different colors + help - menus implemented - color- and flags-tag implemented - sort delay-imports - full C-like expression support in all address dialogs (+,-,*,/,%,&,|,^, (subexpr)), token evaluation interceptable through hook-procs - window management (resize, move) - many bugs fixed version 0.4.0: - htstream bug fixed (seems to be a DJGPP/libc/doc? bug) - helpviewer scrollbar added - helpviewer scrollbar-bugs fixed - LE support started (header, objects, pagemap for now) - dialog-idle, analysis continues in background - radio/checkboxes implemented - statictext automatic line breaking - sort imports/exports by ord/addr/name or unsorted/like in file - search system (search for hex/ascii and C/asm strings) - new search feature: case insensitive search - search progress indicator - letter highlight and ALT-shortcut - palette system changed - tree-viewer implemented - PE-resource support started - better linux visualization support - edit in image viewer - win32 console support started - many other changes version 0.3.992: - analyser speed up - analyser xrefs work correctly on imports/exports - various analyser improvements - "undo follow" function introduced - finshed help system - wrote help - palette system restructered - htstream bug on small files fixed. - VxD support started - config file support started version 0.3.991: - linux-io - makefile - messageboxes - code speedup - introduced the new disassembler - dynamic palettes - analyser tags work - help system started - search system started - source code cleaner tool (solves tab/space, CR/CRLF problems) version 20000114 (snapshot): - The initial HT (0.3.0-0.3.9) has been completly (!) rewritten. First release of the new version.