CN109766141A - 一种基于动态链接库的数据动态更新方法及其装置 - Google Patents

一种基于动态链接库的数据动态更新方法及其装置 Download PDF

Info

Publication number
CN109766141A
CN109766141A CN201811604833.3A CN201811604833A CN109766141A CN 109766141 A CN109766141 A CN 109766141A CN 201811604833 A CN201811604833 A CN 201811604833A CN 109766141 A CN109766141 A CN 109766141A
Authority
CN
China
Prior art keywords
library
dynamic link
link library
dynamic
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811604833.3A
Other languages
English (en)
Inventor
程威
郭拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Siyuan Ideal Holding Group Co ltd
Original Assignee
Beijing Siyuan Internet Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Siyuan Internet Technology Co Ltd filed Critical Beijing Siyuan Internet Technology Co Ltd
Priority to CN201811604833.3A priority Critical patent/CN109766141A/zh
Publication of CN109766141A publication Critical patent/CN109766141A/zh
Pending legal-status Critical Current

Links

Abstract

本发明涉及基于动态链接库的数据动态更新方法及其装置。本发明的基于动态链接库的数据动态更新方法,在所述动态链接库内设有子安全动态链接库,包括以下步骤:在内存中更新数据;将子安全动态链接库中的全部数据转到内存中暂存为临时文件;在内存中将临时文件与更新数据进行组合,形成新的更新文件;将新的更新文件存入子安全动态链接库,并删除子安全动态链接库中的原有数据,完成子安全动态链接库内数据的更新。其有益效果是:通过子安全动态链接库动态更新自身资源的技术对动态文件更新保护,可用于关键机密信息的安全存储及动态更新,有效提升了信息的保护强度,且对整体应用程序的影响最小。

Description

