CN107403089B - 基于应用程序的资源篡改识别方法和装置 - Google Patents

基于应用程序的资源篡改识别方法和装置 Download PDF

Info

Publication number
CN107403089B
CN107403089B CN201710557842.0A CN201710557842A CN107403089B CN 107403089 B CN107403089 B CN 107403089B CN 201710557842 A CN201710557842 A CN 201710557842A CN 107403089 B CN107403089 B CN 107403089B
Authority
CN
China
Prior art keywords
application program
signature file
file
resource
signature
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.)
Active
Application number
CN201710557842.0A
Other languages
English (en)
Other versions
CN107403089A (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.)
Neusoft Corp
Original Assignee
Neusoft Corp
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 Neusoft Corp filed Critical Neusoft Corp
Priority to CN201710557842.0A priority Critical patent/CN107403089B/zh
Publication of CN107403089A publication Critical patent/CN107403089A/zh
Application granted granted Critical
Publication of CN107403089B publication Critical patent/CN107403089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity

Landscapes

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

Abstract

本发明提出一种基于应用程序的资源篡改识别方法和装置,其中,方法包括:读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件,第一签名文件是根据首次打包时的应用程序生成的,读取应用程序包的第二签名文件,第二签名文件根据最后一次打包时的应用程序生成的,从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件,根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。该方法可在移动端单机完成,不需要服务器支持,解决了现有技术中应用程序启动后,必须要向服务器请求资源校验码来确认资源是否被篡改,耗费网络资源,效率较低的技术问题。

Description

