CN1945589A - 一种Windows平台下保护动态链接库接口的方法 - Google Patents
一种Windows平台下保护动态链接库接口的方法 Download PDFInfo
- Publication number
- CN1945589A CN1945589A CNA2006100220469A CN200610022046A CN1945589A CN 1945589 A CN1945589 A CN 1945589A CN A2006100220469 A CNA2006100220469 A CN A2006100220469A CN 200610022046 A CN200610022046 A CN 200610022046A CN 1945589 A CN1945589 A CN 1945589A
- Authority
- CN
- China
- Prior art keywords
- dll
- dynamic
- windows platform
- protected
- bank interface
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种Windows平台下保护动态链接库接口的方法,其特征在于:A、通过Windows API LoadLibrary,首先将要使用的目标DLL的导出函数改名;B、对已改名的目标DLL的导出表进行可逆的加密,再将DLL向用户发放;C、在使用DLL时,把磁盘上的DLL进行内存映射,再在内存中对DLL的导出表进行解密,解密是B步骤中加密的逆过程,最后动态装载内存中的DLL;本方法可以保证在应用程序使用动态链接实现模块化的安全问题,并针对调用Windows API LoadLibrary来动态装载DLL进行保护;同时不会破坏DLL的导出表,DLL仍然可以正常使用,也不需要密匙来控制,在使用上非常方便。
Description
技术领域
本发明涉及动态链接库的接口安全问题,特别是一种Windows平台下保护动态链接库接口的方法。
背景技术
动态链接库是指一种可以被应用程序共享的模块,Windows平台下的动态链接库通常是后缀名为.dll,.sys,.drv的文件。应用程序使用动态链接库实现模块共享的前提是动态链接库会导出一些接口,如函数,变量,或者类。
目前普遍使用动态链接库来提高软件的模块化,出于安全的考虑,软件销售商对于发放给用户的动态链接库,是不希望其导出的函数被其它程序调用,因此就有必要对动态链接库的接口进行保护。传统的保护手段是使用加壳软件对DLL进行加壳。根据加壳软件的不同,有不同的不便之处:如加壳软件AsProtect,采用彻底破坏DLL的导出表的方法,导致不能正常使用DLL;再如另一款加壳软件AcProtect,必须维护一个解密密匙,这种方法会给用户带来使用上的不便。因为使用DLL的一般方法是调用Windows API LoadLibrary来动态装载DLL,Windows API是指Windows平台的应用程序编程接口,而目前没有针对这点有提供简单保护手段的方法。
发明内容
本发明的目的是提供一种在Windows平台下保护动态链接库接口的方法,可以保证在应用程序使用动态链接实现模块化的安全问题,针对调用Windows APILoadLibrary来动态装载DLL进行保护。
本发明的技术方案如下:
一种Windows平台下保护动态链接库接口的方法,其特征在于:
A、通过Windows API LoadLibrary,首先将要使用的目标DLL的导出函数改名;
B、对已改名的目标DLL的导出表进行可逆的加密,再将DLL向用户发放;
C、在使用DLL时,把磁盘上的DLL进行内存映射,再在内存中对DLL的导出表进行解密,解密是B步骤中加密的逆过程,最后动态装载内存中的DLL。
所述DLL指动态链接库。
所述改名分为:对于具有源代码的DLL,直接修改源代码中的函数名;对于没有源代码的DLL,修改DLL的导出表中的函数名。
所述加密、解密均采用数学变换方法。
所述保护动态链接库的接口指保护动态链接库导出的函数。
所述装载指把DLL的代码映射到进程空间,从而可以使用DLL的过程。
所述导出表是PE文件的一个节,它包含该PE对外的接口信息。PE文件即Portable executable format,是Windows32平台下的可执行文件格式。
所述内存映射是Windows平台下共享内存的一种方法。
本发明的优点如下:
本方法可以保证在应用程序使用动态链接实现模块化的安全问题,并针对调用Windows API LoadLibrary来动态装载DLL进行保护;同时不会破坏DLL的导出表,DLL仍然可以正常使用,也不需要密匙来控制,因此就更不需要维护密匙,在使用上非常方便。
附图说明
图1为本发明的工作流程示意图
具体实施方式
实施例1
一种Windows平台下保护动态链接库接口的方法,是:
A、通过Windows API LoadLibrary,首先将要使用的目标DLL的导出函数改名;
B、对已改名的目标DLL的导出表进行可逆的加密,再将DLL向用户发放;
C、在使用DLL时,把磁盘上的DLL进行内存映射,再在内存中对DLL的导出表进行解密,解密是B步骤中加密的逆过程,最后动态装载内存中的DLL。
所述DLL指动态链接库。
所述加密、解密均采用数学变换方法。
所述保护动态链接库的接口指保护动态链接库导出的函数。
所述装载指把DLL的代码映射到进程空间,从而可以使用DLL的过程。
所述导出表是PE文件的一个节,它包含该PE对外的接口信息。PE文件即Portable executable format,是Windows32平台下的可执行文件格式。
所述内存映射是Windows平台下共享内存的一种方法。
实施例2
一种Windows平台下保护动态链接库接口的方法,通过Windows APILoadLibrary将要使用的目标DLL的导出函数改名,所述改名分为:对于具有源代码的DLL,直接修改源代码中的函数名;对于没有源代码的DLL,修改DLL的导出表中的函数名。
其中:
对于具有源代码的DLL,可以直接通过修改.def文件实现改名;
对于没有源代码的DLL,通过修改DLL的导出表来改名,例如使用第三方的库,就是没有源代码的DLL,这时就通过修改DLL的导出表来改名,可以对DLL的导出表进行破坏即可。
Claims (8)
1、一种Windows平台下保护动态链接库接口的方法,其特征在于:
A、通过Windows API LoadLibrary,首先将要使用的目标DLL的导出函数改名;
B、对已改名的目标DLL的导出表进行可逆的加密,再将DLL向用户发放;
C、在使用DLL时,把磁盘上的DLL进行内存映射,再在内存中对DLL的导出表进行解密,解密是B步骤中加密的逆过程,最后动态装载内存中的DLL。
2、根据权利要求1所述的一种Windows平台下保护动态链接库接口的方法,其特征在于:所述DLL指动态链接库。
3、根据权利要求1所述的一种Windows平台下保护动态链接库接口的方法,其特征在于:所述改名分为:对于具有源代码的DLL,直接修改源代码中的函数名;对于没有源代码的DLL,修改DLL的导出表中的函数名。
4、根据权利要求1所述的一种Windows平台下保护动态链接库接口的方法,其特征在于:所述加密、解密均采用数学变换方法。
5、根据权利要求1所述的一种Windows平台下保护动态链接库接口的方法,其特征在于:所述保护动态链接库的接口指保护动态链接库导出的函数。
6、根据权利要求1所述的一种Windows平台下保护动态链接库接口的方法,其特征在于:所述装载指把DLL的代码映射到进程空间,从而可以使用DLL的过程。
7、根据权利要求1所述的一种Windows平台下保护动态链接库接口的方法,其特征在于:所述导出表是PE文件的一个节,它包含该PE对外的接口信息。PE文件即Portable executable format,是Windows32平台下的可执行文件格式。
8、根据权利要求1所述的一种Windows平台下保护动态链接库接口的方法,其特征在于:所述内存映射是Windows平台下共享内存的一种方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100220469A CN100437615C (zh) | 2006-10-16 | 2006-10-16 | 一种Windows平台下保护动态链接库接口的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100220469A CN100437615C (zh) | 2006-10-16 | 2006-10-16 | 一种Windows平台下保护动态链接库接口的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1945589A true CN1945589A (zh) | 2007-04-11 |
CN100437615C CN100437615C (zh) | 2008-11-26 |
Family
ID=38044988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100220469A Active CN100437615C (zh) | 2006-10-16 | 2006-10-16 | 一种Windows平台下保护动态链接库接口的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100437615C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799815A (zh) * | 2012-06-29 | 2012-11-28 | 安科智慧城市技术(中国)有限公司 | 一种安全加载程序库的方法和装置 |
CN102938036A (zh) * | 2011-11-29 | 2013-02-20 | Ut斯达康通讯有限公司 | Windows动态链接库的分段双重加密及安全加载方法 |
CN103186730A (zh) * | 2013-03-26 | 2013-07-03 | 北京深思数盾科技有限公司 | 保护.net软件安全的方法和设备 |
CN103198244A (zh) * | 2013-03-26 | 2013-07-10 | 北京深思数盾科技有限公司 | 保护动态链接库的方法 |
CN103246848A (zh) * | 2013-03-26 | 2013-08-14 | 北京深思数盾科技有限公司 | 保护软件安全的方法和设备 |
CN104679561A (zh) * | 2015-02-15 | 2015-06-03 | 福建天晴数码有限公司 | 一种动态链接库文件加载的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001001255A1 (en) * | 1999-06-30 | 2001-01-04 | Microsoft Corporation | Methods and systems for reporting and resolving support incidents |
FR2828303B1 (fr) * | 2001-07-31 | 2010-09-03 | Validy | Procede pour proteger un logiciel a l'aide d'un principe dit de "renommage" contre son utilisation non autorisee |
-
2006
- 2006-10-16 CN CNB2006100220469A patent/CN100437615C/zh active Active
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938036A (zh) * | 2011-11-29 | 2013-02-20 | Ut斯达康通讯有限公司 | Windows动态链接库的分段双重加密及安全加载方法 |
CN102938036B (zh) * | 2011-11-29 | 2016-01-13 | Ut斯达康(中国)有限公司 | Windows动态链接库的分段双重加密及安全加载方法 |
CN102799815A (zh) * | 2012-06-29 | 2012-11-28 | 安科智慧城市技术(中国)有限公司 | 一种安全加载程序库的方法和装置 |
CN102799815B (zh) * | 2012-06-29 | 2015-07-29 | 安科智慧城市技术(中国)有限公司 | 一种安全加载程序库的方法和装置 |
CN103186730A (zh) * | 2013-03-26 | 2013-07-03 | 北京深思数盾科技有限公司 | 保护.net软件安全的方法和设备 |
CN103198244A (zh) * | 2013-03-26 | 2013-07-10 | 北京深思数盾科技有限公司 | 保护动态链接库的方法 |
CN103246848A (zh) * | 2013-03-26 | 2013-08-14 | 北京深思数盾科技有限公司 | 保护软件安全的方法和设备 |
CN103186730B (zh) * | 2013-03-26 | 2016-05-18 | 北京深思数盾科技股份有限公司 | 保护.net软件安全的方法和设备 |
CN103246848B (zh) * | 2013-03-26 | 2016-05-18 | 北京深思数盾科技股份有限公司 | 保护软件安全的方法和设备 |
CN103198244B (zh) * | 2013-03-26 | 2016-06-29 | 北京深思数盾科技股份有限公司 | 保护动态链接库的方法 |
CN104679561A (zh) * | 2015-02-15 | 2015-06-03 | 福建天晴数码有限公司 | 一种动态链接库文件加载的方法及系统 |
CN104679561B (zh) * | 2015-02-15 | 2018-07-06 | 福建天晴数码有限公司 | 一种动态链接库文件加载的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100437615C (zh) | 2008-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1945589A (zh) | 一种Windows平台下保护动态链接库接口的方法 | |
US7590863B2 (en) | Methods of providing java tamperproofing | |
US20170220809A1 (en) | Secure object having protected region, integrity tree, and unprotected region | |
JP4702957B2 (ja) | 耐タンパ・トラステッド仮想マシン | |
CN1288523C (zh) | 将数字签名嵌入到数字有效负荷中 | |
US9141787B2 (en) | Interlocked binary protection using whitebox cryptography | |
JP4373442B2 (ja) | コンピュータ・プログラムをシールする方法、コンピュータ・プログラムを認証する方法、及び、コンピュータ可読媒体 | |
AU2002359210A1 (en) | Robust and flexible digital rights management involving a tamper-resistant identity module | |
US20020112158A1 (en) | Executable file protection | |
WO2006101549A3 (en) | Secure system for allowing the execution of authorized computer program code | |
KR101014179B1 (ko) | 플래시 대용량 저장 메모리를 가진 보안 장치를 위한 보안 및 적응형 시스템 구조 | |
WO2007142615A3 (en) | System and method for intelligence based security | |
WO2001086372A3 (en) | Information security method and system | |
EP1463322A3 (en) | Renewable conditional access system | |
MY141648A (en) | Rendering digital content in a content protection system according to a plurality of chained digital licenses | |
CN102346834A (zh) | Java应用软件加密保护的方法 | |
CN1928881A (zh) | 一种计算机数据安全防护方法 | |
US20060288238A1 (en) | Enabling bits sealed to an enforceably-isolated environment | |
AU2006205315A1 (en) | Method and portable storage device for allocating secure area in insecure area | |
WO2006035227A3 (en) | Source code protection | |
WO2004072891A3 (en) | System and method for regulating execution of computer software | |
WO2009045059A2 (en) | Security method of keyboard input by directly controling the keyboard controler | |
WO2007115332A3 (en) | File decryption interface | |
CN105303074A (zh) | 一种保护Web应用程序安全的方法 | |
CN1808458A (zh) | 软件产品生产安全控制装置及其控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee |
Owner name: ZHUHAI KING SOFT CO.,LTD. Free format text: FORMER NAME: ZHUHAI JINSHAN SOFTWARE CO. LTD. |
|
CP01 | Change in the name or title of a patent holder |
Address after: Jingshan Hill Road, Lane 510195 Lianshan Jida Guangdong province Zhuhai City No. 8 Patentee after: Zhuhai Kingsoft Software Co., Ltd. Address before: Jingshan Hill Road, Lane 510195 Lianshan Jida Guangdong province Zhuhai City No. 8 Patentee before: Zhuhai Jinshan Software Co., Ltd. |