CN104123481A - 防止应用程序被篡改的方法及装置 - Google Patents

防止应用程序被篡改的方法及装置 Download PDF

Info

Publication number
CN104123481A
CN104123481A CN201310146217.9A CN201310146217A CN104123481A CN 104123481 A CN104123481 A CN 104123481A CN 201310146217 A CN201310146217 A CN 201310146217A CN 104123481 A CN104123481 A CN 104123481A
Authority
CN
China
Prior art keywords
file
verification
application program
storage file
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
CN201310146217.9A
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.)
Beijing Kingsoft Internet Security Software Co Ltd
Conew Network Technology Beijing Co Ltd
Shell Internet Beijing Security Technology Co Ltd
Zhuhai Juntian Electronic Technology Co Ltd
Beijing Kingsoft Internet Science and Technology Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software Co Ltd
Conew Network Technology Beijing Co Ltd
Shell Internet Beijing Security Technology Co Ltd
Zhuhai Juntian Electronic Technology Co Ltd
Beijing Kingsoft Internet Science and Technology 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 Beijing Kingsoft Internet Security Software Co Ltd, Conew Network Technology Beijing Co Ltd, Shell Internet Beijing Security Technology Co Ltd, Zhuhai Juntian Electronic Technology Co Ltd, Beijing Kingsoft Internet Science and Technology Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201310146217.9A priority Critical patent/CN104123481A/zh
Publication of CN104123481A publication Critical patent/CN104123481A/zh
Pending legal-status Critical Current

Links

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种防止应用程序被篡改的方法及装置,属于智能移动终端安全领域。其中,该防止应用程序被篡改的方法应用于Android系统的移动终端中,所述方法包括:对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值;利用所述校验值生成用于校验所述存储文件的验证文件;对所述存储文件和验证文件进行编译打包,生成所述应用程序的安装包。本发明的技术方案能够验证应用程序是否被篡改,从而增加应用程序的安全性。

Description