基于应用程序的资源篡改识别方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于应用程序的资源篡改识别方法和装置。
背景技术
随着移动互联网的高速发展,移动终端的处理能力也越来越强,越来越多的应用程序进入人们的日常生活中,例如,苹果系统中,已经有几百万不同的应用程序,给人们生活带来了便利。而应用程序的资源有可能遭到恶意篡改,一旦应用程序的资源遭到恶意篡改,则无法保证应用按照原始一致的展现方式展现,而用户隐私和利益也会受到侵害。
目前,验证应用程序是否遭到篡改的方法,是每次启动应用程序后,都需要向服务器请求资源校验码,通过验证资源校验码确认资源是否被篡改,但是这种方法必须要服务器端的支持,耗费网络资源,效率较低。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种基于应用程序的资源篡改识别方法,以在没有服务器支持的情况下,也可以单机来验证应用的资源是否被篡改,解决了现有技术中每次启动应用程序后必须要向服务器请求资源校验码来确认资源是否被篡改,耗费网络资源,效率较低的技术问题。
本发明的第二个目的在于提出一种装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
本发明的第五个目的在于提出一种计算机程序产品。
为达上述目的,本发明第一方面实施例提出了一种基于应用程序的资源篡改识别方法,包括:
读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件,第一签名文件是根据首次打包时的应用程序生成的,并在第二次打包时添加到目标文件夹中的;
读取应用程序包的第二签名文件,第二签名文件根据最后一次打包时的应用程序生成的;
从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件;
根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。
本实施例的基于应用程序的资源篡改识别方法,读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件,读取应用程序包的第二签名文件,从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件,根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。该方法可在移动端单机完成,不需要服务器支持,解决了现有技术中应用程序启动后,必须要向服务器请求资源校验码来确认资源是否被篡改,耗费网络资源,效率较低的技术问题。
为达上述目的,本发明第二方面实施例提出了一种基于应用程序的资源篡改识别装置,包括:
第一读取模块,用于读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件;第一签名文件是根据首次打包时的应用程序生成的,并在第二次打包时添加到目标文件夹中的;
第二读取模块,用于读取应用程序包的第二签名文件,第二签名文件根据最后一次打包时的应用程序生成的;
删除模块,用于从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件;
识别模块,用于根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。
本实施例的基于应用程序的资源篡改识别装置,第一读取模块用于读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件,第二读取模块用于读取应用程序包的第二签名文件,删除模块用于从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件,识别模块用于根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。实现了可在移动端单机完成资源是否被篡改的验证,不需要服务器支持,解决了现有技术中应用程序启动后,必须要向服务器请求资源校验码来确认资源是否被篡改,耗费网络资源,效率较低的技术问题。
为达上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现第一方面实施例所述的方法。
为达上述目的,本发明第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,当该程序被处理器执行时,实现第一方面实施例所述的方法。
为了实现上述目的,本发明第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令被处理器执行时,执行上述第一方面实施例所述的方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种基于应用程序的资源篡改识别方法的流程示意图;
图2为IOS系统打包生成codeResources文件的代码的流程图;
图3为本发明实施例提出的一种打包生成签名文件的方法的流程示意图;
图4为本发明实施例所提供的另一种基于应用程序的资源篡改识别方法的流程示意图;
图5为实际案例中原应用和被篡改后的应用的对比示意图;
图6为本发明实施例提供的一种基于应用程序的资源篡改识别装置的结构示意图;
图7为本发明实施例所提供的另一种基于应用程序的资源篡改识别装置的结构示意图;以及
图8为计算机设备的框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的基于应用程序的资源篡改识别方法和装置。
图1为本发明实施例所提供的一种基于应用程序的资源篡改识别方法的流程示意图,本实施例中的应用程序是基于IOS操作系统的,当然如果其他操作系统,能够具有应用程序修改后必须重新打包生成签名文件的机制,本领域技术人员可以想到,将本实施例提供的方法应用于其他操作系统的应用程序中。
需要说明的是,作为一种可能的实现方式,这里的签名文件,包括应用程序所含资源文件名称和对应资源文件的哈希值,从而可以用于对应用程序中的各资源文件进行校验。
如图1所示,该方法包括:
步骤S101,读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件。
其中,第一签名文件是根据首次打包时的应用程序生成的,并在第二次打包时添加到目标文件夹中的。第一签名文件在保存到目标文件夹时,进行了加密,移动端读取目标文件夹,并解密得到第一签名文件。加密算法现有技术中有很多种可能的实现方式,如非对称算法,本实施例中不做具体限定。
具体地,应用程序在编写完成后,会对应用程序进行首次打包,应用程序打包时会生成代码资源codeResources文件,该代码资源codeResources文件即为第一签名文件。在应用程序包中建立目标文件夹,然后将第一签名文件保存在应用程序包的目标文件夹中。由于应用程序包的资源文件发生了改变,则对修改后的应用程序包进行第二次打包,并在第二次打包时将第一签名文件添加到目标文件夹中。
需要理解的是,第一签名文件是确认应用程序是否被篡改的比较基准,建立目标文件夹保存第一签名文件是为了防止被再次打包时生成的签名文件覆盖。
其中,codeResources文件包括资源文件源码和资源文件签名,资源文件源码包括资源文件名,资源文件签名包括资源文件的哈希值。
步骤S102,读取应用程序包的第二签名文件。
具体地,应用程序在进行第二次打包的过程中,应用程序会再次生成代码资源codeResources文件,为了便于区分,称为第二签名文件,第二签名文件保存在应用程序包的默认位置。
需要解释的是,移动端第二签名文件是最后一次打包时的应用程序生成的,只要应用程序的资源文件有更改,则应用程序即会重新进行打包,生成第二签名文件,并覆盖原有的第二签名文件。
其中,codeResources文件包括资源文件源码和资源文件签名,资源文件源码包括资源文件名,资源文件签名包括资源文件的哈希值。
步骤S103,从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件。
具体地,在对应用程序进行最后一次打包时,生成第二签名文件,由于最后一次打包时生成的应用程序包中含有包含第一签名文件的目标文件夹,所以,最后一次打包生成的第二签名文件中包含该目标文件夹对应的资源文件源码和该资源文件的签名,删除该目标文件夹对应的资源文件源码和该资源文件的签名,则得到待比对的签名文件。
步骤S104,根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。
具体地,应用程序每次启动时,都会对比第一签名文件和待比对签名文件是否相同,第一签名文件和待比对的签名文件中都包括资源文件签名,即包含资源文件的哈希值,通过对比资源文件的哈希值,可以识别出应用程序中是否有资源文件被篡改。
图2为IOS系统打包生成codeResources文件的代码的流程图,如图2所示,其中的每个资源文件都计算了哈希值(Hash),见图2中资源文件名和资源文件的哈希值。只要应用程序的资源文件没有篡改,则打包生成的资源文件名和对应的资源文件的哈希值则不会变化,如果资源文件签名中包含的资源文件的Hash值有增加和/或改变,则说明该应用程序已经被篡改。
本实施例的基于应用的资源篡改识别方法,读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件,读取应用程序包的第二签名文件,从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件,根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。该方法可在移动端单机完成,不需要服务器支持,解决了现有技术中应用程序启动后,必须要向服务器请求资源校验码来确认资源是否被篡改,耗费网络资源,效率较低的技术问题。
在上一实施例中,步骤S101和步骤S102中讲到从应用程序包中读取第一签名文件和第二签名文件,而第一签名文件和第二签名文件是对应用程序打包过程中生成的,在上一实施例的基础上,本实施例提出了一种可能的生成签名文件的过程,图3为本发明实施例提出的一种生成签名文件的方法的流程示意图,如图3所示,该方法包括:
步骤S301,对应用程序首次打包,生成第一签名文件。
具体地,应用程序编写完成后,对应用程序进行首次打包,生成代码资源codeResources文件,该代码资源codeResources文件即第一签名文件,第一签名文件包括资源文件源码和资源文件签名,其中,资源文件源码包括资源文件名,资源文件签名包括资源文件的哈希值。
步骤S302,对第一签名文件进行加密,保存至目标文件夹。
具体地,对第一签名文件进行加密,加密算法现有技术中有很多种可能的实现方式,如非对称算法,本实施例中不做具体限定。
进一步,第一签名文件加密后,作为一种可能的实现方式,在根目录中设立一个目标文件夹,该目标文件夹可命名为Temp,可将第一签名文件保存在目标文件夹中。
步骤S303,对应用程序进行第二次打包。
具体地,由于此时应用程序包中增加了目标文件夹,以及目标文件夹中的第一签名文件,也就是说应用程序包中的资源文件发生了变化,则必须对应用程序包进行二次打包,以重新生成新的签名文件,这里可以记为第二签名文件,但这里的第二签名文件不会替换目标文件夹中的第一签名文件,而是存储在应用程序包中的默认位置。
进一步,在二次打包以后,就可以对应用程序进行发布了。
需要说明的是,应用程序发布后,如果应用程序的资源文件发生篡改,则应用程序会进行再次打包,第二签名文件会更新,即第二签名文件是最后一次打包时生成的。
需要解释的是,应用程序进行再次打包(即首次打包之后的后续打包)时,由于应用程序包中含有包含第一签名文件的Temp文件夹,所以,再次打包生成的第二签名文件中包含该资源文件名Temp和对应的哈希值。
本实施例的基于应用的签名文件的生成方法,通过对应用程序进行多次打包,分别生成第一签名文件和第二签名文件,第一签名文件和第二签名文件均保存在应用程序包中,可以由移动端直接调用,使得基于应用程序的资源篡改识别方法可在移动端单机完成,不需要服务器支持,解决了现有技术中应用程序启动后,必须要向服务器请求资源校验码来确认资源是否被篡改,耗费网络资源,效率较低的技术问题。
在图1所示实施例基础上,本发明还提出了另一种基于应用程序的资源篡改识别方法的可能的实现方式,图4为本发明实施例所提供的另一种基于应用程序的资源篡改识别方法的流程示意图,该方法包括:
步骤S401,读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件。
步骤S402,读取应用程序包的第二签名文件。
步骤S403,从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件。
需要说明的是,本发明中对于步骤S401至步骤S403的描述,可以参照图1对应实施例中步骤S101至步骤S103的描述,其实现原理类似,此处不再赘述。
步骤S404,判断第一签名文件与待比对签名文件是否相同,若否,则执行步骤S406,若是,则执行步骤S405。
具体地,对比第一签名文件和待比对签名文件,若相同,则说明应用程序未被篡改,用户可继续使用。若不相同,则说明应用程序被篡改,该应用程序不可用。其中,应用程序是在第二次打包后被篡改的,并重新打包生成了应用程序包,应用程序包中包含更新的第二签名文件。
步骤S405,应用程序未被篡改。
步骤S406,应用程序被篡改。
步骤S407,在应用程序的界面上显示提示信息,或者通知管理端,或者退出应用程序。
具体地,若发现应用程序被篡改,则可通过弹窗显示提示信息,或者通知管理者,或者告警直接退出应用程序。
图5为实际案例中原应用和被篡改后的应用的对比示意图,如图5所示,A为原应用的界面,B为被篡改后的应用的界面,并在图B被篡改后的应用的界面中通过弹窗提示,例如:资源已篡改。该被篡改的应用可强制退出应用程序,也可由用户直接关闭该应用程序,重新下载应用程序安装。
本实施例的基于应用的资源篡改识别方法,读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件,读取应用程序包的第二签名文件,从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件,根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。该方法可在移动端单机完成,不需要服务器支持,解决了现有技术中应用程序启动后,必须要向服务器请求资源校验码来确认资源是否被篡改,耗费网络资源,效率较低的技术问题。
为实现上述实施例,本发明提出了一种基于应用程序的资源篡改识别装置,图6为本发明实施例提供的一种基于应用程序的资源篡改识别装置的结构示意图,如6所示,该装置包括:第一读取模块61,第二读取模块62、删除模块63和识别模块64。
第一读取模块61,用于读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件,第一签名文件是根据首次打包时的应用程序生成的,并在第二次打包时添加到目标文件夹中的。
第二读取模块62,用于读取应用程序包的第二签名文件,第二签名文件根据最后一次打包时的应用程序生成的。
删除模块63,用于从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件。
识别模块64,用于根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。
需要说明的是,上述对方法实施例的解释说明也适用于本实施例所述的装置,此处不再赘述。
本实施例的基于应用程序的资源篡改识别装置,第一读取模块用于读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件,第二读取模块用于读取应用程序包的第二签名文件,删除模块用于从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件,识别模块用于根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。实现了可在移动端单机完成资源是否被篡改的验证,不需要服务器支持,解决了现有技术中应用程序启动后,必须要向服务器请求资源校验码来确认资源是否被篡改,耗费网络资源,效率较低的技术问题。
在上述实施例基础上,本发明还提出了另一种基于应用程序的资源篡改识别装置的可能的实现方式,图7为本发明实施例所提供的另一种基于应用程序的资源篡改识别装置的结构示意图,如图7所示,在上一实施例基础上,识别模块64包括:第一识别模块641和第二识别模块642。
第一识别单元641,用于若待对比签名文件与第一签名文件相同,识别出应用程序未被篡改。
第二识别单元642,用于若待对比签名文件与第一签名文件不相同,识别出应用程序在第二次打包之后被篡改,并重新打包得到应用程序包。
作为一种可能的实现方式,该装置还包括:提示模块65。
提示模块65,用于若识别出应用程序被篡改,在应用程序的界面上显示提示信息,或者通知管理端,或者退出应用程序。
需要说明的是,上述对方法实施例的解释说明也适用于本实施例所述的装置,此处不再赘述。
本实施例的基于应用程序的资源篡改识别装置,第一读取模块用于读取应用程序包的目标文件夹,以得到存储于目标文件夹中的第一签名文件,第二读取模块用于读取应用程序包的第二签名文件,删除模块用于从第二签名文件中,删除目标文件夹涉及的内容,得到待比对签名文件,识别模块用于根据第一签名文件与待比对签名文件是否相同,识别应用程序是否被篡改。实现了可在移动端单机完成资源是否被篡改的验证,不需要服务器支持,解决了现有技术中应用程序启动后,必须要向服务器请求资源校验码来确认资源是否被篡改,耗费网络资源,效率较低的技术问题。
为了实现上述实施例,本发明还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,当处理器执行该程序时,实现上述实施例中所述的基于应用程序的资源篡改识别方法。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,实现上述实施例中所述的基于应用程序的资源篡改识别方法。
为了实现上述实施例,本发明还提出一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,实现上述实施例中所述的基于应用程序的资源篡改识别方法。
图8示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图8显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (8)

