CN113779558A - 应用程序安装包的构建方法、安装方法及装置 - Google Patents

应用程序安装包的构建方法、安装方法及装置 Download PDF

Info

Publication number
CN113779558A
CN113779558A CN202111063059.1A CN202111063059A CN113779558A CN 113779558 A CN113779558 A CN 113779558A CN 202111063059 A CN202111063059 A CN 202111063059A CN 113779558 A CN113779558 A CN 113779558A
Authority
CN
China
Prior art keywords
file
installation
installation package
folder
program
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
CN202111063059.1A
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.)
China Telecom Group System Integration Co Ltd
Original Assignee
China Telecom Group System Integration 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 China Telecom Group System Integration Co Ltd filed Critical China Telecom Group System Integration Co Ltd
Priority to CN202111063059.1A priority Critical patent/CN113779558A/zh
Publication of CN113779558A publication Critical patent/CN113779558A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了应用程序安装包的构建方法,包括:计算待打包文件夹中各文件的哈希值,将各文件的文件名和各文件的哈希值关联,并保存在第一文件中,对所述第一文件的内容加密,并写入第二文件;将所述第二文件添加入所述待打包文件夹。本发明还提供了应用程序安装包的安装方法、应用程序安装包的构建装置及应用程序安装包的安装装置。本发明能够识别软件安装包中任何文件被纂改的情况,降低软件被盗版、被植入广告或病毒或勒索软件的可能性。

Description