一种基于动态链接库的数据动态更新方法及其装置
技术领域
本发明涉及信息安全领域,特别涉及基于动态链接库的数据动态更新方法及其装置。
背景技术
目前动态链接库不支持自动更新自身的技术,因此机密信息文件无法封装在动态链接库内进行动态的安全保护与更新。而通过js等其它技术进行注入和插入新进程代码来动态更新动态链接库会引起更多的不安全性,如木马病毒的潜在可能性,且可能会被app应用商店的安全检测技术拦截。
发明内容
本发明的目的在于克服现有技术的不足,提供一种安全性好、支持自动更新的基于动态链接库的数据动态更新方法及其装置。通过动态链接库(如so)动态更新自身技术对安全文件更新保护(如白盒库文件),可用于关键机密信息的安全存储及动态更新,此外,动态链接库进行整体加固,极大地提升了信息的保护强度,且对整体应用程序的影响最小。
本发明提供的一种基于动态链接库的数据动态更新方法,其技术方案为:
一种基于动态链接库的数据动态更新方法,在所述动态链接库内设有子安全动态链接库,包括以下步骤:
在内存中更新数据;
将子安全动态链接库中的全部数据转到内存中暂存为临时文件;
在内存中将临时文件与更新数据进行组合,形成新的更新文件;
将新的更新文件存入子安全动态链接库,并删除子安全动态链接库中的原有数据,完成子安全动态链接库内数据的更新。
优选地,所述更新方法包括初始化步骤,所述初始化步骤包括新建动态链接库。
优选地,所述初始化步骤还包括采用代码混淆和代码水印的方式对所述动态链接库进行加固。
优选地,所述初始化步骤还包括,在所述动态链接库内创建子安全动态链接库,所述子安全动态链接库以独立资源的形式链接到所述动态链接库。
优选地,所述子安全动态链接库共享所述动态链接库的RT运行时防护,并具有统一的跨平台适配。
优选地,所述代码混淆的方式包括进行结构混乱、代码迁移、加密处理中的一种或几种。
优选地,所述结构混乱的方式为对所述动态链接库中的通用的已知固定类库进行结构混乱打散。
优选地,所述代码迁移的方式为对所述动态链接库中存储的程序中所有的判断逻辑代码以及关键业务逻辑代码增加修正代码,使原始代码迁移到其它代码段位置,获得迁移后的代码;在运行时通过调用修正脚本,修正迁移后的代码为原始代码。
优选地,所述加密处理的方式是对所述动态链接库中存储的关键函数在编译时进行加密,运行时,先对其进行解密后运行。
优选地,所述代码水印的方式是采用动态链接库私钥对所述动态链接库中存储的数据进行整体签名,获得签名文件并存储在动态链接库内;运行时采用动态链接库公钥对签名文件进行验证,并上传所述签名文件供远程服务器验证。
优选地,所述更新方法用于更新白盒算法库和/或安全文件数据。
本发明还提供了一种基于动态链接库的数据动态更新装置,包括子安全动态链接库和临时文件存储模块,所述子安全动态链接库以独立资源形式内设于动态链接库,所述子安全动态链接库与所述临时文件存储模块进行交互实现子安全动态链接库内数据的更新。
优选地,所述动态链接库包括多种以独立资源形式存在的所述子安全动态链接库;
所述子安全动态链接库共享一套RT运行防护代码,并具有统一的跨平台适配。
本发明的实施包括以下技术效果:
本发明的基于动态链接库的数据动态更新方法能够动态更新动态链接库内的数据,安全性好;采用统一的动态链接库可以隐藏分散的子安全动态链接库的内部实现函数,子安全动态链接库的自我更新更安全,并支持将机密信息动态地存储在子安全动态链接库内;能够减少分散的单个子安全动态链接库文件被误删除导致整体程序无法运行的可能性。通过统一的加固方式,多个子安全动态链接库共享一套成体系的保护方案进行整体防护,防止逐个被破解。
附图说明
图1为本发明实施例的基于动态链接库的数据动态更新方法流程示意图。
图2为以白盒库动态更新为例的流程示意图。
具体实施方式
下面将结合实施例以及附图对本发明加以详细说明,需要指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。
参见图1所示,本实施例提供的一种基于动态链接库的数据动态更新方法,在所述动态链接库内设有子安全动态链接库,有数据需要动态更新时,包括以下步骤:在内存中更新数据;将子安全动态链接库中的全部数据转到内存中暂存为临时文件;在内存中将临时文件与更新数据进行组合,组合方式包括临时文件与更新数据叠加,或更新数据替换临时文件的相应数据,形成新的更新文件;将新的更新文件存入子安全动态链接库,并删除子安全动态链接库中的原有数据,完成子安全动态链接库内数据的更新。
具体地,所述更新方法还包括以下初始化步骤:
新建动态链接库;并采用代码混淆和代码水印的方式对所述动态链接库进行加固;
在动态链接库内创建子安全动态链接库,所述子安全动态链接库以独立资源的形式链接到所述动态链接库,从而使得子安全动态链接库的逻辑代码的调用可以在所述动态链接库内完成。
优选地,所述子安全动态链接库共享所述动态链接库的RT运行时防护,并具有统一的跨平台适配。
所述动态链接库采用代码混淆和代码水印的方式进行整体加固。代码混淆的方式包括进行结构混乱、代码迁移、加密处理中的一种或几种。所述结构混乱的方式为对所述动态链接库中的通用的已知固定类库进行结构混乱打散;所述代码迁移的方式为对所述动态链接库中存储的程序中所有的判断逻辑代码以及关键业务逻辑代码增加修正代码,使原始代码迁移到其它代码段位置,获得迁移后的代码;在运行时通过调用修正脚本,修正迁移后的代码为原始代码;所述加密处理的方式为对所述动态链接库中存储的关键函数在编译时进行加密,运行时,先对其进行解密后运行;其中,所述加密处理可采用任意加密算法处理,优选白盒算法。所述代码水印的方式是采用动态链接库私钥对所述动态链接库中存储的数据进行整体签名,获得签名文件并存储在动态链接库内;运行时采用动态链接库公钥对签名文件进行验证,并上传所述签名文件供远程服务器验证。采用此种双重保障方式,可确保代码水印存在且正确。
所述子安全动态链接库用于存储动态白盒算法库或安全文件系统等机密信息。动态链接库的动态资源整合能力,可保障子安全动态链接库在运行时对需要保护的信息进行动态更新和内部存储,而不将机密信息落盘到操作系统或其它端设备的文件系统上,维护子安全动态链接库的整体安全性。
本实施例以对动态白盒库文件的动态更新为例继续说明本发明的技术方案。参见图2所示,当密钥发生变化时,白盒库和白盒密钥随之变化,加解密时需要使用新的白盒库和白盒密钥。新的白盒库需要替换或附加在原有子安全动态链接库内,不存储在其它设备上。白盒库动态更新的步骤如下所示:
当动态白盒需要更新密钥时,在内存里随机生成密钥,并通过密钥转换生成白盒库文件。此时将子安全动态链接库自身的全部数据转到内存中暂存为一次性的临时文件。在内存中将临时文件与更新的白盒库文件进行组合,形成新的更新文件,最后将新的更新文件存入子安全动态链接库,并删除子安全动态链接库中的原有数据,完成子安全动态链接库内数据的更新。此种数据更新方式保留了原有子安全动态链接库和白盒系统的全部能力。新的更新文件可以根据实际需要进行设置,可以是以更新的白盒库文件替换原有白盒库文件后形成的新的更新文件,也可以是同时保留更新的白盒库文件和原有白盒库文件的新的更新文件。
更新白盒算法库的初始化步骤如下:
1)、新建动态链接库,并采用代码混淆+代码水印技术对动态链接库进行整体加固,加固步骤如下:
i.进行结构混乱,即对所述动态链接库中的通用的已知固定库进行结构混乱打散,例如c/c++语言标准库可进行rot13编码处理,达到混淆的目的;
ii.进行代码迁移,即对所述动态链接库中存储的程序中所有的判断逻辑代码以及关键业务逻辑代码增加修正代码,使原始代码迁移到其它代码段位置,获得迁移后的代码;在运行时通过调用修正脚本,修正迁移后的代码为原始代码;
iii.应用白盒算法进行加密处理,对所述动态链接库中存储的关键函数在编译时使用白盒算法进行加密,运行时,调用白盒库文件对其进行解密后运行,以此避免静态分析泄密;
iv.对代码进行水印处理,采用动态链接库私钥对所述动态链接库中存储的数据进行整体签名,获得签名文件并存储在动态链接库内;运行时采用动态链接库公钥对签名文件进行验证,并上传所述签名文件供远程服务器验证;这种双重保障方式,确保代码水印存在且正确。
2)、在动态链接库内创建子安全动态链接库,将预设的动态白盒算法逻辑和白盒库链接到子安全动态链接库内,使得白盒算法逻辑和白盒库可以在动态链接库内部完成调用。
白盒算法子安全动态链接库共享所述动态链接库的RT运行时防护,并具有统一的跨平台适配。
本发明还提供了一种基于动态链接库的数据动态更新装置,包括内设于动态链接库以独立资源形式子安全动态链接库和临时文件存储模块,所述子安全动态链接库与所述临时文件存储模块进行交互实现子安全动态链接库内数据的更新。本实施例中,所述动态链接库包括多种以独立资源形式存在的所述子安全动态链接库;所述子安全动态链接库共享一套RT运行防护代码,并具有统一的跨平台适配。
本发明的动态链接库兼容各种以独立资源的形式存在的子安全动态链接库,适用于各种操作平台系统(windows、inux、android、mac、ios等),从而将动态链接库重构为一种关联性强的安全体;此外,动态链接库的动态资源整合能力,可以保障动态链接库在运行时对机密信息进行动态更新和内部存储,而不会将机密信息落盘到操作系统或其它端设备的文件系统上,维护动态链接库的整体安全性。
整个动态链接库共享一套RT运行时防护代码,并具有统一的跨平台适配,在不同的平台编译为不同的形态文件,windows平台编译为dll文件,linux/android平台编译为so文件,mac/ios平台编译为dylib文件。此外,动态链接库的整体加固采用代码混淆+代码水印的技术进行保护,保证动态链接库内的数据更安全。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。