1.一种基于应用程序的资源篡改识别方法,其特征在于,包括以下步骤:
读取应用程序包的目标文件夹,以得到存储于所述目标文件夹中的第一签名文件;所述第一签名文件是根据首次打包时的应用程序生成的,并在第二次打包时添加到所述目标文件夹中的,且所述第一签名文件在保存到目标文件夹时进行了加密,所述第一签名文件为根据首次打包时的应用程序生成的代码资源CodeResources文件;
读取所述应用程序包的第二签名文件;所述第二签名文件根据最后一次打包时的应用程序生成的,所述第二签名文件为根据最后一次打包时的应用程序生成的CodeResources文件;其中,所述第二签名文件保存在所述应用程序包的默认位置,并在所述应用程序的资源文件发生更改而重新进行打包后,进行更新;
从所述第二签名文件中,删除所述目标文件夹涉及的内容,得到待比对签名文件;
所述CodeResources包括资源文件源码和资源文件签名;
所述资源文件源码包括资源文件名;
所述资源文件签名包括资源文件的哈希值;
根据所述第一签名文件与所述待比对签名文件中的哈希值是否相同,识别所述应用程序是否被篡改。
2.根据权利要求1所述的资源篡改识别方法,其特征在于,所述根据所述第一签名文件与所述待比对签名文件是否相同,识别所述应用程序是否被篡改,包括:
若所述待对比签名文件与所述第一签名文件中的哈希值相同,识别出所述应用程序未被篡改;
若所述待对比签名文件与所述第一签名文件中的哈希值不相同,识别出所述应用程序在所述第二次打包之后被篡改,并重新打包得到所述应用程序包。
3.根据权利要求1或2任一项所述的资源篡改识别方法,其特征在于,所述识别所述应用程序是否被篡改之后,还包括:
若识别出所述应用程序被篡改,在所述应用程序的界面上显示提示信息,或者通知管理端,或者退出所述应用程序。
4.一种基于应用程序的资源篡改识别装置,其特征在于,包括:
第一读取模块,用于读取应用程序包的目标文件夹,以得到存储于所述目标文件夹中的第一签名文件;所述第一签名文件是根据首次打包时的应用程序生成的,并在第二次打包时添加到所述目标文件夹中的;
第二读取模块,用于读取所述应用程序包的第二签名文件;所述第二签名文件根据最后一次打包时的应用程序生成的;其中,所述第二签名文件保存在所述应用程序包的默认位置,并在所述应用程序的资源文件发生更改而重新进行打包后,进行更新;
删除模块,用于从所述第二签名文件中,删除所述目标文件夹涉及的内容,得到待比对签名文件;
识别模块,用于根据所述第一签名文件与所述待比对签名文件是否相同,识别所述应用程序是否被篡改。
5.根据权利要求4所述的资源篡改识别装置,其特征在于,所述识别模块,包括:
第一识别单元,用于若所述待对比签名文件与所述第一签名文件相同,识别出所述应用程序未被篡改;
第二识别单元,用于若所述待对比签名文件与所述第一签名文件不相同,识别出所述应用程序在所述第二次打包之后被篡改,并重新打包得到所述应用程序包。
6.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1-3中任一所述的方法。
7.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一所述的方法。
8.一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行如权利要求1-3中任一所述的方法。
CN201710557842.0A 2017-07-10 2017-07-10 基于应用程序的资源篡改识别方法和装置 Active CN107403089B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710557842.0A CN107403089B (zh) 2017-07-10 2017-07-10 基于应用程序的资源篡改识别方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710557842.0A CN107403089B (zh) 2017-07-10 2017-07-10 基于应用程序的资源篡改识别方法和装置

