Project:
PeLib
Purpose:
To wrap the PE file format in its entirety, for both read and write operations, and for both files in memory and on disk.
Architectures:
IA-32 (x86)
AMD64 (x64)
IA-64 (Itanium) <-- Compiles fine but needs testing.
Languages:
Written in C++. Sorry, but the API is not C-compatible.
Provided is a solution and project file for VS2008. However you should be able to get it working in your particular compiler with little-to-no work.
Notes:
If you want to use this you need to be prepared for breaking API changes in future versions (meaning, APIs may not be backwards compatible so it will require you to update your source code). If you are not comfortable with this than you may want to wait a while (possibly a long time) until these changes are over.
Reason being, the library is still in very early stages and I need to make some large architectural changes in order to implement certain functionality.
I would love to hear comments/suggestions/criticisms/etc if you have them.
Releases:
PeLib-v20091008a
First release. Very basic functionality. Currently wraps NT header, DOS header, TLS dir, Import dir, and Export dir. Only supports files in-memory. Only supports operating on files with the same architecture that the lib is compiled as. Still lots of potential bugs and unchecked pointers.
PeLib-v20091012
Maintenance release. Fixes some critical bugs, some minor bugs, and introduces an example usage project.