应用程序安装包的构建方法、安装方法及装置
技术领域
本发明涉及计算机相关领域。更具体地说,本发明涉及一种应用程序安装包的构建方法、安装方法及装置。
背景技术
软件安装包,是包含要部署到目标计算机上的文件的集合,其中包括软件安装的所有文件。运行这个安装包里的安装程序,可以将此软件的所有文件释放到硬盘上,完成修改注册表、修改系统设置、创建快捷方式等工作。
随着安装成为软件使用过程中最初且常见的步骤,为避免重复投入人力设计安装程序、加速软件的发布与上市、并减少使用者学习如何安装的麻烦,因此定型化的安装程序是必要的。但是目前定型化的安装程序不具备检查安装包里的文件被篡改的功能。软件安装包被恶意篡改了说明软件的功能被第三方修改了,软件中可能会被第三方植入一些广告或者病毒,在用户打开或者使用过程中会看到一些广告,情况严重的会泄露自己的身份信息,系统中毒等。虽然,安装包的有些文件可以通过校验数字签名来验证文件是否被篡改,但是大多数文件并不支持数字签名,而且数字签名需要购买专门的签名软件,验证签名也需要专业的校验技术,使用不便。因此,亟需设计一种能够一定程度克服上述缺陷的技术方案。
发明内容
本发明的一个目的是提供一种应用程序安装包的构建方法、安装方法及装置,能够识别软件安装包中任何文件被纂改的情况,降低软件被盗版、被植入广告或病毒或勒索软件的可能性。
为了实现本发明的这些目的和其它优点,根据本发明的一个方面,本发明提供了应用程序安装包的构建方法,包括:计算待打包文件夹中各文件的哈希值,将各文件的文件名和各文件的哈希值关联,并保存在第一文件中,对所述第一文件的内容加密,并写入第二文件;将所述第二文件添加入所述待打包文件夹。
进一步地,扫描所述待打包文件夹,生成所述待打包文件夹的文件列表,依次计算所述文件列表上各文件的哈希值。
进一步地,将所述第二文件添加入所述待打包文件夹后,将所述待打包文件夹打包为自解压程序,并指定解压后要运行的安装程序。
进一步地,还包括:对所述自解压程序进行数字签名。
根据本发明的另一个方面,本发明提供了应用程序安装包的安装方法,包括:检查安装文件夹中是否存在所述第二文件,若存在,则解密所述第二文件,得到所述第一文件的内容,所述第一文件包含有所述安装文件中各文件的文件名和各文件的哈希值;计算所述安装文件夹中各文件的哈希值,并分别与所述第一文件中记录的各文件的哈希值比较,若相同,则执行安装。
进一步地,若不存在所述第二文件,则不执行安装。
进一步地,若与所述第一文件中记录的各文件的哈希值不相同,则不执行安装。
进一步地,还包括:运行自解压程序,得到所述安装文件夹,所述自解压程序由所述安装文件夹打包得到。
根据本发明的又一个方面,本发明提供了应用程序安装包的构建装置,包括:处理器;存储器,其存储有可执行指令;其中,所述处理器被配置为执行所述可执行指令,以执行所述的应用程序安装包的构建方法。
根据本发明的又一个方面,本发明提供了应用程序安装包的安装装置,包括:处理器;存储器,其存储有可执行指令;其中,所述处理器被配置为执行所述可执行指令,以执行所述的应用程序安装包的安装方法。
本发明至少包括以下有益效果:
本发明在构建应用程序安装包时,在待打包文件夹加入第二文件,第二文件由第一文件的内容加密得到,第一文件包含有待打包文件夹中各文件的文件名和各文件的哈希值;在安装应用程序安装包时,需要首先检验第二文件是否存在,然后解密第二文件,检验安装文件夹内的文件是否与第一文件的记载一致,经过两次检验,能够识别软件安装包中任何文件被纂改的情况,降低软件被盗版、被植入广告或病毒或勒索软件的可能性。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明一个实施例中应用程序安装包的构建方法;
图2为本发明一个实施例中应用程序安装包的安装方法。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不排除一个或多个其它元件或其组合的存在或添加。
本申请的实施例提供了应用程序安装包的构建方法,包括:1)、计算待打包文件夹中各文件的哈希值,将各文件的文件名和各文件的哈希值关联,并保存在第一文件中,对所述第一文件的内容加密,并写入第二文件;2)、将所述第二文件添加入所述待打包文件夹。
在步骤1)中,待打包文件夹内包括安装程序及其它必要文件,对各文件分别使用哈希算法,可以选自任意一种哈希算法,可选为SHA1-256,将各文件的文件名和各文件的哈希值关联分别作为一条记录,存入第一文件,将第一文件的内容加密,写入第二文件,加密方法可选用任意合适的文件加密算法,如AES256。在步骤2)中,将第二文件加入到待打包文件夹中,以待形成应用程序安装包。在安装安装包时,首先检测是否存在第二文件,若不存在,终止安装,若存在,则对第二文件进行解密,得到第一文件的内容,根据其中的文件名,依次利用相同的哈希算法计算哈希值,并与第一文件中记录的哈希值分别比对,若不一致,终止安装,若一致,则继续执行安装。可以看出,本实施例预先在待打包文件夹中放置第二文件,使得安装包在安装前可经过两次检验,能够识别软件安装包中任何文件被纂改的情况,降低软件被盗版、被植入广告或病毒或勒索软件的可能性。
在另一些实施例中,扫描所述待打包文件夹,生成所述待打包文件夹的文件列表,依次计算所述文件列表上各文件的哈希值,根据文件列表获取各文件的文件名,并依次执行哈希算法,效率更高。
在另一些实施例中,将所述第二文件添加入所述待打包文件夹后,将所述待打包文件夹打包为自解压程序,并指定解压后要运行的安装程序,以方便用户安装。
在另一些实施例中,还包括:对所述自解压程序进行数字签名,使得使用自解压程序需要验证,提升自解压程序被篡改的难度。
在另一些实施例中,安装包构建程序扫描要打包的文件夹,得到所有文件列表;安装包构建程序对文件列表里所有文件内容计算哈希值(SHA1-256)将文件名和哈希值保存在一个文件A里。每个文件为一条记录;安装包构建程序将对文件A的内容进行加密,并将加密后的内容写入文件B;安装包构建程序将文件B放入要打包的文件夹里;安装包构建程序打包文件夹成自解压程序,并指定解压后要运行的安装程序;对生成的自解压程序进行数字签名;自此安装包构建程序全部工作完成。
本申请的实施例还提供了应用程序安装包的安装方法,包括:a)、检查安装文件夹中是否存在所述第二文件,若存在,则解密所述第二文件,得到所述第一文件的内容,所述第一文件包含有所述安装文件中各文件的文件名和各文件的哈希值;b)、计算所述安装文件夹中各文件的哈希值,并分别与所述第一文件中记录的各文件的哈希值比较,若相同,则执行安装。
本实施例提供了安装得到的应用程序安装包的方法,在安装之前进行检验,可在安装程序内嵌入检验流程和解密算法,如AES256解密算法,安装文件夹由应用程序安装包解压得到,首先检验第二文件是否存在于安装文件夹内,若存在,则安装程序对第二文件进行解密,得到第一文件的内容,根据其中的文件名,依次利用相同的哈希算法计算哈希值,并与第一文件中记录的哈希值分别比对,若一致,则继续执行安装。本实施例在进行安装包在安装前可经过两次检验,能够识别软件安装包中任何文件被纂改的情况,降低软件被盗版、被植入广告或病毒或勒索软件的可能性。
在另一些实施例中,若不存在所述第二文件,则不执行安装,可通过预定文件名比对是否存在第二文件,当不存在第二文件时,表明安装包已被篡改。
在另一些实施例中,若与所述第一文件中记录的各文件的哈希值不相同,则不执行安装,若哈希值不同,则表明安装包内的某个文件被篡改。
在另一些实施例中,还包括:运行自解压程序,得到所述安装文件夹,所述自解压程序由所述安装文件夹打包得到,自解压程序方便用户安装。
在另一些实施例中,包括:运行自解压程序完成自解压,并启动解压后的安装程序;安装程序检查文件B是否存在;如果不存在,则报错退出;安装程序解密文件B,得到要验证文件列表和对应的哈希值;对文件列表里的所有条目:根据文件名得到解压后的完整路径;根据完整路径计算文件内容的哈希值;将计算得到的哈希值和该条目里的哈希值进行比较,如果不相同,则报错退出;安装程序将要安装的文件安装到目标位置;自此安装程序全部工作完成。
本申请的实施例还提供了应用程序安装包的构建装置,包括:处理器;存储器,其存储有可执行指令;其中,所述处理器被配置为执行所述可执行指令,以执行所述的应用程序安装包的构建方法。处理器、存储器可采用现有技术,存储器内存储安装包构建程序,安装包构建程序执行应用程序安装包构建方法。
本申请的实施例还提供了应用程序安装包的安装装置,包括:处理器;存储器,其存储有可执行指令;其中,所述处理器被配置为执行所述可执行指令,以执行所述的应用程序安装包的安装方法。处理器、存储器可采用现有技术,存储器内存储安装包运行程序,安装包构建程序执行应用程序安装包安装方法。
以下以一个具体实施例具体说明,如图1和图2所示。
1、将要打包的文件(文件1.txt,文件2.exe)和安装程序Installer.exe放入文件夹D:\test
2、运行安装包构建程序,选择要打包的文件夹D:\test和解压后的安装程序Installer.exe后点“打包”;
3、安装包构建程序扫描要打包的文件夹,得到所有文件列表;(S1)
4、安装包构建程序计算D:\test里的文件1.txt,文件2.exe内容的哈希值(SHA1-256),得到哈希值1和哈希值2。并将(文件1.txt,哈希值1)和(文件2.exe,哈希值2)两条记录保存在文件A里;(S2)
5、安装包构建程序将对文件A(对应第一文件)的内容进行加密,并将加密后的内容写入文件B;(S3)
6、安装包构建程序将文件B(对应第二文件)放入要打包的文件夹D:\test里;(S4)
7、安装包构建程序打包D:\test成自解压程序成Setup.exe,并指定解压后要运行的安装程序Installer.exe;(S5)
8、对生成的自解压程序Setup.exe进行数字签名;(S6,可选步骤)
自此安装包构建程序全部工作完成。
9、运行Setup.exe完成自解压,并启动解压后的安装程序Installer.exe;(S7)
10、Installer.exe检查文件B是否存在;如果不存在,则报错退出;(S8)
11、Installer.exe解密文件B,得到要验证文件列表和对应的哈希值;(S9)
12、Installer.exe对文件列表里的所有条目:(S10)
根据文件名得到解压后的完整路径;(S101)
根据完整路径计算文件内容的哈希值;(S102)
将计算得到的哈希值和该条目里的哈希值进行比较,如果不相同,则报错退出;(S103)
安装程序将要安装的文件安装到目标位置;(S104)
自此安装程序全部工作完成。
这里说明的设备数量和处理规模是用来简化本发明的说明的。对本发明应用程序安装包的构建方法的应用、修改和变化对本领域的技术人员来说是显而易见的。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

