[发明专利]一种对可执行文件进行加固的方法和装置有效
申请号: | 201611129918.1 | 申请日: | 2016-12-09 |
公开(公告)号: | CN106709289B | 公开(公告)日: | 2020-01-31 |
发明(设计)人: | 吴乐 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/60 |
代理公司: | 11323 北京市隆安律师事务所 | 代理人: | 权鲜枝;何立春 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加密 加密函数 可执行文件 方法和装置 函数选择 加密手段 破解 存储 | ||
本发明公开了一种对可执行文件进行加固的方法和装置。其中方法包括:将可执行文件中的N个待加密的函数按次序存储,其中,N为大于一的自然数;为每个待加密的函数选择对应的加密方法;依次对N个待加密的函数进行加密,其中,对第一个待加密函数,以该待加密函数对应的加密方法进行加密;对第M个待加密函数,以该待加密函数对应的加密方法进行加密后,再以第M‑1个函数所使用的所有加密方法,按所述第M‑1个函数所使用加密方法的次序进行加密;其中,M为大于一的自然数。该技术方案既能够选择较少的加密方法,还通过加密手段的复杂化使得得破解的可能性大大降低,对可执行文件进行加固的效率高,效果好。
技术领域
本发明涉及计算机安全领域,具体涉及一种对可执行文件进行加固的方法和装置。
背景技术
一般地,为了能够保护可执行文件中的代码不被攻击者逆向破解,通过为可执行文件加壳可以实现防止攻击者逆向我们代码逻辑的目的,加壳的手段一般是给可执行文件的部分或者全部进行加密。但是目前而言,加密方法往往是单层次的,这样很容易被破解者找到应对手段,不能满足需求。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的对可执行文件进行加固的方法和装置。
依据本发明的一个方面,提供了一种对可执行文件进行加固的方法,包括:
将可执行文件中的N个待加密的函数按次序存储,其中,N为大于一的自然数;
为每个待加密的函数选择对应的加密方法;
依次对N个待加密的函数进行加密,其中,对第一个待加密函数,以该待加密函数对应的加密方法进行加密;
对第M个待加密函数,以该待加密函数对应的加密方法进行加密后,再以第M-1个函数所使用的所有加密方法,按所述第M-1个函数所使用加密方法的次序进行加密;其中,M为大于一的自然数。
可选地,所述将可执行文件中的N个待加密的函数按次序存储包括:
将该N个待加密的函数按次序存储至可执行文件中的同一代码区段。
可选地,该方法还包括:
获取该N个待加密的函数在所述可执行文件执行时被调用的先后顺序,使该N个待加密的函数的存储次序与该N个待加密的函数在所述可执行文件执行时被调用的先后顺序一致。
可选地,该方法在所有步骤之前还包括:
将所述可执行文件转换为二进制形式。
可选地,该方法还包括:
向加固后的可执行文件添加解密逻辑。
可选地,所述解密逻辑包括:
与各待加密方法对应的解密方法。
可选地,所述解密逻辑包括:
在可执行文件被加载后,在需要调用所述代码区段中被加密的函数时,以该函数对应的解密方法对所述代码区段进行解密。
可选地,所述可执行文件为安卓安装包中的可执行文件。
可选地,所述方法还包括:
对安卓安装包进行解包,得到至少一个可执行文件;
将加固后的可执行文件打包到对应的安装包中。
依据本发明的另一方面,提供了一种对可执行文件进行加固的装置,包括:
待加密函数预处理单元,适于将可执行文件中的N个待加密的函数按次序存储,其中,N为大于一的自然数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611129918.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种日志信息输出控制方法及装置
- 下一篇:一种利用感应炉熔硅的铝锭起炉工艺