Skip to content

c0w5lip/PEcker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PEcker

Packer written in C++ for educational purposes. Currently only supports PE32+ (64-bit) executables.

Disassembly

Snippet

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

Before packing

After packing

💡 The .text section is now encrypted, and a new entry point is created.

Features

Binary padding (randomize hash for the same input binary)

This feature will insert n randomly generated bytes into a new section of the packed binary (different from the packed section). This allows for signature-based detection evasion, as the inserted bytes will change the hash of the binary.

Oligomorphism / Polymorphism / Metamorphism

Algorithms

  • Bitwise
    • XOR (key-based)

Setup

Build

A commented batch script is provided to build the project using MSVC compiler. Comments explain each step of the build process...

Usage

main.exe <PE.exe>

Binary will be packed and saved as packed.exe.

TODO

  • implement more algorithms
  • parse arguments from CLI (algorithm, packed section name, ...)
  • display hash of the freshly packed binary
  • clean termination on error instead of exit(1)
  • support for PE32 (32-bit) binaries [#1]
  • support for .NET assemblies?

Resources used

About

PE32+ (64-bit) packer written for educational purposes

Topics

Resources

License

Stars

4 stars

Watchers

0 watching

Forks

Contributors