防止应用程序被篡改的方法及装置
技术领域
本发明涉及智能移动终端安全领域,特别是指一种防止应用程序被篡改的方法及装置。
背景技术
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑。现在的安卓操作系统中,应用程序通常使用Java语言编写。使用该语言编写的应用程序可以打包为后缀为.APK的程序包,将该程序包在移动终端上运行即可安装对应的安卓应用。但是将应用程序打包为后缀为.APK的程序包有其致命的缺陷,因为APK程序包比较容易被篡改,影响了应用程序的安全性。其中APK是AndroidPackage的缩写,即Android安装包(APK)。APK是一种文件格式,通过将APK文件直接传到Android模拟器或Android手机中执行即可实现安装。
为了防止APK程序包被篡改,目前最常使用的解决方式有代码混淆、签名验证和在线验证等三种方式。不过这三种方式都有其缺点:代码混淆方式是将部分代码进行替换,如把1(数字一)替换为l(字母L),但是这样会使得代码阅读难度增加;签名验证方式可在应用运行的时候验证签名是否正确,如果非官方签名则停止程序运行,但是此种方式依然要依靠java代码进行验证,如果源程序被破解,即可删除验证相关代码;在线验证方式是比较可靠的验证方式,不过需要连接网络时才能使用。
发明内容
本发明要解决的技术问题是提供一种防止应用程序被篡改的方法及装置,能够验证应用程序是否被篡改,从而增加应用程序的安全性。
为解决上述技术问题,本发明的实施例提供技术方案如下:
一方面,提供一种防止应用程序被篡改的方法,应用于Android系统的移动终端中,所述方法包括:
对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值;
利用所述校验值生成用于校验所述存储文件的验证文件;
对所述存储文件和验证文件进行编译打包,生成所述应用程序的安装包。
具体地,所述安装包可以为APK文件。
进一步地,所述对应用程序的存储文件进行文件校验之前还包括:
对应用程序的代码进行编译,形成可执行文件,从所述可执行文件中提取出源程序文件;
所述对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值包括:
对所述源程序文件进行文件校验,得到所述源程序文件的唯一校验值。
进一步地,所述对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值包括:
对应用程序的资源文件进行文件校验,得到所述资源文件的唯一校验值。
进一步地,所述利用所述校验值生成用于校验所述存储文件的验证文件包括:
利用所述校验值生成用于校验所述存储文件的程序代码,并对所述程序代码进行编译得到所述验证文件。
进一步地,所述对所述存储文件和验证文件进行编译打包之前还包括:
在所述验证文件中添加预设可执行代码;
所述对所述存储文件和验证文件进行编译打包,生成所述应用程序的安装包包括:
对所述存储文件和添加有预设可执行代码的验证文件进行编译打包,生成所述应用程序的安装包。
本发明实施例还提供了一种防止应用程序被篡改的装置,应用于Android系统的移动终端中,包括:
校验模块,用于对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值;
验证模块,用于利用所述校验值生成用于校验所述存储文件的验证文件;
编译模块,用于对所述存储文件和验证文件进行编译打包,生成所述应用程序的安装包。
进一步地,所述装置还包括:
提取模块,用于对应用程序的代码进行编译,形成可执行文件,从所述可执行文件中提取出源程序文件;
所述校验模块具体用于对所述源程序文件进行文件校验,得到所述源程序文件的唯一校验值。
进一步地,所述校验模块具体用于对应用程序的资源文件进行文件校验,得到所述资源文件的唯一校验值。
进一步地,所述验证模块具体用于利用所述校验值生成用于校验所述存储文件的程序代码,并对所述程序代码进行编译得到所述验证文件。
进一步地,所述装置还包括:
添加模块,用于在所述验证文件中添加预设可执行代码;
所述编译模块具体用于对所述存储文件和添加有预设可执行代码的验证文件进行编译打包,生成所述应用程序的安装包。
本发明的实施例具有以下有益效果:
上述方案中,首先对应用程序的存储文件进行文件校验,得到存储文件的唯一校验值,利用该校验值生成用于校验该存储文件的验证文件,再对存储文件和验证文件进行编译打包,生成应用程序的安装包。如果应用程序存储文件中的代码有任何变化,存储文件的校验值都会改变。这样在使用安装包安装应用程序时,通过对存储文件的校验值进行验证,即可判断出存储文件是否被篡改,如果发现存储文件被篡改,则可以提示用户停止安装过程。本发明的技术方案能够验证应用程序是否被篡改,从而增加应用程序的安全性。
附图说明
图1为本发明实施例防止应用程序被篡改的方法的流程示意图;
图2为本发明实施例防止应用程序被篡改的装置的结构框图;
图3为本发明实施例一防止应用程序被篡改的方法的流程示意图;
图4为本发明实施例二防止应用程序被篡改的方法的流程示意图。
具体实施方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明的实施例针对现有技术中验证应用程序是否被篡改比较困难的问题,提供一种防止应用程序被篡改的方法及装置,能够验证应用程序是否被篡改,从而增加应用程序的安全性。
图1为本发明实施例防止应用程序被篡改的方法的流程示意图,如图1所示,本实施例包括:
步骤101:对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值;
步骤102:利用所述校验值生成用于校验所述存储文件的验证文件;
步骤103:对所述存储文件和验证文件进行编译打包,生成所述应用程序的安装包。
具体地,应用程序的安装包可以为应用程序的APK文件。
进一步地,本发明的另一实施例中,包括上述步骤101~103的基础上,步骤101之前还包括:
对应用程序的代码进行编译,形成可执行文件,从所述可执行文件中提取出源程序文件,其中源程序文件可以为classes.dex文件;
所述步骤101包括:
对所述源程序文件进行文件校验,得到所述源程序文件的唯一校验值。
进一步地,本发明的另一实施例中,包括上述步骤101~103的基础上,所述步骤101包括:
对应用程序的资源文件进行文件校验,得到所述资源文件的唯一校验值,其中,所述资源文件可以为arsc格式文件。
进一步地,本发明的另一实施例中,包括上述步骤101~103的基础上,所述步骤102包括:
利用所述校验值生成用于校验所述存储文件的程序代码,并对所述程序代码进行编译得到所述验证文件,所述程序代码包括采用C++程序或C程序编写的代码,具体地,可以将所述C++程序或C程序编写的代码编译成为so格式文件。
进一步地,本发明的另一实施例中,包括上述步骤101~103的基础上,所述步骤103之前还包括:
在所述验证文件中添加预设可执行代码;
所述步骤103包括:
对所述存储文件和添加有预设可执行代码的验证文件进行编译打包,生成所述应用程序的安装包。
本发明的防止应用程序被篡改的方法,首先对应用程序的存储文件进行文件校验,得到存储文件的唯一校验值,利用该校验值生成用于校验该存储文件的验证文件,再对所述存储文件和验证文件进行编译打包,生成应用程序的安装包。如果应用程序存储文件中的代码有任何变化,存储文件的校验值都会改变。这样在使用安装包安装应用程序时,通过对存储文件的校验值进行验证,即可判断出存储文件是否被篡改,如果发现存储文件被篡改,则可以提示用户停止安装过程。本发明的技术方案能够验证应用程序是否被篡改,从而增加应用程序的安全性。
图2为本发明实施例防止应用程序被篡改的装置的结构框图,如图2所示,本实施例包括:
校验模块20,用于对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值;
验证模块21,用于利用所述校验值生成用于校验所述存储文件的验证文件;
编译模块22,用于对所述存储文件和验证文件进行编译打包,生成所述应用程序的安装包。
进一步地,所述装置还包括:
提取模块23,用于对应用程序的代码进行编译,形成可执行文件,从所述可执行文件中提取出源程序文件;
所述校验模块20具体用于对所述源程序文件进行文件校验,得到所述源程序文件的唯一校验值。
进一步地,所述校验模块20具体用于对应用程序的资源文件进行文件校验,得到所述资源文件的唯一校验值。
进一步地,所述验证模块21具体用于利用所述校验值生成用于校验所述存储文件的程序代码,并对所述程序代码进行编译得到所述验证文件。
进一步地,所述装置还包括:
添加模块24,用于在所述验证文件中添加预设可执行代码;
所述编译模块22具体用于对所述存储文件和添加有预设可执行代码的验证文件进行编译打包,生成所述应用程序的安装包。
本发明的防止应用程序被篡改的装置,首先对应用程序的存储文件进行文件校验,得到存储文件的唯一校验值,利用该校验值生成用于校验该存储文件的验证文件,再对所述存储文件和验证文件进行编译打包,生成应用程序的安装包。如果应用程序存储文件中的代码有任何变化,存储文件的校验值都会改变。这样在使用安装包安装应用程序时,通过对存储文件的校验值进行验证,即可判断出存储文件是否被篡改,如果发现存储文件被篡改,则可以提示用户停止安装过程。本发明的技术方案能够验证应用程序是否被篡改,从而增加应用程序的安全性。
下面结合具体的实施例对本发明的防止应用程序被篡改的方法进行详细介绍:
实施例一:
一般对应用程序的恶意篡改都是通过修改应用程序中的java语言代码来实现。黑客可以通过在原有代码中添加广告、病毒等恶意代码,或者删掉某些验证相关的代码来实现恶意目的。所以只要避免代码被修改,就可以从根本上防止应用程序被恶意篡改。
如图3所示,本实施例包括以下步骤:
步骤a1:在应用程序开发完毕后,先将应用程序的代码进行编译,形成可执行的APK文件,从APK文件中提取出名为classes.dex的文件。
步骤a2:该classes.dex文件包括了所有的java语言代码,对该文件使用现有的文件校验方法进行校验,并得出该文件的唯一校验码。比如可使用CRC校验对该文件进行校验,得到该文件的CRC值。其中,CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。
通过CRC校验可以确保文件不会被修改。因为对一个文件进行计算可以得到唯一的CRC值,如果对这个文件进行细微修改(哪怕只修改一个字节),该文件的CRC值都会变得完全不同,所以使用CRC校验可确保对classes.dex文件的任何修改都能被及时发现。
步骤a3:计算出CRC值后,需要编写一个用来验证CRC值的C++程序或C程序,并将该C++程序或C程序编译成为so格式文件,如"test.so"文件。该"test.so"文件在应用程序运行的时候,会重新计算classes.dex文件的CRC值,并与之前计算出来的CRC值进行比对。如果两个CRC值一致,代表该classes.dex文件没有被篡改过,可以正常运行;如果两个CRC值不一致,则该classes.dex文件可能已经被篡改,此时需要提示用户该应用程序有风险,建议下载官方版本。
步骤a4:重新对包括上述“test.so”文件和classes.dex文件的所有代码进行编译打包,形成一个带有验证机制的APK文件。用户可以使用该APK文件安装应用程序,在运行该APK文件后,会首先调用“test.so”文件,“test.so”文件中的代码会对classes.dex文件进行CRC校验,得到一CRC值并与之前的CRC值对比,从而得到应用程序是否被篡改的结论,避免用户受到损失。
由于破解so格式文件的难度远远高于破解普通java代码的难度,因此,本实施例的技术方案可以有效避免应用程序被恶意篡改,保证应用程序的完整性与安全性。本实施例中,由于验证部分代码使用C++编写,增加了破解的难度;另外通过二次编译来完成对classes.dex文件的CRC校验,这种方式即巧妙的获取到classes.dex文件的校验码,又可以防止黑客了解验证逻辑,从而防止了黑客对代码的篡改。
本实施例通过检测classes.dex文件的校验码是否变化来分析该文件是否被篡改,虽然无法阻止应用程序被反编译,但是可以使得他人无法私自对代码进行修改,使得应用程序的安全性大大增加。
实施例二:
由于调用so格式文件的代码仍然是用Java语言编写,这样有些黑客可以通过删除调用“test.so”文件的代码来避过验证。因此,本实施例在“test.so”文件中添加预设可执行代码,如果应用程序没有调用“test.so”文件,那么预设可执行代码无法运行,应用程序获取错误信息给用户相关提示,从而避免应用程序被恶意修改的情况发生。
如图4所示,本实施例包括以下步骤:
步骤b1:在应用程序开发完毕后,先将应用程序的代码进行编译,形成可执行的APK文件,从APK文件中提取出名为classes.dex的文件。
步骤b2:该classes.dex文件包括了所有的java语言代码,对该文件使用现有的文件校验方法进行校验,并得出该文件的唯一校验码。比如可使用CRC校验对该文件进行校验,得到该文件的CRC值。
通过CRC校验可以确保文件不会被修改。因为对一个文件进行计算可以得到唯一的CRC值,如果对这个文件进行细微修改(哪怕只修改一个字节),该文件的CRC值都会变得完全不同,所以使用CRC校验可确保对classes.dex文件的任何修改都能被及时发现。
步骤b3:计算出CRC值后,需要编写一个用来验证CRC值的C++程序或C程序,并将该C++程序或C程序编译成为so格式文件,如"test.so"文件。该"test.so"文件在应用程序运行的时候,会重新计算classes.dex文件的CRC值,并与之前计算出来的CRC值进行比对。如果两个CRC值一致,代表该classes.dex文件没有被篡改过,可以正常运行;如果两个CRC值不一致,则该classes.dex文件可能已经被篡改,此时需要提示用户该应用程序有风险,建议下载官方版本。
步骤b4:在“test.so”文件中添加预设可执行代码,比如可以在“test.so”文件中添加一些程序初始化的代码,如申请内存空间,加载动画等等。如果“test.so”文件没有运行这些代码,则应用程序没有初始化,会导致应用程序运行失败,避免用户损失。
这样即使黑客通过某些手段阻止了so格式文件对APK文件进行校验,由于很难知道关键代码的内容,使得应用程序无法正常运行,从而给用户相关提示,避免应用程序被恶意修改给用户造成损失。
步骤b5:重新对包括上述“test.so”文件和classes.dex文件的所有代码进行编译打包,形成一个带有验证机制的APK文件。用户可以使用该APK文件安装应用程序,在运行该APK文件后,会首先调用“test.so”文件,“test.so”文件中的代码会对classes.dex文件进行CRC校验,得到一CRC值并与之前的CRC值对比,从而得到应用程序是否被篡改的结论,避免用户受到损失。
本实施例通过检测classes.dex文件的校验码是否变化来分析该文件是否被篡改,虽然无法阻止应用程序被反编译,但是可以使得他人无法私自对代码进行修改,使得应用程序的安全性大大增加。
进一步地,还可以利用本发明的技术方案来防止应用程序的资源文件被替换。应用程序的资源文件是存储在一个arsc格式文件中,例如resources.arsc文件。如果对应用程序中的资源进行替换,会导致该arsc格式文件的CRC值发生改变。用实施例一所述的方案对该arsc格式文件进行CRC校验,即可判断资源文件是否被替换。
本发明实施例中,在采用文件校验方法对文件进行校验时,除了采用CRC校验,还可以使用其他校验方式,如MD5校验、SHA1校验、哈希校验等校验方式。只要是通过某种算法,可以得到文件唯一的校验值的文件校验方法均可应用于本发明的技术方案中。另外,除了采用单一的校验方式对文件进行校验,还可混合使用这些校验方式,即同时利用两种或两种以上的校验方式对文件进行校验。
本发明的防止应用程序被篡改的方法及装置,操作简单,破解难度大,安全性高,并且不需要网络支持,随时都可以对应用程序安装包的安全性进行验证,适应能力好。
此说明书中所描述的许多功能部件都被称为模块,以便更加特别地强调其实现方式的独立性。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同物理上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
在本发明各方法实施例中,所述各步骤的序号并不能用于限定各步骤的先后顺序,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,对各步骤的先后变化也在本发明的保护范围之内。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (11)

