一种基于动态链接库的静态资源保护方法及其装置制造方法及图纸

技术编号:21141643 阅读:28 留言:0更新日期:2019-05-18 05:18
本发明专利技术涉及基于动态链接库的静态资源保护方法及其装置。本发明专利技术的基于动态链接库的静态资源保护方法,包括以下步骤:将静态资源形成静态资源动态库文件,并以资源方式链接进所述动态链接库,构成所述动态链接库下的子安全动态链接库。其有益效果是:通过在动态链接库内建立不同的子安全动态链接库的方式,减少分散的单个静态资源文件被误删除导致整体程序无法运行的可能性,统一的动态链接库可以隐藏分散的子安全动态链接库的内部实现函数,通过统一的加固方式,将安全动态链接库共享一套成体系的保护方案进行整体防护,防止逐个被破解;对静态资源文件具有很好的保护作用。

【技术实现步骤摘要】
一种基于动态链接库的静态资源保护方法及其装置
本专利技术涉及信息安全领域,特别涉及基于动态链接库的静态资源保护方法及其装置,属于程序代码加固

技术介绍
现有技术在处理静态资源时,都是将一个静态资源文件与一个安全保护的动态链接库结合一起处理,然后分别进行整体加固和保护,割裂的强相关性的两个文件增加了被中间注入和拦截的可能性。且资源文件与逻辑文件分离时会带来版本的兼容性问题。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种安全、兼容性好的基于动态链接库的静态资源保护方法及其装置。基于安全动态链接库(如so)的方式,对静态资源(如安全键盘)进行安全保护。本专利技术提供的一种基于动态链接库的静态资源保护方法,其技术方案为:一种基于动态链接库的静态资源保护方法,包括以下步骤:将静态资源形成静态资源动态库文件,并以资源方式链接进所述安全动态链接库,构成所述动态链接库下的子安全动态链接库。优选地,在所述动态链接库内,分操作平台设计并实现所述静态资源动态库文件对所述动态链接库的跨平台适配层的调用,并生成能够与不同操作平台对接的公共接口。优选地,采用代码混淆处理和代码水印处理对所述动态链接库进行整体加固。优选地,所述代码水印处理的方式是采用动态链接库私钥对所述动态链接库中存储的数据进行整体签名,获得签名文件并存储在动态链接库内;运行时采用动态链接库公钥对签名文件进行验证,并上传所述签名文件供远程服务器验证。优选地,代码混淆处理的方式包括控制流平坦化处理、内容别名化处理、花指令处理或整型数据编码处理中的一种或任几种。优选地,控制流平坦化处理的方式是整理动态链接库内函数的代码长度,并将代码长度大于设定行数的函数,编译时拆分为多个子程序;内容别名化处理的方式是收集动态链接库内的原始变量名称,并按照设定的编码方式对原始变量名称进行编码并取代原始变量名称;花指令处理的方式是在动态链接库的入口处增加无业务逻辑的垃圾冗余代码;并将常量字符串、函数名称或变量名称的字符串拆分成单个字符并存储在不同位置,调用时再组合在一起;整型数据编码处理的方式是定义计算函数对原有数据进行替换。优选地,所述子安全动态链接库共享一套RT运行时防护对静态资源动态库文件进行防护。优选地,所述操作平台包括windows操作平台、linux操作平台、mac操作平台、ios操作平台和android操作平台;其中,windows操作平台使用导入二进制的方式编译静态资源动态库文件到安全动态链接库,linux操作平台、mac操作平台、ios操作平台和android操作平台使用objcopy的方式编译静态资源动态库文件到安全动态链接库。优选地,所述静态资源包括安全文件系统、安全键盘资源或者静态的白盒库资源。本专利技术还提供了一种基于动态链接库的静态资源保护装置,包括静态资源动态库文件,所述静态资源动态库文件以资源方式链接进所述动态链接库,构成所述动态链接库下的子安全动态链接库;所述静态资源动态库文件包括数据模块及逻辑代码模块。优选地,所述装置还包括公共接口,所述公共接口用于所述动态链接库对外与不同操作平台交互;所述子安全动态链接库共享所述动态链接库的跨平台适配层。优选地,所述动态链接库包括多种以独立资源形式存在的子安全动态链接库。优选地,所述基于动态链接库的静态资源保护装置的使用方法包括以下步骤:根据用户端读取请求,调用动态链接库的公共接口,公共接口根据用户端操作平台选择相对应的静态资源动态库文件并实现调用。优选地,所述静态资源包括安全文件系统、安全键盘资源或者静态的白盒库资源。优选地,安全键盘资源的使用步骤包括:1)、根据用户端读取请求,调用动态链接库的公共接口,所述公共接口根据用户端操作平台选择相应的安全键盘资源动态库文件,由动态链接库弹出相应的安全键盘资源动态库文件;2)、动态链接库将用户端输入的字符传递给安全键盘资源动态库文件的逻辑代码模块进行处理,该过程受到RT运行时防护;3)、安全键盘资源动态库文件的逻辑代码模块收到字符后按设定的处理逻辑进行处理,将处理结果的密文返回给安全键盘资源动态库文件;4)、安全键盘资源动态库文件将处理结果的密文通过公共接口返回到用户端。本专利技术的实施包括以下技术效果:通过将静态资源链接进动态链接库,构成子安全动态链接库的方式,减少分散的单个静态资源文件被误删除导致整体程序无法运行的可能性,统一的动态链接库可以隐藏分散的子安全动态链接库的内部实现函数,通过统一的加固方式,将子安全动态链接库共享一套成体系的保护方案进行整体防护,防止逐个被破解;对静态资源文件具有很好的保护。能够解决现有分散的多个独立静态资源文件,其互相调用和关联性比较强且交互复杂时,会造成不同操作平台不同场景时容易出现的版本混乱的问题。附图说明图1为本专利技术实施例的基于动态链接库的静态资源保护装置是结构示意图。图2为以安全键盘为例的结构示意图。具体实施方式下面将结合实施例以及附图对本专利技术加以详细说明,需要指出的是,所描述的实施例仅旨在便于对本专利技术的理解,而对其不起任何限定作用。参见图1所示,本实施例提供的一种基于动态链接库的静态资源保护方法,包括以下步骤:建立动态链接库,并设计实现对外的安全调用逻辑;将静态资源形成静态资源动态库文件,并以资源方式链接进动态链接库,构成所述动态链接库下的子安全动态链接库。其中,静态资源包括但不限于安全文件系统、安全键盘资源或者静态的白盒库资源。在所述动态链接库内,分操作平台设计并实现所述静态资源动态库文件对所述动态链接库的跨平台适配层的调用,并生成能够与不同操作平台对接的公共接口;子安全动态链接库共享一套RT运行时防护对静态资源进行防护。操作平台包括windows操作平台、linux操作平台、mac操作平台、ios操作平台和android操作平台;其中,windows操作平台使用导入二进制的方式编译静态资源动态库文件到子安全动态链接库,linux操作平台、mac操作平台、ios操作平台和android操作平台使用objcopy的方式编译静态资源动态库文件到子安全动态链接库。本实施例中,采用代码混淆处理和代码水印处理对动态链接库进行加固处理。其中,代码水印处理的方式是采用动态链接库私钥对动态链接库中存储的数据进行整体签名,获得签名文件并存储在动态链接库内;运行时采用动态链接库公钥对签名文件进行验证,并上传签名文件供远程服务器验证。采用本地与远程双向验证签名的双重保障方式,可确保代码水印存在且正确。代码混淆处理的方式包括控制流平坦化处理、内容别名化处理、花指令处理或整型数据编码处理中的一种或任几种。具体地,控制流平坦化处理的方式是整理动态链接库内函数的代码长度,将代码长度大于设定行的函数,编译时拆分为多个子程序;内容别名化处理的方式是收集动态链接库内的原始变量名称,然后按照设定的编码方式对原始变量名称编码并取代原始变量名称;花指令处理的方式是在动态链接库的入口处增加无业务逻辑的垃圾冗余代码;并将常量字符串、函数名称或变量名称的字符串拆分成单个字符并存储在不同位置,调用时再组合在一起;整型数据编码处理的方式是定义计算函数对原有数据进行替换。其中,整型数据编码处理用于对动态链接库内原有数据进行替换混淆,例如,定义计算函数f(x)=5x本文档来自技高网...