Publications (2)

Publication Number Publication Date
CN107403089A CN107403089A (zh) 2017-11-28
CN107403089B true CN107403089B (zh) 2020-09-04

Family

ID=60404576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710557842.0A Active CN107403089B (zh) 2017-07-10 2017-07-10 基于应用程序的资源篡改识别方法和装置

Country Status (1)

Country Link
CN (1) CN107403089B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197469B (zh) * 2017-11-28 2020-12-18 东软集团股份有限公司 校验应用程序的方法、装置和存储介质以及电子设备
CN108683502B (zh) * 2018-03-30 2022-01-25 上海连尚网络科技有限公司 一种数字签名验证方法、介质及设备
CN109409034A (zh) * 2018-09-17 2019-03-01 东软集团股份有限公司 应用程序的验证方法、平台、终端、系统、介质和设备
CN111259387B (zh) * 2018-12-03 2021-06-15 上海掌门科技有限公司 一种检测被篡改的应用的方法及设备
CN111176685A (zh) * 2019-12-27 2020-05-19 深圳市优必选科技股份有限公司 一种升级方法及装置
CN111597515A (zh) * 2020-04-24 2020-08-28 维沃移动通信有限公司 应用程序签名的获取方法和电子设备
CN113761587A (zh) * 2020-09-23 2021-12-07 北京沃东天骏信息技术有限公司 用于签名校验的方法和装置
CN113987471A (zh) * 2021-10-29 2022-01-28 山西大鲲智联科技有限公司 可执行文件执行方法、装置、电子设备和计算机可读介质
CN114390200B (zh) * 2022-01-12 2023-04-14 平安科技(深圳)有限公司 相机作弊识别方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407479B2 (en) * 2003-12-31 2013-03-26 Honeywell International Inc. Data authentication and tamper detection
CN104123481A (zh) * 2013-04-24 2014-10-29 贝壳网际(北京)安全技术有限公司 防止应用程序被篡改的方法及装置
CN106843909A (zh) * 2017-03-07 2017-06-13 东软集团股份有限公司 支持渠道定制的渠道打包方法及装置

