CN1945589A - 一种Windows平台下保护动态链接库接口的方法 - Google Patents

一种Windows平台下保护动态链接库接口的方法 Download PDF

Info

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
Application number
CNA2006100220469A
Other languages
English (en)
Other versions
CN100437615C (zh
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.)
Zhuhai Kingsoft Software Co Ltd
Original Assignee
Zhuhai Kingsoft Software 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 Zhuhai Kingsoft Software Co Ltd filed Critical Zhuhai Kingsoft Software Co Ltd
Priority to CNB2006100220469A priority Critical patent/CN100437615C/zh
Publication of CN1945589A publication Critical patent/CN1945589A/zh
Application granted granted Critical
Publication of CN100437615C publication Critical patent/CN100437615C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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平台下保护动态链接库接口的方法。
背景技术
动态链接库是指一种可以被应用程序共享的模块,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平台下共享内存的一种方法。
CNB2006100220469A 2006-10-16 2006-10-16 一种Windows平台下保护动态链接库接口的方法 Active CN100437615C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (12)

* Cited by examiner, † Cited by third party
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.