version .17-cvs current
Started writing the Front End Programming doc
API Reference has been started
Added find_addr_ptr(), find_string_ref() routines
Fixed bugs in post.1.bc and disasm_find_epilogue() that caused hangs
Barebones ATT Assembler extension written
Calltree plugin written
Added code_tag(), code_untag(), and code_untag_all()
CLI now has BC Script debugging commands, e.g. BC MEMDUMP and BC TRACE
Fixed disassembler bug that disassembled a 32-bit insn as 16-bit insn
Fixed sec_new bug that made data addresses at the start of code sections
Fixed bug in addr_make_code() that corrupted mnemonic strings
Moved extensions from share/bastard to $BASTARD_BASE/lib/bastard
Install now places static libraries in $BASTARD_BASE/lib/bastard
Fixed new_addr() bug that created 1 byte-data addresses inside code addresses
Fixed post.1.bc 'fixing 0/1-byte fns' runaway loop bug
Ncurses front-end is now usable
Wrote ncurses front-end help document
Fixed moronic offset-off-by-1 error in intcode mnemonic sprintf
Fixed sob startup crashes caused by GtkSendEvent
Added new find functions: find_bytes(), find_reg(), find_op(), find_mnemonic(),
find_xref(), find_name(), find_string(). Completely removed old find API.
Added func_del(), updated func_size() to mark CODE objects contained by function
Implemented 64-bit internal data types fpr addresses and operands
Changed OOPy names in bdb.ddl to proper BSDish names
Added condition code information to CODE struct
Fixed mega-stupid bug that crashed the CLI in EiC when format strings were used
Finished GDL output plugin (produces files for vcg)
Finished Graph DB plugin
Added addr_step_code() routine
Added support for storing plugins in ~/.bastard/plugins
Addded a new API to libdisasm [not actually a bastard feature]
Fixed ModR/M bug introduced into libdisasm since .16
Fixed 'disassembler engines not being called' problem
Added Visual C++ project files to libdisasm
Updated man pages
Fixed operand types in scas, stosb, etc instructions
Added sys_puts() to allow STDOUT output even when QUIET flag is set
Removed typhoon-specific functions [d_keyfind, etc] from Bastard API
-- everything runs through the bdb_* interface now
Added sys_sprintf() to meet all your sys_msg() needs
Removed Get*Object() routines once and for all
Added 'tag' and 'hint' field to often-used DB tables [for UI, plugin use].
Fixed handling of xrefs in asmsprintf()
Added disassemble_address_raw() to libdisasm
Added notion of 'events' and sys_event() callback for UI frontends
Fixed imul bug where a word was disassembled instead of a byte
Added UI callbacks sys_okcancel, sys_prompt_user, sys_msg, and sys_errmsg
Added CLI commands CODE, CONST, DATA, DTYPE, FUNC, IMPORTS, STRUCT
Fixed bobjdump and defaulted it to Intel syntax
Fixed extension "ext_*" routines to return an error code on error
Plugins now provide a plugin_help command for help, version info
Plugin-HOWTO.txt added.
Added DIS command to CLI for calling disassembler plugins directly
Static library signature generation/matching implemented with
libsignatures plugin and SIG GEN, SIG LOAD, SIG MATCH.
PE file format extension written [resources not supported].
Updated CLI VER command to print env and target struct details
MZ file format updated to create PSP structure
Added signature commands to CLI: SIG [subcommands GEN, LOAD, MATCH]
Modified disassembler plugins to call COMP extension and generate data types
Fixed FIND command in CLI; added subcommands INSN, OP, REG, XREF, NAME, BYTES
16-bit mode of libi386/libdisasm finished
Added EXT command to CLI for manualy loading of extensions
Moved clearing of target struct to sys_init() and target_close()
CLI now has the following commands: NAME [name location or dump named
location], COMMENT [comment location], VER [version info], ENTRY
[dump entry point]
Extension.c now contains ext_fprint_versions to print extension version info
CLI can handle commands with single or double quotes to protect whitespace
Fixed problem with structure generation in ELF.h
Fixed CLI bug with '|' and '>' not closing pipe
CLI now has 'P' command to call arbitrary plugins directly
Extension flags bug fixed
sys_init() process cleaned up
Top-level Makefile updated to allow configuration of defaults
Cheeky README.build written
ELF format extension fixed to provide proper handling for AR files
AR format extension finished
EXT_PLUGIN support expanded to allow multiple plugins
libi386 makefile fixed to include i386_invariant.o
Build/install process fixed to install the bastard to /usr/local/bin,
/usr/local/include, /use/local/lib, /usr/local/man, and /usr/local/share
instead of a monolithic /usr/local/bastard directory
Disassembly of .header section in packed executables fixed.
Makefiles updated to allow compilation on FreeBSD.
libi386/libdisasm invariant disassembly fixed.
Makefiles updated to fix 'make install' bug.
CLI now has 'O' command to call output plugins directly.
Plugin interface extended to allow arbitrary functions in plugins to be called by name.
libMAGIC format extension uses code from file(1) to detect the file format
of the target automatically.
libi386/libdisasm disassembly of prefetch instructions fixed.
Typhoon DB state save/restore rewritten for speed.
version .16
Release Date: Summer '02
Release Criteria:
"invariant" instruction disassembly
Syscall identification
man pages
bdbdump utiltiy
bobjdump utility