准备编译环境:
1
2
3
4
|
1、zlib-1.2.8.
tar
.gz
2、ucl-1.03.
tar
.gz
3、lzma443.
tar
.bz2
4、upx-hg-d9e7cb4b5485.
tar
.gz https://www.pysol.org:4443/hg/upx.hg
|
编译UPX设置环境变量:
1
2
3
4
5
|
export
UPX_UCLDIR=/usr/
local
/android/upx/ucl-1.03
export
UPX_ZLIBDIR=/usr/
local
/android/upx/zlib-1.2.8
export
UPX_LZMADIR=/usr/
local
/android/upx/lzma
export
UPX_LZMA_VERSION=0x443
export
UPX_DIR=/usr/
local
/android/upx/upx-hg-d9e7cb4b5485
|
提示几点:
1、upx使用上面给的链接下载,这个版本修复了加固SO后无法在手机上运行的错误
2、编译时提示找不到libz库,需要在UPXDIR/src/MakeFile中添加
1
2
|
INCLUDES += -I$(UPX_ZLIBDIR)
LIBS += $(addprefix -L,$(
dir
$(wildcard $(UPX_ZLIBDIR)/libz$(libext))))
|
最后在UPX根目录使用make all编译,编译完成后会在src目录下生成upx.out
准备JNI环境
使用编译好的Upx.out将jni生成的.so文件加固后放入APK中即可在手机上运行起来。
加固语法:
1
2
3
|
$./upx.out -f -o libjin_upx.so libjni.so
.....
packed 1
file
.
|