Skip to content

BlobbyBob/PtraceObfuscator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PtraceObfuscator

An x86-64 ELF obfuscator based on hiding the control flow using the ptrace interface. An advanced description is available in the paper in this repo.

How to use

Consult golang.org for information on how to set up Go.

Example usage:

git clone git@github.com:BlobbyBob/PtraceObfuscator.git
cd PtraceObfuscator
go mod download
go build packer.go
cp $(which du) .
./packer -f du
./du.packed -hs ~

You can use the -nop option if you want the obfuscated instructions to be replaced with NOPs instead of random data.

Limitations

There are some conditions that the input binary needs to fulfill:

  • It needs to be linearly disassemblable
  • It needs to be single-threaded (and may only use a single process)

As these are implementable in theory, feel free to create a pull request, if you want to improve the PtraceObfuscator.

About

An x86-64 ELF obfuscator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published