linux c 加壳

软件加壳,主要目的是为了防止被破坏。我最近遇到一个linux c 的加壳需求。

核心其实也非常简单,就是完成运行过程中,解壳完成后的源程序的代码重定位,让源代码正常的运行起来。

现在比较出名的加壳工具还是成名已久的开源老将 – - – UPX,但是有个弊端就是,开源的,解壳工具基本上也是开源的,这样只是让我们自己的软件 加壳比不加壳 只是多了一层遮羞布。

解决这个问题,我有两个方案,一个是将UPX的重定位和ZIP项目的加密功能进行融合,另外一个方案是使用zip项目和linux c下的exec命令融合。

如果要求不高,我感觉第二个方案比较简单,但是硬伤是,exec系列的函数只有在磁盘中加载函数,我想的是zip解压到/tem或者/proc的一个比较随即隐秘的位置,使用exec来做。

当然第二个方案完美的解决方法是,将exec系列修改成从内存中加载,后来发现exec的代码是linux内核的,linux内核的代码有个特点,就是牵一发则动全身,你要改,就得将内核编译一次,在内核下做修改。我评估了下,没得必要,对以后移植有很大的弊端。

剩下的方案就是第一个,UPX和ZIP的融合,看起来就很难。。。

怎样才能有一个自己的加壳工具,这个感觉任务量贼大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值