【编译教程】UPX 源码编译

下载及安装

wget https://github.com/upx/upx/releases/download/v3.96/upx-3.96-src.tar.xz
tar -xf upx-3.96-src.tar.xz
cd upx-3.96-src

之后进入目录,将 Makefile 里的编译选项选上,并且将 -g 改成 -ggdb3 来增加调试符号

这里 ./upx-3.96/src/Makefile 是修改过的文件

# diff ./upx-3.96-src/src/Makefile ./upx-3.96/src/Makefile 
8c8
< BUILD_TYPE_DEBUG    ?= 0
---
> BUILD_TYPE_DEBUG    ?= 1
59c59
< CXXFLAGS_OPTIMIZE ?= -O0 -g
---
> CXXFLAGS_OPTIMIZE ?= -O0 -ggdb3

最后进行编译就好了

make all

之后能在目录下找到一个 upx.out,我们调试这个程序就行了

错误及处理

please upgrade your UCL installation

conf.h:140:6: error: #error "please upgrade your UCL installation"
  140 | #    error "please upgrade your UCL installation"
      |      ^~~~~

需要自己去下载编译一下 UCL

wget http://www.oberhumer.com/opensource/ucl/download/ucl-1.03.tar.gz
tar -zxvf ucl-1.03.tar.gz
cd ucl-1.03
./configure CPPFLAGS="$CPPFLAGS -std=c90 -fPIC"
make -j32

然后去编译 upx 的目录,在里面输入你刚刚编译 UCL 的目录

export UPX_UCLDIR=/src/ucl-1.03
make all
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注