Android NDK UPX加固

本文详细介绍如何通过UPX工具加固Android平台上的SO文件。首先介绍了所需编译环境的搭建,包括zlib、ucl及lzma等依赖库的准备,并提供了特定版本的UPX下载链接,该版本已修复加固后SO文件无法在手机上运行的问题。接着说明了如何设置环境变量和编译参数以确保编译过程顺利进行。最后给出了加固SO文件的具体命令示例。

准备编译环境:

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设置环境变量:

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中添加

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中即可在手机上运行起来。

加固语法:

$./upx.out -f -o libjin_upx.so libjni.so
.....
packed 1 file.


转载于:https://my.oschina.net/u/2424583/blog/509634

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值