Also Published As

Publication number Publication date
CN107403089A (zh) 2017-11-28

Similar Documents

Publication Publication Date Title
CN107403089B (zh) 基于应用程序的资源篡改识别方法和装置
CN107729041B (zh) 应用程序热更新方法、装置、终端和存储介质
CN107870968B (zh) 对文件系统卷执行实时更新
US9003546B2 (en) Secured deletion of information
US9600267B2 (en) Optimizing provisioning through automated virtual machine template generation
CN106843978B (zh) 一种sdk接入方法及系统
US20130138934A1 (en) Loading configuration information
CN111008034B (zh) 一种补丁生成方法及装置
CN108509215B (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
CN108255989B (zh) 图片存储方法、装置、终端设备及计算机存储介质
CN105786539B (zh) 一种文件下载方法及装置
CN109445866A (zh) 一种硬盘盘符的确定方法、装置及服务器
CN112651040A (zh) 权限申请方法、组件、装置及计算机可读存储介质
CN108874441B (zh) 一种板卡配置方法、装置、服务器和存储介质
CN115407943A (zh) 一种内存转储文件生成方法、装置、设备及可读存储介质
CN114461691A (zh) 状态机的控制方法、装置、电子设备及存储介质
CN107077342B (zh) 固件模块运行权限
CN110941516A (zh) 操作系统还原方法、装置、设备及存储介质
US11295031B2 (en) Event log tamper resistance
CN113377376A (zh) 数据包生成方法、数据包生成装置、电子设备及存储介质
CN109309588B (zh) 保证动态化配置数据一致性的方法和装置
CN109977669B (zh) 病毒识别方法、装置和计算机设备
CN108566293B (zh) 电子装置、zk节点信息通知方法及存储介质
CN104484198A (zh) 一种安装应用程序的方法和装置
JP2015523633A (ja) 情報を削除する方法

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
GR01 Patent grant
GR01 Patent grant