Write COFF object files
Project description
A library for building COFF object files.
Tutorial
Start with the ObjectModule class:
module = ObjectModule()
Now, let’s create a ‘.text’ section:
section = Section(b'.text', SectionFlags.MEM_EXECUTE)
Add a bit of code:
section.data = b'\x29\xC0\xC3' # return 0 section.size_of_raw_data = len(section.data)
Good enough, let’s add it to our module:
module.sections.append(section)
To make use of that bit of code, we are going to need an exported symbol:
main = SymbolRecord(b'main', section_number=1, storage_class=StorageClass.EXTERNAL)
Set the value to the offset in the section:
main.value = 0
And add it to our module:
module.symbols.append(main)
That’s enough, let’s write our module to a file:
with open('test.obj', 'wb') as obj_file: obj_file.write(module.get_buffer())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cough-0.2.1.tar.gz
(5.6 kB
view details)
Built Distribution
cough-0.2.1-py3-none-any.whl
(8.7 kB
view details)
File details
Details for the file cough-0.2.1.tar.gz
.
File metadata
- Download URL: cough-0.2.1.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdbfd1da086b7aa53ee19fe58ba6aa934941741bd9e8126fe9a70231e75fd393 |
|
MD5 | ed69a8daafb2ee6a854672a3c7791426 |
|
BLAKE2b-256 | 6275a964a590441a3f5efb716e8df24d471baba210e20b28bf4f3f98efc5eb9f |
File details
Details for the file cough-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: cough-0.2.1-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0c5faf5825c5b41462f548d1b067846c61e2ecb04dbbece2c0fe43eb5378d18 |
|
MD5 | 730ec9ed2e08bfd25d6bfafe768fbab1 |
|
BLAKE2b-256 | dfbbaa20e92ac273bb5d1ac60322b730bbb608a2a19f2b971800adde17b884eb |