用于保护动态库的方法和装置制造方法及图纸

技术编号:14978333 阅读:81 留言:0更新日期:2017-04-03 10:58
本发明专利技术公开了一种相对于静态分析工具来保护动态库的方法。用于保护动态库的方法包括:将使用动态库的应用程序加载至主存储器中,其中至少一个动态库是安保动态库;将安保动态库加载至所述主存储器中;动态库建立步骤:通过对被存储在安保动态库中的加密动态库进行解密来生成待保护动态库;并且通过应用程序来调用待保护动态库中包含的特定模块。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种保护动态库不被分析工具分析和攻击的方法。
技术介绍
需要指出的是,下面说明的内容仅提供与本专利技术的各实施例有关的背景信息,且不构成现有技术。在程序中,库表示预先编制的可反复使用的编译函数。在程序中使用库的原因在于,函数当被反复使用时可被方便地使用,当函数以库的形式被分发时可以隐藏函数的具体实现,并且可以根据需要使用预编译函数,从而便于对其进行维护。库被分类为静态库和动态库,静态库在程序编译过程中被包含在应用程序的目标文件中,而动态库在计算机程序执行过程时被包含在目标文件中。在编译过程中将静态库与应用程序的对象结合,以形成一个执行文件。相反地,动态库将各种程序共同所需的函数从应用程序中分离,并且仅当在运行期间被调用时将该函数加载至存储器。由于在编译过程中将静态库与应用程序的对象结合,因此执行文件的大小由于用程序包含大量的静态库而增加。当同时执行多个使用相同静态库的应用程序时,各自相同的代码会被加载至存储器中,且因此难以高效地利用存储器。然而,当使用动态库时,由于多个应用程序共享并使用一个动态库,因此能够高效地利用存储器。因其执行程序的核心功能而需要受到保护的程序代码被多个程序共用,并且在多数情况下将其编制成动态库。在这种情况下,对动态库的安全保护是必要的,并且这成为如何安全地执行动态库而不将应用程序的内部信息暴露于外部的问题。特别地,当使用诸如调试工具(debugger)或交互式反编译工具(IDA)等静态分析工具时,可以对动态库进行分析,使得可以改变其内容或者可以插入新函数。当使用诸如IDA等工具时,甚至可以将机器代码分析成源代码的水平。在现有技术中,为了保护动态库不被静态分析工具分析,使用如下方法:对动态库加密,将加密动态库添加至程序的资源中,在程序的资源中存储加密动态库,在必要的时间点对加密动态库解密,将解密动态库存储为文件的形式,在将该文件加载至存储器中后使用该文件,并删除该文件。将参照图2详细说明用于保护动态库的现有技术。然而,用于保护动态库的传统方法能够对动态库加密以避免动态库被静态分析工具分析,但是由于动态库被暴露于外部,因此这容易地显示出该动态库为重要文件。另外,当解密动态库被泄露时,由于解密过程被破坏,因此存在有如下问题:当加载该解密动态库时,仅通过修改相对较小代码就可以绕过(bypass)动态库。因此,现有技术不是能够通过保护动态库不被静态分析工具分析来解决该问题的根本方式。
技术实现思路
技术问题本专利技术的各实施例旨在提供一种保护用于执行程序的核心功能的动态库不被静态分析工具分析的方法。技术方案根据本实施例的一个方面,在保护动态库的方法中,该方法可包括:将使用所述动态库的应用程序加载至主存储器中;将安保动态库加载至所述主存储器中;通过对被存储在所述安保动态库中的加密动态库进行解密来生成待保护动态库;并且通过所述应用程序来调用所述待保护动态库中包含的特定模块。根据本实施例的另一方面,在保护动态库的装置中,该装置可包括:辅助存储装置,其用于存储应用程序和所述动态库;主存储器,其连接至所述辅助存储装置,其中,所述应用程序和所述动态库被加载至所述主存储器中;动态库生成单元,其用于通过对被加载至所述主存储器中的安保动态库中存储的加密动态库进行解密来生成待保护动态库;以及动态库调用单元,其用于通过所述应用程序来调用所述待保护动态库中包含的特定模块。技术效果如上所述,根据本专利技术的实施例,对动态库进行加密,由此安全地保护负责程序的核心功能的动态库不被静态分析工具分析。根据本专利技术的实施例,由于将负责程序的核心功能且需要保护的待保护动态库存储在负责安全性的安保动态库中,因此未将待保护动态库暴露于外部,从而防止程序被攻击,并且由于以加密状态将待保护动态库进行存储,因此无法使用静态分析工具来分析待保护动态库,由此保证了待保护动态库的安全性。安保动态库包含安全逻辑。安全逻辑包含如下函数:当将安保动态库加载至存储器时,自动地执行该函数以检测攻击者的攻击,或者该函数预先对环境进行配置,使得攻击者无法进行攻击。另外,根据本专利技术的实施例,为了增强待保护动态库和安保动态库之间的安全性,通过单独编制地静态库将待保护动态库和安保动态库彼此连接,从而不允许在没有安保动态库的情况下驱动待保护动态库,由此增强了用于提供核心功能的待保护动态库的安全性。安保动态库包含安全逻辑,为了待保护动态库或应用程序的安全性,将该安全逻辑加载存储器中,并接着自动地执行该安全逻辑以运行诸如反调试或反转储(anti-dump)等用于检测或避免攻击者的攻击的安全性函数。即使当待保护动态库被静态分析工具分析并因此被修改时,可以通过文件的完整性验证来确定文件是否被修改,并且当文件被修改时,可以终止应用程序的执行。附图说明图1为示出了用于执行包含动态库的程序的计算装置的示例图;图2为示出了用于保护动态库的方法的示例图;图3A为示出了根据本实施例的将应用程序和安保动态库加载至主存储器中的状态的示例图;图3B为示出了根据本实施例的将应用程序、安保动态库和待保护动态库加载至主存储器中的状态的示例图;图4为示出了根据本实施例的应用程序和动态库之间的连接关系的示例图;图5为示出了根据本实施例的将应用程序、安保动态库、待保护动态库、伪动态库和散列注册表加载至主存储器中的状态的示例图;图6为示出了根据本实施例的通过应用程序来调用待保护动态库内的特定模块的处理的流程图;图7为示出了根据本实施例的提供安全保护以保护动态库不被静态分析工具分析的处理的示例图;并且图8为示出了根据本实施例的用于保护动态库不被静态分析工具分析的装置的框图。具体实施方式在下文中,将参照附图对本专利技术的实施例进行详细地说明。用于实施根据本实施例的保护动态库不被静态分析工具分析的方法的系统包括诸如Windows、MACOS、Linux、Unix、IOS、Android、Unity、其它支持动态库的操作系统(OS)以及虚拟机等平台,但是其并不局限于任何一种系统。这里,动态库可以是指诸如动态链接库、共享库、运行时间库、ActiveX控件等各种名称。图1为示出了用于执行包含动态库的程序的计算装置100的示例图。被存储在辅助存储装置130中的应用程序被加载至主存储器120中,并且中央处理装置110执行本文档来自技高网
...

【技术保护点】
一种保护动态库的方法,所述方法包括:将使用所述动态库的应用程序加载至主存储器中;将安保动态库加载至所述主存储器中;通过对被存储在所述安保动态库中的加密动态库进行解密来生成待保护动态库;并且通过所述应用程序来调用所述待保护动态库中包含的特定模块。

【技术特征摘要】
【国外来华专利技术】2013.10.10 KR 10-2013-01208451.一种保护动态库的方法,所述方法包括:
将使用所述动态库的应用程序加载至主存储器中;
将安保动态库加载至所述主存储器中;
通过对被存储在所述安保动态库中的加密动态库进行解密来生成待
保护动态库;并且
通过所述应用程序来调用所述待保护动态库中包含的特定模块。
2.根据权利要求1所述的方法,其中,生成所述待保护动态库的步
骤进一步包括:
以文件的形式将所述待保护动态库存储至存储装置中;并且
将所述待保护动态库加载至所述主存储器中。
3.根据权利要求1所述的方法,其中,所述安保动态库动态地链接
至安全性增强静态库,并且所述待保护动态库静态地链接至所述安全性
增强静态库。
4.根据权利要求3所述的方法,其中,所述安全性增强静态库调用
所述安保动态库内的至少一个模块。
5.根据权利要求3所述的方法,其中,所述待保护动态库调用所述
安全性增强静态库内的至少一个模块。
6.根据权利要求3所述的方法,其中,所述安全性增强静态库的代
码被模糊处理。
7.根据权利要求1所述的方法,其中,所述安保动态库包括安全逻
辑,所述安全逻辑检测对所述应用程序或所述待保护动态库的攻击,或
者与反调试或反转储一起构造反攻击环境。
8.根据权利要求1所述的方法,其中,所述应用程序包括伪动态库,
所述伪动态库的文件名称与所述待保护动态库的文件名称相同。
9.根据权利要求1所述的方法,其进一步包括:
生成散列注册表,所述散列注册表包括所述应用程序的执行所需的
文件的每个文件的散列码,所述所需的文件必要地包括所述应用程序、
所述安保动态库和所述待保护动态库,并且取决于伪动态库是否被加载
至所述主存储器中而选择性地包括所述伪动态库。
10.根据权利要求9所述的方法,其进一步包括:
通过使用所述应用程序的执行所需的文件的散列码来验证所述应用
程序的执行所需的文件中的一者的完整性;并且<...

【专利技术属性】
技术研发人员:南在玟朴正根洪晙豪吴埈硕金正洙
申请(专利权)人:INKA安特沃客有限公司
类型:发明
国别省市:韩国;KR

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

1