Claims (13)

1.一种基于动态链接库的数据动态更新方法,在所述动态链接库内设有子安全动态链接库,其特征在于,包括以下步骤:
在内存中更新数据;
将子安全动态链接库中的全部数据转到内存中暂存为临时文件;
在内存中将临时文件与更新数据进行组合,形成新的更新文件;
将新的更新文件存入子安全动态链接库,并删除子安全动态链接库中的原有数据,完成子安全动态链接库内数据的更新。
2.根据权利要求1所述的基于动态链接库的数据动态更新方法,其特征在于,所述更新方法包括初始化步骤,所述初始化步骤包括新建动态链接库。
3.根据权利要求2所述的基于动态链接库的数据动态更新方法,其特征在于,所述初始化步骤还包括采用代码混淆和代码水印的方式对所述动态链接库进行加固。
4.根据权利要求3所述的基于动态链接库的数据动态更新方法,其特征在于,所述初始化步骤还包括,在所述动态链接库内创建子安全动态链接库,所述子安全动态链接库以独立资源的形式链接到所述动态链接库。
5.根据权利要求4所述的基于动态链接库的数据动态更新方法,其特征在于,所述子安全动态链接库共享所述动态链接库的RT运行时防护,并具有统一的跨平台适配。
6.根据权利要求3所述的基于动态链接库的数据动态更新方法,其特征在于,所述代码混淆的方式包括进行结构混乱、代码迁移、加密处理中的一种或几种。
7.根据权利要求6所述的基于动态链接库的数据动态更新方法,其特征在于,所述结构混乱的方式为对所述动态链接库中的通用的已知固定类库进行结构混乱打散。
8.根据权利要求6所述的基于动态链接库的数据动态更新方法,其特征在于,所述代码迁移的方式为对所述动态链接库中存储的程序中所有的判断逻辑代码以及关键业务逻辑代码增加修正代码,使原始代码迁移到其它代码段位置,获得迁移后的代码;在运行时通过调用修正脚本,修正迁移后的代码为原始代码。
9.根据权利要求6所述的基于动态链接库的数据动态更新方法,其特征在于,所述加密处理的方式是对所述动态链接库中存储的关键函数在编译时进行加密,运行时,先对其进行解密后运行。
10.根据权利要求3所述的基于动态链接库的数据动态更新方法,其特征在于,所述代码水印的方式是采用动态链接库私钥对所述动态链接库中存储的数据进行整体签名,获得签名文件并存储在动态链接库内;运行时采用动态链接库公钥对签名文件进行验证,并上传所述签名文件供远程服务器验证。
11.根据权利要求1所述的基于动态链接库的数据动态更新方法,其特征在于,所述更新方法用于更新白盒算法库和/或安全文件数据。
12.一种基于动态链接库的数据动态更新装置,其特征在于,包括子安全动态链接库和临时文件存储模块,所述子安全动态链接库以独立资源形式内设于动态链接库,所述子安全动态链接库与所述临时文件存储模块进行交互实现所述子安全动态链接库内数据的更新。
13.根据权利要求12所述的基于动态链接库的数据动态更新装置,其特征在于,所述动态链接库包括多种以独立资源形式存在的所述子安全动态链接库;
所述子安全动态链接库共享一套RT运行防护代码,并具有统一的跨平台适配。
CN201811604833.3A 2018-12-26 2018-12-26 一种基于动态链接库的数据动态更新方法及其装置 Pending CN109766141A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811604833.3A CN109766141A (zh) 2018-12-26 2018-12-26 一种基于动态链接库的数据动态更新方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811604833.3A CN109766141A (zh) 2018-12-26 2018-12-26 一种基于动态链接库的数据动态更新方法及其装置