Claims (10)

1.应用程序安装包的构建方法,其特征在于,包括:
计算待打包文件夹中各文件的哈希值,将各文件的文件名和各文件的哈希值关联,并保存在第一文件中,对所述第一文件的内容加密,并写入第二文件;
将所述第二文件添加入所述待打包文件夹。
2.如权利要求1所述的应用程序安装包的构建方法,其特征在于,扫描所述待打包文件夹,生成所述待打包文件夹的文件列表,依次计算所述文件列表上各文件的哈希值。
3.如权利要求1所述的应用程序安装包的构建方法,其特征在于,将所述第二文件添加入所述待打包文件夹后,将所述待打包文件夹打包为自解压程序,并指定解压后要运行的安装程序。
4.如权利要求3所述的应用程序安装包的构建方法,其特征在于,还包括:
对所述自解压程序进行数字签名。
5.应用程序安装包的安装方法,其特征在于,包括:
检查安装文件夹中是否存在所述第二文件,若存在,则解密所述第二文件,得到所述第一文件的内容,所述第一文件包含有所述安装文件中各文件的文件名和各文件的哈希值;
计算所述安装文件夹中各文件的哈希值,并分别与所述第一文件中记录的各文件的哈希值比较,若相同,则执行安装。
6.如权利要求5所述的应用程序安装包的安装方法,其特征在于,若不存在所述第二文件,则不执行安装。
7.如权利要求5所述的应用程序安装包的构建方法,其特征在于,若与所述第一文件中记录的各文件的哈希值不相同,则不执行安装。
8.如权利要求5所述的应用程序安装包的构建方法,其特征在于,还包括:
运行自解压程序,得到所述安装文件夹,所述自解压程序由所述安装文件夹打包得到。
9.应用程序安装包的构建装置,其特征在于,包括:
处理器;
存储器,其存储有可执行指令;
其中,所述处理器被配置为执行所述可执行指令,以执行权利要求1~4任一所述的应用程序安装包的构建方法。
10.应用程序安装包的安装装置,其特征在于,包括:
处理器;
存储器,其存储有可执行指令;
其中,所述处理器被配置为执行所述可执行指令,以执行权利要求5~8任一所述的应用程序安装包的安装方法。
CN202111063059.1A 2021-09-10 2021-09-10 应用程序安装包的构建方法、安装方法及装置 Pending CN113779558A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111063059.1A CN113779558A (zh) 2021-09-10 2021-09-10 应用程序安装包的构建方法、安装方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111063059.1A CN113779558A (zh) 2021-09-10 2021-09-10 应用程序安装包的构建方法、安装方法及装置