1.一种防止应用程序被篡改的方法,应用于Android系统的移动终端中,其特征在于,所述方法包括:
对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值;
利用所述校验值生成用于校验所述存储文件的验证文件;
对所述存储文件和验证文件进行编译打包,生成所述应用程序的安装包。
2.根据权利要求1所述的防止应用程序被篡改的方法,其特征在于,所述对应用程序的存储文件进行文件校验之前还包括:
对应用程序的代码进行编译,形成可执行文件,从所述可执行文件中提取出源程序文件;
所述对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值包括:
对所述源程序文件进行文件校验,得到所述源程序文件的唯一校验值。
3.根据权利要求1所述的防止应用程序被篡改的方法,其特征在于,所述对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值包括:
对应用程序的资源文件进行文件校验,得到所述资源文件的唯一校验值。
4.根据权利要求2或3所述的防止应用程序被篡改的方法,其特征在于,所述利用所述校验值生成用于校验所述存储文件的验证文件包括:
利用所述校验值生成用于校验所述存储文件的程序代码,并对所述程序代码进行编译得到所述验证文件。
5.根据权利要求4所述的防止应用程序被篡改的方法,其特征在于,所述对所述存储文件和验证文件进行编译打包之前还包括:
在所述验证文件中添加预设可执行代码;
所述对所述存储文件和验证文件进行编译打包,生成所述应用程序的安装包包括:
对所述存储文件和添加有预设可执行代码的验证文件进行编译打包,生成所述应用程序的安装包。
6.根据权利要求1所述的防止应用程序被篡改的方法,其特征在于,所述安装包为APK文件。
7.一种防止应用程序被篡改的装置,应用于Android系统的移动终端中,其特征在于,所述装置包括:
校验模块,用于对应用程序的存储文件进行文件校验,得到所述存储文件的唯一校验值;
验证模块,用于利用所述校验值生成用于校验所述存储文件的验证文件;
编译模块,用于对所述存储文件和验证文件进行编译打包,生成所述应用程序的安装包。
8.根据权利要求7所述的防止应用程序被篡改的装置,其特征在于,所述装置还包括:
提取模块,用于对应用程序的代码进行编译,形成可执行文件,从所述可执行文件中提取出源程序文件;
所述校验模块具体用于对所述源程序文件进行文件校验,得到所述源程序文件的唯一校验值。
9.根据权利要求7所述的防止应用程序被篡改的装置,其特征在于,
所述校验模块具体用于对应用程序的资源文件进行文件校验,得到所述资源文件的唯一校验值。
10.根据权利要求8或9所述的防止应用程序被篡改的装置,其特征在于,
所述验证模块具体用于利用所述校验值生成用于校验所述存储文件的程序代码,并对所述程序代码进行编译得到所述验证文件。
11.根据权利要求7所述的防止应用程序被篡改的装置,其特征在于,所述装置还包括:
添加模块,用于在所述验证文件中添加预设可执行代码;
所述编译模块具体用于对所述存储文件和添加有预设可执行代码的验证文件进行编译打包,生成所述应用程序的安装包。
CN201310146217.9A 2013-04-24 2013-04-24 防止应用程序被篡改的方法及装置 Pending CN104123481A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310146217.9A CN104123481A (zh) 2013-04-24 2013-04-24 防止应用程序被篡改的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310146217.9A CN104123481A (zh) 2013-04-24 2013-04-24 防止应用程序被篡改的方法及装置