Publications (1)

Publication Number Publication Date
CN109766141A true CN109766141A (zh) 2019-05-17

Family

ID=66451001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811604833.3A Pending CN109766141A (zh) 2018-12-26 2018-12-26 一种基于动态链接库的数据动态更新方法及其装置

Country Status (1)

Country Link
CN (1) CN109766141A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110298175A (zh) * 2019-07-05 2019-10-01 武汉斗鱼网络科技有限公司 一种dll文件的处理方法及相关装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080301719A1 (en) * 2003-10-28 2008-12-04 Symbian Software Limited Mapping Of Dynamic Link Libraries In Computing Devices
US20110185350A1 (en) * 2010-01-26 2011-07-28 Mitsuru Kawahata Shared-program updating system
CN103077332A (zh) * 2012-12-28 2013-05-01 飞天诚信科技股份有限公司 一种运行含有自校验的加壳程序的方法和装置
CN104765624A (zh) * 2014-01-06 2015-07-08 腾讯科技(深圳)有限公司 虚拟机应用程序的更新处理方法和装置
CN105608391A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 多elf文件保护方法及系统
CN105678120A (zh) * 2014-11-20 2016-06-15 中国移动通信集团公司 一种应用程序安全防护方法和服务器
CN105867973A (zh) * 2016-03-30 2016-08-17 乐视控股(北京)有限公司 应用程序中so文件的加载方法及系统
CN105955762A (zh) * 2016-04-19 2016-09-21 北京金山安全软件有限公司 一种注入动态链接库文件的方法、装置及电子设备
CN106372465A (zh) * 2016-08-30 2017-02-01 北京深思数盾科技股份有限公司 一种动态链接库安全管理方法、系统和电子设备
CN106650327A (zh) * 2016-11-24 2017-05-10 湖南鼎源蓝剑信息科技有限公司 基于动态恢复so文件的Android应用加固方法
CN107566112A (zh) * 2016-06-30 2018-01-09 中国电信股份有限公司 动态加解密方法及服务器
CN107992723A (zh) * 2017-11-29 2018-05-04 南京莱斯信息技术股份有限公司 一种基于动态链接库的Java源码保护方法
CN108427571A (zh) * 2018-02-07 2018-08-21 深圳市雁联计算系统有限公司 一种动态链接库更新方法及服务器
CN108762825A (zh) * 2018-04-20 2018-11-06 烽火通信科技股份有限公司 动态库重载的实现方法及系统

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080301719A1 (en) * 2003-10-28 2008-12-04 Symbian Software Limited Mapping Of Dynamic Link Libraries In Computing Devices
US20110185350A1 (en) * 2010-01-26 2011-07-28 Mitsuru Kawahata Shared-program updating system
CN103077332A (zh) * 2012-12-28 2013-05-01 飞天诚信科技股份有限公司 一种运行含有自校验的加壳程序的方法和装置
CN104765624A (zh) * 2014-01-06 2015-07-08 腾讯科技(深圳)有限公司 虚拟机应用程序的更新处理方法和装置
CN105678120A (zh) * 2014-11-20 2016-06-15 中国移动通信集团公司 一种应用程序安全防护方法和服务器
CN105608391A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 多elf文件保护方法及系统
CN105867973A (zh) * 2016-03-30 2016-08-17 乐视控股(北京)有限公司 应用程序中so文件的加载方法及系统
CN105955762A (zh) * 2016-04-19 2016-09-21 北京金山安全软件有限公司 一种注入动态链接库文件的方法、装置及电子设备
CN107566112A (zh) * 2016-06-30 2018-01-09 中国电信股份有限公司 动态加解密方法及服务器
CN106372465A (zh) * 2016-08-30 2017-02-01 北京深思数盾科技股份有限公司 一种动态链接库安全管理方法、系统和电子设备
CN106650327A (zh) * 2016-11-24 2017-05-10 湖南鼎源蓝剑信息科技有限公司 基于动态恢复so文件的Android应用加固方法
CN107992723A (zh) * 2017-11-29 2018-05-04 南京莱斯信息技术股份有限公司 一种基于动态链接库的Java源码保护方法
CN108427571A (zh) * 2018-02-07 2018-08-21 深圳市雁联计算系统有限公司 一种动态链接库更新方法及服务器
CN108762825A (zh) * 2018-04-20 2018-11-06 烽火通信科技股份有限公司 动态库重载的实现方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110298175A (zh) * 2019-07-05 2019-10-01 武汉斗鱼网络科技有限公司 一种dll文件的处理方法及相关装置

