CN102609284A - 可执行文件安全加载的方法 - Google Patents
可执行文件安全加载的方法 Download PDFInfo
- Publication number
- CN102609284A CN102609284A CN2012100222224A CN201210022222A CN102609284A CN 102609284 A CN102609284 A CN 102609284A CN 2012100222224 A CN2012100222224 A CN 2012100222224A CN 201210022222 A CN201210022222 A CN 201210022222A CN 102609284 A CN102609284 A CN 102609284A
- Authority
- CN
- China
- Prior art keywords
- executable file
- data
- safety
- loader
- module
- 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
Links
Images
Abstract
本发明公开了一种应用于windows系统的可执行文件安全加载的方法。该方法主要思路是使用一个被安全认证后的可执行文件加载器把需要加载的安全的可执行文件程序转换成数据模块,由加载器完成程序的合法性效验、环境的安全性效验、可执行文件程序的初始化等。完成后把代码执行流交给原来的可执行文件入口,完成一个可执行文件的安全加载过程。由于被认证后的可执行文件加载器是不会变化的,不会被第三方安全软件误杀。使得可执行文件加载器的加载过程保证了被加载的可执行文件不会被恶意软件劫持修改,不会被第三方安全软件误杀,其原因是被加载的可执行文件已经被转换成数据文件,而数据文件是不会被第三方安全软件误杀了。
Description
技术领域:
本发明涉及计算机程序系统,特别涉及一种应用于windows系统的可执行文件安全加载的方法。
背景技术:
由于Windows系统的可执行文件加载方式问题,造成目前windows的可执行文件加载过程出现了如下问题:
1.由于可执行文件加载过程中,windows未对文件的安全性进行有效的效验,致使木马、外挂在加载过程中可以劫持可执行文件,修改可执行文件达到获取利益,破坏程序问题。并且目前状况非常严重。
2.由于上述的问题,现在出现了专业的安全保护软件:杀软、防火墙、保险箱等第三方的可执行文件加载保护程序。但是这些第三方的软件由于技术原因和环境原因经常造成对安全的正常的可执行文件误删、误杀问题。给很多经常需要更新的程序造成非常大的问题,被误删,误杀后只能跟第三方联系后进行处理;或者等待第三方的更新。这样让人有种被第三方安全软件挟持的感觉。哪怕是被安全认证的可执行文件(比如:有文件签名等)也经常被这些问题困惑。从安全方面考虑又不能放弃第三方的安全软件(有些是不能被你控制的问题,比如用户的机器环境)。
综上所述,对于可执行文件的安全性,防止被恶意软件劫持修改、可执行文件加载的兼容性以及防止第三方安全软件误杀这些技术问题。目前市面上还没有能完整解决此类问题的解决方案。
发明内容:
鉴于上述技术问题,本发明提供了一种应用于windows系统的可执行文件安全加载的方法。该方法主要思路是使用一个被安全认证后的可执行文件加载器把需要加载的安全的可执行文件程序转换成数据模块,由加载器完成程序的合法性效验、环境的安全性效验、可执行文件程序的初始化等。完成后把代码执行流交给原来的可执行文件入口,完成一个可执行文件的安全加载过程。
由于被认证后的可执行文件加载器是不会变化的,不会被第三方安全软件误杀。使得可执行文件加载器的加载过程保证了被加载的可执行文件不会被恶意软件劫持修改,不会被第三方安全软件误杀,其原因是被加载的可执行文件已经被转换成数据文件,而数据文件是不会被第三方安全软件误杀了。故本发明方法解决了上述以往可执行文件加载过程中长久存在的技术困难。
本发明的具体技术方案如下:
可执行文件安全加载的方法,包括可执行文件的加密过程和可执行文件的加载过程;
可执行文件的加密过程包括:
A1:把需要加密的安全可执行文件程序按可执行文件的段属性分解开,分别加密可执行文件头、可执行文件的代码、数据、资源;
A2:把分别加密的段数据混合组装成数据块,该数据块还会被可执行文件加载器在加密过程形成的水印保护,且不能被修改替换,并以密文的数据保存下来。
需要指出的是上述被加密的可执行文件通过加密处理后已经不是个标准的可执行文件,这样也保证原可执行文件的安全性要求。
对于可执行文件的加载,其过程涉及三大部分:
①安全的可执行文件加载器,即已经被安全认证的主程序;
②可执行文件处理模块,即可执行文件数据解密、安全效验、组装算法模块;
③可执行文件的数据模块,即被加密的可执行文件形成的数据和水印数据组成的数据模块。
可执行文件的加载过程包括:
B1:可执行文件加载器负责加载可执行文件数据模块以及申请模块存放的空间这些初始化过程;
B2:可执行文件处理模块负责按照加密数据结构解密出原始的可执行文件,并在内存中组装成一个可以被正确执行的可执行文件数据片段;这个片段不再是标准的可执行文件,而是以数据块的方式存在。
B3:在解密过程中通过加密过程中的水印数据效验解密的数据,保证数据的完整性,并对可执行文件的导入表、导出表进行安全性检查;这样保证了可执行文件加载过程不被恶意软件劫持破坏。
B4:完成可执行文件的组装和初始化后把代码执行流交给可执行文件的入口。完成安全加载过程。
本发明所述的安全加载技术方案加载的可执行文件是个受安全加载技术方案加密过程中形成的水印保护,保证了数据的完整性、可靠性、安全性。加载过程中可执行文件的加载地址是随机生成的,组装后的可执行文件结构是个非标准的可执行文件,并且是以数据块的形式存储在内存中的。可执行文件的导入表、导出表会被安全加载。该方案中的可执行文件不会被恶意软件劫持破坏,不会被第三方的安全杀毒软件误杀,程序的更新只是修改了已加密的数据模块,不会受到原来那些问题的困扰了。
附图说明:
以下结合附图和具体实施方式来进一步说明本发明。
图1为本发明方法中可执行文件的加密过程流程图。
图2为本发明方法中可执行文件的加载过程流程图。
具体实施方式:
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
本发明所述的执行文件安全加载的方法,主要由可执行文件的加密过程和可执行文件的加载过程这两个步骤组成。
如图1所示,可执行文件的加密过程步骤如下:
S101:把需要加密的安全可执行文件程序按可执行文件的段属性分解开,分别加密可执行文件头,具体而言就是根据程序pe header解析程序结构并加密这个pe结构数据。
S102:接着对可执行文件的代码、数据、资源等进行数据加密,即采用AES加密算法,每16字节为一组进行循环加密,从而防止加载过程被恶意程序劫持。
S103:把分别加密的段混合组装成数据块,被加密的可执行文件通过加密处理后已经不是个标准的可执行文件。而是以密文的数据保存下来。
S104:这个数据块还会被可执行文件加载器的加密过程形成的水印保护,不能被修改替换。从而保证原可执行文件的安全性要求。
如图2所示,对于可执行文件的加载,首先按照功能分为三个部分:
M1:安全的可执行文件加载器(已经被安全认证的主程序);
M2:可执行文件处理模块(可执行文件数据解密、安全效验、组装算法模块);
M3:可执行文件的数据模块(被加密的可执行文件形成的数据和水印数据组成的数据模块)。
具体的加载过程步骤如下:
S201:可执行文件加载器负责加载可执行文件数据模块、申请模块存放的空间等初始化过程。
S202:可执行文件处理模块负责按照加密数据结构解密出原始的可执行文件,并在内存中组装成一个可以被正确执行的可执行文件数据片段。这个片段不再是标准的可执行文件,而是以数据块的方式存在。在解密过程中通过加密过程中的水印数据效验解密的数据,保证数据的完整性。在解密的过程中会对可执行文件的导入表、导出表进行安全性检查,保证可执行文件加载过程不被恶意软件劫持破坏。
S203:完成可执行文件的组装和初始化后把代码执行流交给可执行文件的入口。完成安全加载过程。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (5)
1.可执行文件安全加载的方法,其特征在于,包括可执行文件的加密过程和可执行文件的加载过程;
所述可执行文件的加密过程包括:
A1:把需要加密的安全可执行文件程序按可执行文件的段属性分解开,分别加密可执行文件头、可执行文件的代码、数据、资源;
A2:把分别加密的段数据混合组装成数据块,该数据块还会被可执行文件加载器在加密过程形成的水印保护,且不能被修改替换,并以密文的数据保存下来;
所述可执行文件的加载过程包括:
B1:可执行文件加载器负责加载可执行文件数据模块以及申请模块存放的空间这些初始化过程;
B2:可执行文件处理模块负责按照加密数据结构解密出原始的可执行文件,并在内存中组装成一个可以被正确执行的可执行文件数据片段;
B3:在解密过程中通过加密过程中的水印数据效验解密的数据,保证数据的完整性,并对可执行文件的导入表、导出表进行安全性检查;
B4:完成可执行文件的组装和初始化后把代码执行流交给可执行文件的入口,完成安全加载过程。
2.根据权利要求1的可执行文件安全加载的方法,其特征在于,可执行文件加密过程中采用AES加密算法,每16字节为一组进行循环加密。
3.根据权利要求1的可执行文件安全加载的方法,其特征在于,所述安全的可执行文件加载器为已经被安全认证的主程序。
4.根据权利要求1的可执行文件安全加载的方法,其特征在于,所述可执行文件处理模块包括可执行文件数据解密、安全效验、组装算法模块。
5.根据权利要求1的可执行文件安全加载的方法,其特征在于,所述可执行文件的数据模块包括被加密的可执行文件形成的数据和水印数据组成的数据模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100222224A CN102609284A (zh) | 2012-02-01 | 2012-02-01 | 可执行文件安全加载的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100222224A CN102609284A (zh) | 2012-02-01 | 2012-02-01 | 可执行文件安全加载的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102609284A true CN102609284A (zh) | 2012-07-25 |
Family
ID=46526682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100222224A Pending CN102609284A (zh) | 2012-02-01 | 2012-02-01 | 可执行文件安全加载的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102609284A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890758A (zh) * | 2012-10-11 | 2013-01-23 | 北京深思洛克软件技术股份有限公司 | 一种保护可执行文件的方法及系统 |
CN103077077A (zh) * | 2012-08-06 | 2013-05-01 | 新游游戏株式会社 | 提供用于多处理的程序的方法和执行该方法的服务器 |
CN103413071A (zh) * | 2013-07-09 | 2013-11-27 | 北京深思数盾科技有限公司 | 一种保护软件中数据的方法 |
CN104573416A (zh) * | 2013-10-25 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种生成应用安装包、执行应用的方法及装置 |
CN107479920A (zh) * | 2017-08-04 | 2017-12-15 | 浙江大学 | 一种单elf文件实现多操作系统加载的方法 |
CN107688730A (zh) * | 2017-07-28 | 2018-02-13 | 宁波保税区攀峒信息科技有限公司 | 一种可执行文件安全运行方法 |
CN109299945A (zh) * | 2017-07-24 | 2019-02-01 | 上海荆虹电子科技有限公司 | 一种基于生物识别算法的身份验证的方法及装置 |
CN112270010A (zh) * | 2020-11-17 | 2021-01-26 | 上海好连网络科技有限公司 | 可执行文件远程安全加载的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1636175A (zh) * | 2000-07-14 | 2005-07-06 | 阿塔博克公司 | 控制与管理数字资产 |
CN101894030A (zh) * | 2010-06-29 | 2010-11-24 | 福建新大陆通信科技股份有限公司 | 一种基于电视机顶盒usb接口的数据防盗用升级方法 |
-
2012
- 2012-02-01 CN CN2012100222224A patent/CN102609284A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1636175A (zh) * | 2000-07-14 | 2005-07-06 | 阿塔博克公司 | 控制与管理数字资产 |
CN101894030A (zh) * | 2010-06-29 | 2010-11-24 | 福建新大陆通信科技股份有限公司 | 一种基于电视机顶盒usb接口的数据防盗用升级方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077077A (zh) * | 2012-08-06 | 2013-05-01 | 新游游戏株式会社 | 提供用于多处理的程序的方法和执行该方法的服务器 |
CN102890758B (zh) * | 2012-10-11 | 2014-12-17 | 北京深思洛克软件技术股份有限公司 | 一种保护可执行文件的方法及系统 |
CN102890758A (zh) * | 2012-10-11 | 2013-01-23 | 北京深思洛克软件技术股份有限公司 | 一种保护可执行文件的方法及系统 |
CN103413071B (zh) * | 2013-07-09 | 2016-03-23 | 北京深思数盾科技有限公司 | 一种保护软件中数据的方法 |
CN103413071A (zh) * | 2013-07-09 | 2013-11-27 | 北京深思数盾科技有限公司 | 一种保护软件中数据的方法 |
CN104573416A (zh) * | 2013-10-25 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种生成应用安装包、执行应用的方法及装置 |
WO2015058620A1 (en) * | 2013-10-25 | 2015-04-30 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for generating installation package corresponding to an application and executing application |
CN104573416B (zh) * | 2013-10-25 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种生成应用安装包、执行应用的方法及装置 |
CN109299945A (zh) * | 2017-07-24 | 2019-02-01 | 上海荆虹电子科技有限公司 | 一种基于生物识别算法的身份验证的方法及装置 |
CN109299945B (zh) * | 2017-07-24 | 2020-10-09 | 深圳荆虹科技有限公司 | 一种基于生物识别算法的身份验证的方法及装置 |
CN107688730A (zh) * | 2017-07-28 | 2018-02-13 | 宁波保税区攀峒信息科技有限公司 | 一种可执行文件安全运行方法 |
CN107479920A (zh) * | 2017-08-04 | 2017-12-15 | 浙江大学 | 一种单elf文件实现多操作系统加载的方法 |
CN107479920B (zh) * | 2017-08-04 | 2020-05-29 | 浙江大学 | 一种单elf文件实现多操作系统加载的方法 |
CN112270010A (zh) * | 2020-11-17 | 2021-01-26 | 上海好连网络科技有限公司 | 可执行文件远程安全加载的方法 |
CN112270010B (zh) * | 2020-11-17 | 2024-04-12 | 上海好连网络科技有限公司 | 可执行文件远程安全加载的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609284A (zh) | 可执行文件安全加载的方法 | |
CN104318135B (zh) | 一种基于可信执行环境的Java代码安全动态载入方法 | |
US8010804B2 (en) | Method to protect secrets against encrypted section attack | |
JP2014134799A (ja) | プライバシーを尊重したデータ処理の方法および装置 | |
CN105320535A (zh) | 一种安装包的校验方法、客户端、服务器及系统 | |
CN104866784B (zh) | 一种基于bios加密的安全硬盘、数据加密及解密方法 | |
CN104573549A (zh) | 一种可信的数据库机密性保护方法及系统 | |
JP2010517449A (ja) | 信頼できない受信者における秘密の保護 | |
CN111656345A (zh) | 启用容器文件中加密的软件模块 | |
CN111124453B (zh) | 一种终端设备固件程序升级方法 | |
CN104200137A (zh) | 一种保护java程序自身安全的方法 | |
US20140108818A1 (en) | Method of encrypting and decrypting session state information | |
JP5575950B2 (ja) | 無線端末装置およびシステム保護方法 | |
CN103605927A (zh) | 一种基于嵌入式Linux系统实现加密和解密方法 | |
CN104504310A (zh) | 基于壳技术的软件保护方法和装置 | |
CN109784072B (zh) | 一种安全文件管理方法和系统 | |
CN104866738A (zh) | 一种程序代码保护方法及装置 | |
CN106650342B (zh) | 一种Jar包加固方法及系统 | |
Song et al. | A private walk in the clouds: Using end-to-end encryption between cloud applications in a personal domain | |
CN112270010B (zh) | 可执行文件远程安全加载的方法 | |
US20210026935A1 (en) | High performance compute ip encryption using unique set of application attributes | |
CN106250727A (zh) | 一种软件保护方法及装置 | |
JP2022094333A (ja) | 拡張鍵ラッピングのコンピュータ実装方法、プログラム命令を実装したコンピュータ可読記憶媒体を含むコンピュータプログラム製品およびシステム(鍵ブロック拡張ラッピング) | |
CN104866740A (zh) | 一种防静态分析文件的方法及装置 | |
CN111385083B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120725 |
|
RJ01 | Rejection of invention patent application after publication |