Skip to content
/ goupx Public

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

License

Notifications You must be signed in to change notification settings

pwaller/goupx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages