Development has been halted on this project for a number of years now.
Do not expect bug reports to be addressed.
The old CVS repository was migrated to subversion. \o/
since SF CVS is broken, bug fixes have been
uploaded to libdisasm-0.21-pre3.tgz
some things still missing [dox!] for a
full .21 release.
this applies to libdisasm of course; the
bastard is no longer supported. a replacement
will be provided eventually.
Another pre-release has been uploaded. This can be
used as a library upgrade and has a lot of bug fixes,
as well as SSE/2/3 and 3DNow! support, plus some
of the new features I've been meaning to add for the
More to come, hopefully soon...
As many people have been told in private,
the bastard is currently shut down. What this
means is there will be no public releases for
awhile; work on a replacement system is being
performed at a slow pace.
More importantly, libdisasm is being made
a "real project" since so many people have
started using [and sending me hate mail for
my code ;)]. In addition to the core disassembler,
various utility libraries will be provided that
make it easier to write real disassemblers.... read more
I added modules to CVS, since the bastard has grown much more complex than was originally intended ['scriptable disassembler' I think was the original spec].
Current modules are:
so, libdisasm has its own module now, since more people use it than the bastard. The working bastard code [.17] is in bastard1, and the redesign effort will take place in bastard2.
This means you check things out with... read more
.17 was released in the face of an overwhelming load of rl work that appeared on the horizon.
There are a few outstanding issues to be addressed which involve rewriting ELF.h to fix got/plt/sym issues, changing the handling of EXEC XREFs, verifying the disassembly and the AT&T formatting against objdump, and making the search facility more useful.
These will be fixed and released as .17.x versions.... read more
The .17 release is on its way; all that remains is to get the ncurses UI (bda) working, and the docs a bit more up to date. This should take a week or so ... figure .17 to come out on the 20th of July or so.
If anyone wants to help out, you do some of the following:
1. download .17-pre4 [or do a CVS update] and test things
2. look at eic_wrappers.h here:
...and determine a) which functions from the API headers are not present, and b) which function invocations do not match their API equivalents [this will be anything with an 'rva' parameter, since the move to 'long long']... read more
The Libdisasm API has been revised to make it more like a real interface and less like a total hack. The old API is still supported, but can be disabled by defining LIBDISASM_NO_COMPAT in order to prevent namespace collisions.
The new API has lots of enums and typedefs, with an "x86_" prefix on all types and exported routines.
As for the bastard, I have begun working on .17 again. It is coming along well, and is nearing release stage ... though BDA may not be fully functional.... read more
The changes between the last pre-release and this one are pretty big. Lotsa things fixed [thanks Phil!], new things added. Consider this more or less a 'feature freeze' before the .17 release.
The changelog, as is now the habit, is at
The pre-release is once again at
The next week or so will consist of documenting, some testing, and no doubt lots of bug fixing. Anyone anxious for .17, give this tarball a shot and mail me with any suggestions, bugs, bitches, requests for documentation, etc so I can ignore them as usual.... read more
Made quite a few structural changes to the CVS version: the bastard now installs to /usr/local in the bin, lib, man, include/bastard, and share/bastard directories. This should make it more palatable for users/distros/etc.
A pre-release version has been uploaded to
for the convenience of those who need the bug fixes but fear CVS [i.e., grugq].
The actual .17 release will happen in the ensuing weeks. Please blast away at the pre-release and email any bugs.... read more
Yes, it's been awhile. Yes, there haven't been many updates. No, the project is not dead.
.17 is in the works, though there is no projected release date [ballpark is mid Oct]. To date there have only been a few modifications to .16: an update and a bug fix for libdisasm, a bug fix for the cli, and the addition of the MAGIC file format which guesses the file format of the target.
A couple of TODO's remain to be finished:... read more
source tarball has been tested: compiles fine on more boxes than just mine, runs OK, has many bug fixes.
more importantly, there are *man pages*. Now I can tell people to read tfm without getting surprised looks in return.
binary tarball, as usual, has not been tested. Nobody should be using the binary tarball except for redhat users who want the warm fuzzy feeling they get from not compiling code themselves.... read more
In light of recent events, there has been a lot of activity around the bastard as a UNIX disassembler.
I've been meaning to release .16 for quite awhile now, but have some sob features I want to get working, and am currently implementing static library sigs.
The CVS version is relatively stable, in fact more so than .15; it can be downloaded anonymousely from sourceforge CVS (recommended) or by nightly tarball here:
There are a lot of bug fixes and new features here, so check it out.... read more
.13 is out and contains, in the src/sob directory, a Gtk UI called "Son Of the Bastard". The UI is incomplete and barely functional, but it's there, and in some demented sense it contains an example of how to link to libbastard and make a reasonable disassembler.
Read the Release Notes for more details.
Now it's back to kernel module programming, version .14 will have to wait for Dec or the new year...... read more
Finally, after longs months of brokenness, CVS has been fixed -- and contains the latest code.
.13 is ready for testing, and the GUI is crawling along slowly.
The libdisasm package is once again functional. The incredible (cough) *non-libopcodes* x86 disassembler used by the bastard can now be included in your very own projects!
Or in mine, at any rate....
Lotsa fixes and lotsa new stuf in this one.
First off, documentation! Not complete, but more than sufficient
Secondly, extensions! Yes, they seem to work as expected
Thirdly, make install and make uninstall! Though be careful where you run it from ,the DB seems to have issues
Fourthly, EiC bugs! Yeah, that damn library is still giving me heartburn
Fifthly, a Tk front end! Check out lgb in utils.
I've uploaded a tarball of my development tree to
for the brave and impatient. The post-disassembly engines are still disabled, but everything else seems to be more or less working now.
Disassembles files up to around a meg in a couple of minutes, but I have had some files [e.g. xfte] which went on 10 minutes and took 95% CPU before I killed them. ... read more
the process is complete. i have been released. project developers and interested parties, check the forum for details:
There's a few things I wnated to get done before .10:
re-org the source
replace Seer with Eic
allow all extensions to be either scripts or .so's
Right now only the first two are done, and even then there are a few gotchas. However, since I am heading out for 3 weeks w/o a computer, and since people have been reporting problems witht eh "Strings" bit of .09, here is an interim version to keep everyone busy.... read more
This is actually a bigger deal than it sounds.
First of all, .09 works [gasp!]
Secondly, the makefile is more sophisticated and makes things a bit more painless [I hope].
Thirdly, cool features were added. Like strings!!!
Get 'em while they're hot...
v .08 is a 'bugfix' version of .07 --- i.e., one which actually compiles and such. These two were released on the same day and, as FBJ pointed out, only .07 shows up in the 'download' list, meaning everyone who is d/ling since the freshmeat announcement is probably getting broken build code.
v .08 can be had by clicking on the files link, or from these urls:
http://prdownloads.sourceforge.net/bastard/bastard-0.08.tgz... read more
Moving towards a less haphazard release model [having hit alpha and all] , I have a 'requirements' list that the bastard must meet before it will be packaged as '.09':
* Basic string recognition [based on known data locations, and on operands to string instructions]
* Data addresses recognized as such [currently a data tends to get flagged as code]
* More accurate disassembly of sstrip'ed binaries [currently __libc_main is MIA ]... read more
Submitted the project to freshmeat.
At the very least, we should be getting more feedback about what's broken ;)