Publications (1)

Publication Number Publication Date
CN104123481A true CN104123481A (zh) 2014-10-29

Family

ID=51768890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310146217.9A Pending CN104123481A (zh) 2013-04-24 2013-04-24 防止应用程序被篡改的方法及装置

Country Status (1)

Country Link
CN (1) CN104123481A (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932902A (zh) * 2015-07-09 2015-09-23 魅族科技(中国)有限公司 一种生成apk文件的方法及终端
CN104954353A (zh) * 2015-02-10 2015-09-30 腾讯科技(深圳)有限公司 Apk文件包的校验方法和装置
CN105740660A (zh) * 2016-01-20 2016-07-06 广州彩瞳网络技术有限公司 一种应用安全性的检测方法及装置
CN106170763A (zh) * 2015-01-07 2016-11-30 华为技术有限公司 一种软件校验方法和装置
CN106778099A (zh) * 2016-11-29 2017-05-31 北京奇虎科技有限公司 防篡改apk的生成方法和装置、安装及运行方法和装置
CN106933695A (zh) * 2017-02-28 2017-07-07 武汉斗鱼网络科技有限公司 一种swf文件的校验方法及系统
CN107403089A (zh) * 2017-07-10 2017-11-28 东软集团股份有限公司 基于应用程序的资源篡改识别方法和装置
CN105068832B (zh) * 2015-07-30 2018-06-01 北京奇虎科技有限公司 一种生成可执行文件的方法和装置
CN108228269A (zh) * 2016-12-19 2018-06-29 江苏神州信源系统工程有限公司 一种分布式系统升级及校验方法
CN109409034A (zh) * 2018-09-17 2019-03-01 东软集团股份有限公司 应用程序的验证方法、平台、终端、系统、介质和设备
CN111199039A (zh) * 2018-11-20 2020-05-26 成都鼎桥通信技术有限公司 应用程序的安全性校验方法、装置及终端设备
CN111666078A (zh) * 2020-04-30 2020-09-15 平安科技(深圳)有限公司 源码加固方法、装置、计算机设备及存储介质
CN111767539A (zh) * 2020-05-15 2020-10-13 上海趣蕴网络科技有限公司 一种apk安全系统及安全校验方法
CN111950035A (zh) * 2020-06-18 2020-11-17 中国电力科学研究院有限公司 对apk文件完整性保护的方法、系统、设备及存储介质
CN112181448A (zh) * 2020-10-26 2021-01-05 江苏特思达电子科技股份有限公司 一种应用程序远程安装方法、装置及计算机设备
CN113031957A (zh) * 2020-12-16 2021-06-25 深圳市欢太科技有限公司 应用程序的安装方法、客户端、终端、服务器及存储介质
CN114791813A (zh) * 2022-04-25 2022-07-26 深圳市汇采技术有限公司 嵌入式镜像处理方法、嵌入式镜像校验方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101031859A (zh) * 2004-09-30 2007-09-05 Ttpcom有限公司 程序源代码保护
CN101207492A (zh) * 2006-12-21 2008-06-25 中兴通讯股份有限公司 避免下载错误文件的文件下载方法及装置
CN101795293A (zh) * 2010-01-27 2010-08-04 浪潮(北京)电子信息产业有限公司 一种文件的下载方法、系统及发送装置、检测装置
CN102087605A (zh) * 2011-01-28 2011-06-08 宇龙计算机通信科技(深圳)有限公司 一种基于android平台应用安装控制方法及系统
CN102236757A (zh) * 2011-06-30 2011-11-09 北京邮电大学 一种适用于Android系统的软件保护方法及系统
CN102546604A (zh) * 2011-12-22 2012-07-04 四川长虹电器股份有限公司 智能电视应用程序安全控制方法
US20120331457A1 (en) * 2011-06-21 2012-12-27 Samsung Electronics Co., Ltd. Method for installing application in portable terminal

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101031859A (zh) * 2004-09-30 2007-09-05 Ttpcom有限公司 程序源代码保护
CN101207492A (zh) * 2006-12-21 2008-06-25 中兴通讯股份有限公司 避免下载错误文件的文件下载方法及装置
CN101795293A (zh) * 2010-01-27 2010-08-04 浪潮(北京)电子信息产业有限公司 一种文件的下载方法、系统及发送装置、检测装置
CN102087605A (zh) * 2011-01-28 2011-06-08 宇龙计算机通信科技(深圳)有限公司 一种基于android平台应用安装控制方法及系统
US20120331457A1 (en) * 2011-06-21 2012-12-27 Samsung Electronics Co., Ltd. Method for installing application in portable terminal
CN102236757A (zh) * 2011-06-30 2011-11-09 北京邮电大学 一种适用于Android系统的软件保护方法及系统
CN102546604A (zh) * 2011-12-22 2012-07-04 四川长虹电器股份有限公司 智能电视应用程序安全控制方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106170763B (zh) * 2015-01-07 2019-10-18 华为技术有限公司 一种软件校验方法和装置
CN106170763A (zh) * 2015-01-07 2016-11-30 华为技术有限公司 一种软件校验方法和装置
US10796001B2 (en) 2015-01-07 2020-10-06 Huawei Technologies Co., Ltd. Software verification method and apparatus
CN104954353B (zh) * 2015-02-10 2018-03-30 腾讯科技(深圳)有限公司 Apk文件包的校验方法和装置
CN104954353A (zh) * 2015-02-10 2015-09-30 腾讯科技(深圳)有限公司 Apk文件包的校验方法和装置
CN104932902A (zh) * 2015-07-09 2015-09-23 魅族科技(中国)有限公司 一种生成apk文件的方法及终端
CN104932902B (zh) * 2015-07-09 2019-07-12 魅族科技(中国)有限公司 一种生成apk文件的方法及终端
CN105068832B (zh) * 2015-07-30 2018-06-01 北京奇虎科技有限公司 一种生成可执行文件的方法和装置
CN105740660B (zh) * 2016-01-20 2019-02-15 广州优视网络科技有限公司 一种应用安全性的检测方法及装置
CN105740660A (zh) * 2016-01-20 2016-07-06 广州彩瞳网络技术有限公司 一种应用安全性的检测方法及装置
CN106778099A (zh) * 2016-11-29 2017-05-31 北京奇虎科技有限公司 防篡改apk的生成方法和装置、安装及运行方法和装置
CN108228269A (zh) * 2016-12-19 2018-06-29 江苏神州信源系统工程有限公司 一种分布式系统升级及校验方法
CN106933695B (zh) * 2017-02-28 2020-06-16 武汉斗鱼网络科技有限公司 一种swf文件的校验方法及系统
CN106933695A (zh) * 2017-02-28 2017-07-07 武汉斗鱼网络科技有限公司 一种swf文件的校验方法及系统
CN107403089A (zh) * 2017-07-10 2017-11-28 东软集团股份有限公司 基于应用程序的资源篡改识别方法和装置
CN109409034A (zh) * 2018-09-17 2019-03-01 东软集团股份有限公司 应用程序的验证方法、平台、终端、系统、介质和设备
CN111199039A (zh) * 2018-11-20 2020-05-26 成都鼎桥通信技术有限公司 应用程序的安全性校验方法、装置及终端设备
CN111666078A (zh) * 2020-04-30 2020-09-15 平安科技(深圳)有限公司 源码加固方法、装置、计算机设备及存储介质
WO2021218173A1 (zh) * 2020-04-30 2021-11-04 平安科技(深圳)有限公司 源码加固方法、装置、计算机设备及存储介质
CN111767539A (zh) * 2020-05-15 2020-10-13 上海趣蕴网络科技有限公司 一种apk安全系统及安全校验方法
CN111950035A (zh) * 2020-06-18 2020-11-17 中国电力科学研究院有限公司 对apk文件完整性保护的方法、系统、设备及存储介质
CN112181448A (zh) * 2020-10-26 2021-01-05 江苏特思达电子科技股份有限公司 一种应用程序远程安装方法、装置及计算机设备
CN113031957A (zh) * 2020-12-16 2021-06-25 深圳市欢太科技有限公司 应用程序的安装方法、客户端、终端、服务器及存储介质
CN114791813A (zh) * 2022-04-25 2022-07-26 深圳市汇采技术有限公司 嵌入式镜像处理方法、嵌入式镜像校验方法及相关设备

Similar Documents

Publication Publication Date Title
CN104123481A (zh) 防止应用程序被篡改的方法及装置
US11093258B2 (en) Method for trusted booting of PLC based on measurement mechanism
CN107463806B (zh) 一种Android应用程序安装包的签名和验签方法
CN103559591B (zh) 基于可信计算的软件管理系统和管理方法
KR101740256B1 (ko) 모바일 앱 무결성 보증 장치 및 방법
US8799662B2 (en) Method and apparatus for validating the integrity of installer files prior to installation
CN106656513B (zh) 安卓平台上apk文件的二次打包签名验证方法
CN103530534B (zh) 一种基于签名验证的Android程序ROOT授权方法
CN107679393B (zh) 基于可信执行环境的Android完整性验证方法和装置
CN104933354A (zh) 一种基于可信计算的白名单静态度量方法
US20160357530A1 (en) Method and apparatus for intermediate representation of applications
CN107092824B (zh) 一种应用程序的运行方法及装置
CN101226569A (zh) 在虚拟机中验证代码模块的方法及装置
CN110333868B (zh) 用于生成子应用的安装包的方法和系统
CN101551843B (zh) 一种移动通信装置应用软件包的签名方法
MXPA05013801A (es) Sistemas y metodos para validar integridad de archivo ejecutable utilizando criptografias de imagen parciales.
CN102880456A (zh) 一种创建插件方法及装置
CN110995825B (zh) 一种智能合约的发布方法、智能节点设备及存储介质
CN104408370A (zh) 安卓系统安全性验证方法及其验证装置
CN104866739A (zh) 安卓系统中应用程序加密方法及系统
CN103177199A (zh) 网页应用代码保护方法及系统和执行的提速方法及系统
CN104573527A (zh) 一种基于更新安全机制的uefi系统更新方法
CN112231702B (zh) 应用保护方法、装置、设备及介质
WO2017050186A1 (zh) 一种应用权限管理方法以及智能pos终端
CN111143787B (zh) 提高Java软件破解难度的方法及装置、验证方法及验证装置

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: 20141029

RJ01 Rejection of invention patent application after publication