I'm proud to announce the release of libhijack 0.6.1 for FreeBSD and Linux. This is mainly a maintenance release with one new feature for FreeBSD users. This release fixes bugs relating to writing data to the child process via ptrace. The new feature for FreeBSD users is the ability to resolve the RTLD's symbols. This wasn't properly being done before. You can download the new release from GitHub by going to the Tags page and downloading the 0.6.1 tarball. Read below if you want a technical reason for the new feature for FreeBSD.
I'm excited to announce that I am speaking at Thotcon and BSDCan about libhijack. In the last few weeks, I've fixed a number of bugs. I will be releasing a new minor version of libhijack after the BSDCan presentation.. Its bug fixes include proper ptrace handling on FreeBSD, lots of example code for FreeBSD, and the ability to resolve symbols in FreeBSD's RTLD.
It's been just over two months since my wife and I moved to Maryland to join Sourcefire. It's been a lot of fun. My time is very limited right now. My server didn't make the move cross-country, so I've stopped development of my hobby projects. I am working slowly on a new daemon for FreeBSD vnet jails. I have two Intel Pentium 4 servers that I'm running right now until I can get all the parts to build a new server. Once I get a new box, I'll be back to spending more time honing my talents with my hobby projects.
May is going to be a very busy time for me. The first two weeks I'll be touring Salt Lake City and Canada, speaking about two subjects I blog about often: libhijack and creating a cloud-like infrastructure with FreeBSD vnet jails. On the evening of May 3rd, I'll be speaking for my local OWASP chapter about libhijack. I'm really excited. My local OWASP chapter has some really knowledgeable people. Attendance is free, so come and learn about libhijack.
After I release a new version of libhijack, I usually take a break for a month or two to let my mind settle. Since releasing version 0.6 of libhijack, I've been hard at work. I've been reading FreeBSD's RTLD to implement the same in libhijack. I've come a long way and have a good chunk of code. However, it seems the FreeBSD developers have done a great job at keeping the RTLD secure. I can't figure out how to hook into the RTLD. Because GNU's RTLD code is uglier than ugly, I've focused current development on FreeBSD/amd64.
I will be presenting about libhijack at Weber State University in Ogden, UT on Feb 21st, 2012, at 1:30 PM. The presentation is free to attend and everyone is welcome. It's the same as my Defcon 19 talk, with new information about porting libhijack to FreeBSD. I will be releasing version 0.6 of libhijack after the presentation. Version 0.6 is coming along very nicely and is ready for release. I'm excited for this release. More information to come.
For the past month, I've been working on fixing just a single bug in the FreeBSD port of libhijack. I finally fixed the bug last night! We're getting closer to a new release of libhijack, which will support 32bit and 64bit Linux and 64bit FreeBSD. I'm going to leave out 32bit support on FreeBSD simply because no one uses 32bit FreeBSD anymore. If anyone would like to add 32bit FreeBSD support, I'll gladly accept patches (assuming the code looks good). There's still at least a month's work left to do.
FreeBSD 9.0 is nearing release--9.0-release is now tagged in version control! This is a major milestone release for FreeBSD with enhancements to many existing features. I keep an up-to-date git repo of FreeBSD 9-stable (updated nightly) at GitHub. My git repo contains a few custom patches I've written the past little while. I will continue to keep the repository up-to-date on a nightly basis as best as I can (the nightly cron job is running in a FreeBSD VM I run at work).