Similar Documents

Publication Publication Date Title
ES2822997T3 (es) Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada
CN103617401B (zh) 一种数据文件保护方法及装置
ES2916701T3 (es) Autenticación de punteros de código para el control de flujo de hardware
US7975308B1 (en) Method and apparatus to secure user confidential data from untrusted browser extensions
US20160203087A1 (en) Method for providing security for common intermediate language-based program
CN102238001B (zh) 一种提高数据安全性的方法和装置
KR20100017844A (ko) 데이터를 보호할 때 적용되는 프로그램 가능한 프로세싱 단계들을 정의하기위한 시스템 및 방법
CN104268444A (zh) 一种云OS Java源代码保护方法
US20150113640A1 (en) Method and apparatus for program flow in software operation
CN104463002A (zh) 一种加固apk的方法和装置以及apk加固客户端和服务器
CN109313677A (zh) 用于动态可执行验证的方法和装置
CN113010856A (zh) 一种动态非对称加解密的JavaScript代码混淆方法与系统
CN104318135A (zh) 一种基于可信执行环境的Java代码安全动态载入方法
Hein et al. Secure Block Device--Secure, Flexible, and Efficient Data Storage for ARM TrustZone Systems
US10970421B2 (en) Virus immune computer system and method
US11409653B2 (en) Method for AI model transferring with address randomization
CN111859415A (zh) 神经网络模型加密系统和方法
CN109657497B (zh) 安全文件系统及其方法
WO2019062015A1 (zh) 源代码保护方法、应用服务器及计算机可读存储介质
US8918653B2 (en) Protection of interpreted source code in virtual appliances
Rodriguez et al. Addressing data-centric security requirements for IoT-based systems
US10798075B2 (en) Interface layer obfuscation and usage thereof
CN109766141A (zh) 一种基于动态链接库的数据动态更新方法及其装置
CN106570395A (zh) 操作系统命令的安全保护方法
US11657332B2 (en) Method for AI model transferring with layer randomization

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20191115

Address after: 102300 no.6-1-21, office building, building 20, Pudong, Mentougou District, Beijing

Applicant after: Beijing Siyuan ideal Holding Group Co.,Ltd.

Address before: 100102 No. 301, No. 316 building, Nanhu garden, Chaoyang District, Beijing 18

Applicant before: BEIJING SYSWIN INTERCONNECTED TECHNOLOGY CO.,LTD.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20190517

RJ01 Rejection of invention patent application after publication