Yet another Python library to read and write PE/PE+ files.
Using pip: just type pip install --pre pype32
You can download the current release from https://github.com/crackinglandia/pype32/releases
>>> import pype32
>>> p = pype32.PE(r"C:\Windows\notepad.exe")
>>> p.sectionHeaders
[<pype32.SectionHeader object at 0x01A802F0>, <pype32.SectionHeader object at 0x01A805F0>, <pype32.SectionHeader object at 0x01A803B0>, <pype32.SectionHeader object at 0x01A80730>]
>>> len(p.sectionHeaders)
4
>>> len(p.sections)
4
>>> p.addSection("\x90\x90\x90", name="newsec")
>>> len(p.sectionHeaders)
5
>>> len(p.sections)
5
>>> p.sectionHeaders[4].name.value
'newsec'
>>> p.sections[4]
'\x90\x90\x90\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc
pype32 is distributed under the BSD 3-Clause License.
You can find the Programming Reference documentation generated with epydoc for pype32 under the doc folder.