PortableExecutable shellcodifier
Project description
PEOR
PortableExecutable shellcodifier.
This project is made to create an embedded shellcode out of PE files.
NOTE that PEOR isn't made to easily shellcodify Windows-executables,
As we won't resolve imports for you. For such utility, use pe2shellcode.
What can PERO do?
PEOR is the worst PE shellcodifier!
We do not resolve imports, nor optimize your PE-sections.
This project is intended to shellcodify PE files for embedded usage,
Thus not using allocations / resolving correct page protections for sections.
You can use PEOR to shellcodify windows applications, but PEOR won't resolve imports for you.
You can use it to shellcodify uefi applications, but we won't locate the EFI_SYSTEM_TABLE nor provide a image_handle to the entrypoint.
You can use PEOR to write a simple piece of code, that compiles into a PE-file, and make a shellcode out of it.
Advantages over normal pe-shellcodifiers:
- you can write your embedded-code once and write it anywhere (windows usermode/kernel, linux, uefi, embedded-flash devices, ...)
Disadvanteges over normal pe-shellcodifiers:
- we only support embedded-code, thus custom utils like
implicit importsandexceptionsare not supported by the shellcodifier and should be implemented by the user, within the shellcode scope - we can't trust the existence of allocation functions (like
VirtualAllocorExAllocatePoolWithTag), thus the whole PE-file is resolved, highly increasing the shellcode size - we can't assume that PAGE-PROTECTION concept even exists, thus
PEORassumes that the whole shellcode is mapped toRWXmemory
How to use PEOR?
Simply provide a PE-file whose code fits to your target platform (e.g. do not access CR3 register from usermode context) and has no exceptions / imports.
You may use exceptionless cpp-code using etl or rust-code with custom allocator.
Simp;y
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file peor-0.0.1.tar.gz.
File metadata
- Download URL: peor-0.0.1.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
751be900aa42efcff80cadf6afd393d36c720a6850ea34c7e57f3259cb1c6a2e
|
|
| MD5 |
0ce3a9c8d69e538445c0970a8053e12c
|
|
| BLAKE2b-256 |
768f3d701f52c5566e2a3fdc884cdb2228ba293f60554dd9adc615c481eb303d
|
File details
Details for the file peor-0.0.1-py3-none-any.whl.
File metadata
- Download URL: peor-0.0.1-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9b8524d7f20d5241709f134f8420971cdeeb2582715b7596636d06613944aa9
|
|
| MD5 |
d89089d4848d2940a794386b3714186b
|
|
| BLAKE2b-256 |
5052568e0c3cf1fd900169fa5d775ed278fe566d674a45b28f0c6a98ca86c648
|