PeLib   An open-source C++ library to modify PE files.
February 9, 2005: PeLib 0.09 alpha
The focus for this release was primarily on bugfixes and harmonizing the public interface of the individual classes. View the changelog here.
The documentation has not yet been updated. This will be the major work on PeLib for the next few weeks.

February 4, 2005: PeLib moves to SourceForge
PeLib is now hosted on SourceForge too. I have moved the official forum to SourceForge and there's also a mailing list available you can sign up to if you want to know about PeLib updates. I'm also planning to use the CVS repository but it's not yet ready to be used.

January 17, 2005: PeLib 0.08 alpha released
0.08 is mostly a redesign of PeLib away from exceptions and back to error codes. It's also the first version that's been tested using unit tests although only about 20% of all unit tests have been implemented so far. Last but not least more than 30 new functions were added to PeLib. Note though that especially the ResourceDirectory functions haven't yet moved away from exceptions completely so 0.08 is definitely not a major release.
Compilers supported by this release are: g++ 3.3.1, VC++ 2003 and VC++ 2005. BCC and DMC are still having some problems.

July 18, 2004: PeLib 0.07 alpha released
Once again some good news and some bad news today. First the bad news, I had to make some (minor) changes in the public interface and I had to (temporarily) drop my requirement of using only ISO C++ features. Why did I have to do this? Because PeLib now supports the 64bit PE+ format too. And that's the good news. In fact I had considered upgrading PeLib from alpha to beta status but it looks like I need to make some other (minor) interface changes within the next weeks. I'll keep PeLib at alpha level until I am confident the public interface is more or less complete. The main focus of the next weeks will be extensive beta-testing of PeLib to find and remove bugs. That's something that hasn't got the deserved attention so far. The PeLib-DLL and the documentation also need to be updated.

July 3, 2004: PeLib 0.06 alpha released
Good news for some, bad news for others. Let's start with the good news. I've added the TlsDirectory class that deals with the TLS (Thread Local Storage) directory. And what's even more important, I finally updated the DLL version of PeLib (PeLib.dll). Now for the bad news. This version does not support the Digital Mars and Borland C++ compiler. I've also not tested most of the new stuff. So you might get some funny or not so funny results. But that's what alpha version are all about, right?

June 25, 2004: PeLib 0.05 alpha released
As I had mentioned in the last update. The next updates of PeLib would include a "low level" API for the ResourceDirectory class which allows you to access individual nodes in the resource tree. That's implemented now. The other major change in this version is the addition of the DebugDirectory class which handles PE debug information.
An example on how the "low level" ResourceDirectory API is used is included in the package you find in the Downloads section or in the Examples section.

June 12, 2004: PeLib 0.04 alpha released
PeLib 0.04 alpha is a major release, finally all major functionality has been implemented (although ResourceDirectory is more pre-alpha than alpha). So let me take this update to - for the first time ever - elaborate on what's planned in the future of PeLib.

The next steps are:
So much about the future plans. The new version can be found in the download section and I want to note that the documentation has been updated too.

June 4, 2004: Preview on the class ResourceDirectory
I finally began a more serious effort to implement the ResourceDirectory class. So far it's possible to read and rebuild resource directories and to get the data of individual resources. Nothing too ground-breaking but enough to justify a short preview on how to use the new class. ISnatch is a small program which extracts icons from PE files.

May 31, 2004: PeLib 0.03 alpha release.
PeLib version 0.03 adds support (makefiles) for Visual C++ 7.1, Borland C++ 5.6.4 and Digital Mars 8.38n. See the download section for the newest archive. Additionaly another example, ProxyLib, was added to the PeLib package.

May 1, 2004: PeLib 0.02 alpha release.
PeLib version 0.02 fixes several bugs and issues, mainly in the modules dealing with the ImportDirectory and ExportDirectory. Check the download section.

April 9, 2004: PeLib 0.01 alpha release.
This first release of PeLib is buggy and incomplete. However some people kept bugging me about PeLib and therefore I decided to release 0.01 earlier than I originally intended. Check the download section.

April 1, 2004: First preview of the PeLib DLL.
Lately I've been working on porting the C++ library (which is nearly finished) to a DLL to allow people using other languages to use PeLib. Here's an example source written in MASM which uses the PeLib.dll library. Here's a screenshot so you know what the program looks like.

March 24, 2004: First preview.
For a first preview of the functionality of PeLib here's a small program called Oon2 (Out of nowhere 2) which creates the fully functional EXE file dummy.exe which shows a MessageBox once it's run.
Web page copyright 2004 - 2005 by Sebastian Porst
PeLib software copyright 2004 - 2005 by Sebastian Porst
Contact