Publications (1)

Publication Number Publication Date
CN113779558A true CN113779558A (zh) 2021-12-10

Family

ID=78842562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111063059.1A Pending CN113779558A (zh) 2021-09-10 2021-09-10 应用程序安装包的构建方法、安装方法及装置

Country Status (1)

Country Link
CN (1) CN113779558A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105119888A (zh) * 2015-07-10 2015-12-02 小米科技有限责任公司 插件安装包上传方法、安装方法及装置
CN106055341A (zh) * 2016-06-14 2016-10-26 北京奇虎科技有限公司 应用程序安装包的校验方法及装置
CN107632781A (zh) * 2017-08-28 2018-01-26 深圳市云舒网络技术有限公司 一种分布式存储多副本快速校验一致性的方法及存储架构
CN109409135A (zh) * 2018-10-19 2019-03-01 北京金山云网络技术有限公司 一种数据的特征信息获得方法、装置、设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105119888A (zh) * 2015-07-10 2015-12-02 小米科技有限责任公司 插件安装包上传方法、安装方法及装置
CN106055341A (zh) * 2016-06-14 2016-10-26 北京奇虎科技有限公司 应用程序安装包的校验方法及装置
CN107632781A (zh) * 2017-08-28 2018-01-26 深圳市云舒网络技术有限公司 一种分布式存储多副本快速校验一致性的方法及存储架构
CN109409135A (zh) * 2018-10-19 2019-03-01 北京金山云网络技术有限公司 一种数据的特征信息获得方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
US8838974B2 (en) System and method for verifying the integrity of read-only components in deployed mixed-mode applications
TWI557589B (zh) 用於產品驗證和啟動的安全軟體產品識別器
CN101894224B (zh) 保护客户端平台上的内容
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
US20030196096A1 (en) Microcode patch authentication
US6880083B1 (en) Method and apparatus for creating and executing secure scripts
CN106055936B (zh) 可执行程序数据包加密/解密方法及装置
US7962952B2 (en) Information processing apparatus that executes program and program control method for executing program
JP2004502233A (ja) 共有名を用いてコンポーネントにセキュリティを提供するシステムおよび方法
US20150095653A1 (en) Method and apparatus of creating application package, method and apparatus of executing application package, and recording medium storing application package
US20080008316A1 (en) System and Method for Enterprise Security Including Symmetric Key Protection
EP3316160A1 (en) Authentication method and apparatus for reinforced software
CN111611593A (zh) 安全数据处理设备
CN110378104A (zh) 一种升级防纂改的方法
JP4126705B2 (ja) ソフトウェア・パッケージを再構成する方法、装置、プログラム
CN111191195A (zh) 一种用于保护apk的方法和装置
CN107003918A (zh) 用于提供验证应用完整性的方法和设备
CN110826092A (zh) 一种文件签名处理系统
Gora et al. A flexible design flow for software IP binding in FPGA
CN106599729A (zh) 一种驱动程序安全验证方法及系统
JP4295684B2 (ja) プログラム製作装置
CN108270574B (zh) 一种白名单库文件的安全加载方法及装置
JPH1131105A (ja) データカプセル生成装置および方法
JP4664055B2 (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
WO2017197869A1 (zh) 版本文件校验方法及装置、加密方法及装置和存储介质

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
CB02 Change of applicant information

Address after: Room 1308, 13th floor, East Tower, 33 Fuxing Road, Haidian District, Beijing 100036

Applicant after: China Telecom Digital Intelligence Technology Co.,Ltd.

Address before: Room 1308, 13th floor, East Tower, 33 Fuxing Road, Haidian District, Beijing 100036

Applicant before: CHINA TELECOM GROUP SYSTEM INTEGRATION Co.,Ltd.

CB02 Change of applicant information