https://github.com/rehacktive/x-ecutioner
packer for linux binaries (Go binaries too!)
https://github.com/rehacktive/x-ecutioner
Last synced: about 1 year ago
JSON representation
packer for linux binaries (Go binaries too!)
- Host: GitHub
- URL: https://github.com/rehacktive/x-ecutioner
- Owner: rehacktive
- Created: 2020-06-13T12:58:40.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-14T12:40:58.000Z (almost 6 years ago)
- Last Synced: 2023-04-01T11:36:44.108Z (about 3 years ago)
- Language: Go
- Homepage:
- Size: 5.86 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## x-ecutioner
This is just a script plus some code that will generate a compressed version of a linux ELF executable, - so your Go linux binary could be smaller!
Requirements:
go > 1.13
go-binddata
Usage:
./generate.sh BINARYFILE
This wil generate a new file, called *BINARYFILE_mem*, that hopefully will be smaller than the original.
>For small binaries this doesn't work, it will actually generate a bigger binary! So try and see.
The new binary will be slightly slower at start. See below.
memrun.go is originally from here https://github.com/guitmz/memrun, modified for this usage.
#### My tests
**Compression:**
13197468 binary1
8368128 binary1_mem
(from ~13mb to ~8mb)
27190864 binary2
18780160 binary2_mem
(from ~27mb to ~18mb)
**Execution time:**
time ./binary1
...
real 0m0.014s
user 0m0.012s
sys 0m0.004s
and the compressed one:
time ./binary1_mem
...
real 0m0.348s
user 0m0.327s
sys 0m0.047s
another example:
time ./binary2
...
real 0m0.007s
user 0m0.000s
sys 0m0.008s
and the compressed version:
time ./binary2_mem
...
real 0m0.630s
user 0m0.600s
sys 0m0.064s
Released under https://mit-license.org/