【技术保护点】
1.一种基于动态链接库的静态资源保护方法,其特征在于,包括以下步骤:将静态资源形成静态资源动态库文件,并以资源方式链接进动态链接库,构成所述动态链接库下的子安全动态链接库。

【技术特征摘要】
1.一种基于动态链接库的静态资源保护方法,其特征在于,包括以下步骤:将静态资源形成静态资源动态库文件,并以资源方式链接进动态链接库,构成所述动态链接库下的子安全动态链接库。2.根据权利要求1所述的一种基于动态链接库的静态资源保护方法,其特征在于,在所述动态链接库内,分操作平台设计并实现所述静态资源动态库文件对所述动态链接库的跨平台适配层的调用,并生成能够与不同操作平台对接的公共接口。3.根据权利要求1所述的一种基于动态链接库的静态资源保护方法,其特征在于,采用代码混淆处理和代码水印处理对所述动态链接库进行整体加固。4.根据权利要求3所述的一种基于动态链接库的静态资源保护方法,其特征在于,所述代码水印处理的方式是采用动态链接库私钥对所述动态链接库中存储的数据进行整体签名,获得签名文件并存储在动态链接库内;运行时采用动态链接库公钥对签名文件进行验证,并上传所述签名文件供远程服务器验证。5.根据权利要求3所述的一种基于动态链接库的静态资源保护方法,其特征在于,代码混淆处理的方式包括控制流平坦化处理、内容别名化处理、花指令处理或整型数据编码处理中的一种或任几种。6.根据权利要求5所述的一种基于动态链接库的静态资源保护方法,其特征在于,控制流平坦化处理的方式是整理动态链接库内函数的代码长度,并将代码长度大于设定行数的函数,编译时拆分为多个子程序;内容别名化处理的方式是收集动态链接库内的原始变量名称,并按照设定的编码方式对原始变量名称进行编码并取代原始变量名称;花指令处理的方式是在动态链接库的入口处增加无业务逻辑的垃圾冗余代码;并将常量字符串、函数名称或变量名称的字符串拆分成单个字符并存储在不同位置,调用时再组合在一起;整型数据编码处理的方式是定义计算函数对原有数据进行替换。7.根据权利要求1-6任一所述的一种基于动态链接库的静态资源保护方法,其特征在于,所述子安全动态链接库共享一套RT运行时防护对静态资源动态库文件进行防护。8.根据权利要求2所述的一种基于动态链接库的静态资源保护方法,其特征在于,所述操作平台包括windows操作平台、linux操作平台、mac操作平台、ios操作平台和android操作平台;其中,...

【专利技术属性】
技术研发人员:程威郭拉
申请(专利权)人:北京思源互联科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1