目录
下载及安装
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