Skip to main content

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


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)

Uploaded Source

Built Distribution

cough-0.2.1-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

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

Hashes for cough-0.2.1.tar.gz
Algorithm Hash digest
SHA256 fdbfd1da086b7aa53ee19fe58ba6aa934941741bd9e8126fe9a70231e75fd393
MD5 ed69a8daafb2ee6a854672a3c7791426
BLAKE2b-256 6275a964a590441a3f5efb716e8df24d471baba210e20b28bf4f3f98efc5eb9f

See more details on using hashes here.

File details

Details for the file cough-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for cough-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e0c5faf5825c5b41462f548d1b067846c61e2ecb04dbbece2c0fe43eb5378d18
MD5 730ec9ed2e08bfd25d6bfafe768fbab1
BLAKE2b-256 dfbbaa20e92ac273bb5d1ac60322b730bbb608a2a19f2b971800adde17b884eb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page