• Stars
    star
    334
  • Rank 121,959 (Top 3 %)
  • Language
    Go
  • License
    MIT License
  • Created over 11 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fix golang compiled binaries on x86_64 so that they can be packed with UPX

goupx - Fix golang Linux ELF executables to work with upx

Update: 2016/03/10

As far as I (pwaller) know, goupx is no longer necessary for Linux binaries since it was fixed in go1.6.

About

Installation: go get github.com/pwaller/goupx

(or if you don't want to do it with root, GOPATH=${HOME}/.local go get github.com/pwaller/goupx will install it to ${HOME}/.local/bin/goupx).

Usage: goupx [filename]

Fixes the PT_LOAD offset of [filename] and then runs upx.

This is only necessary for Linux ELF executables (not Mach-O executables or windows binaries, for example).

Based on code found on the upx bugtracker.

MIT licensed.

Fixes the following issue

$ upx [linux ELF go binary]
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2011
UPX 3.08        Markus Oberhumer, Laszlo Molnar & John Reiser   Dec 12th 2011

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
upx: goupx: EOFException: premature end of file                                

Packed 1 file: 0 ok, 1 error.

Typical compression ratio

Resulting filesizes are typically 25% of the original go executable. Your mileage my vary.

More Repositories

1

pyfiglet

An implementation of figlet written in Python
Python
1,283
star
2

docker-show-context

Show where time is wasted during the context upload of `docker build`
Go
323
star
3

go2ll-talk

Live coding a basic Go compiler with LLVM in 20 minutes
Go
265
star
4

pyprof2calltree

Profile python programs and view them with kcachegrind
Python
156
star
5

goimports-update-ignore

Generate .goimportsignore and make goimports fast
Go
64
star
6

go-ffmpeg-video-encoding

Basic bindings for ffmpeg video encoding
Go
22
star
7

perf

Linux Perf subsystem bindings for Go
Go
21
star
8

go2ll

Extremely experimental toy go compiler
Go
19
star
9

waitsilence

an executable which blocks until it receives nothing on stdin for a specified time
Go
18
star
10

sharedextents

Show proportion of physical extents shared between two files
Go
12
star
11

zerocopy

go zerocopy.Reader interface and implementation
Go
11
star
12

go-clz4

fast cgo implementation of lz4
C
10
star
13

fienode

Discover identical CoW copies, analogous to an inode
Go
10
star
14

cartographer

Quickly find non-determinism bugs caused by loops over maps
Go
9
star
15

sha1-visualizer

Visualize SHA1 bit differences
JavaScript
7
star
16

usv

Go
7
star
17

iptables-block-dns

Block distractions by dropping DNS packets
Shell
5
star
18

git-minecraft-smudge

(defunct) Abusing git's filter mechanism for fun and profit.
Go
4
star
19

httpcache

{non,}Transparent MITM http{,s} proxy
Go
4
star
20

pp2g

Crude python to go translator
Python
3
star
21

binview

A fun pointless visualization of arbitrary binary files
Python
3
star
22

__autoversion__

Python
3
star
23

git-alot

Track the status of many git repositories
Python
3
star
24

go-hexcolor

golang Hex string color model
Go
2
star
25

jump

Jump to AWS machines
Go
2
star
26

gooda

C
2
star
27

minty

Python
2
star
28

wscat

cat. For websockets.
Go
2
star
29

bumphunter.pw

Simple implementation of the BumpHunter algorithm
Python
1
star
30

static-fusermount

Makefile
1
star
31

pwa

Python
1
star
32

barrier

Signalling primitive for golang
Go
1
star
33

inf

Infinity
Python
1
star
34

go-memhelper

Helper functions for avoiding OOM with many goroutines doing memory-heavy things
Go
1
star
35

ptrace-read

Go
1
star
36

httpservecache

Golang HTTP server caching middleware using groupcache
Go
1
star
37

fastwalk

Go
1
star
38

runlocal

communicate commands to be run from remote to local over x-forwarding
Go
1
star
39

https-redirect

Redirect traffic from port 80 to 443
Go
1
star
40

keyboard

Keyboard offers a universal keyboard shortcut binding interface for various backends.
Go
1
star
41

go-ping

Go
1
star