CN111767537A - 基于ios操作***的应用程序的篡改校验方法及相关设备 - Google Patents

基于ios操作***的应用程序的篡改校验方法及相关设备 Download PDF

Info

Publication number
CN111767537A
CN111767537A CN202010585011.6A CN202010585011A CN111767537A CN 111767537 A CN111767537 A CN 111767537A CN 202010585011 A CN202010585011 A CN 202010585011A CN 111767537 A CN111767537 A CN 111767537A
Authority
CN
China
Prior art keywords
character string
app
preset
identifier
packet name
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
CN202010585011.6A
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.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202010585011.6A priority Critical patent/CN111767537A/zh
Publication of CN111767537A publication Critical patent/CN111767537A/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

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

本发明涉及智能终端技术领域,提供一种基于IOS操作***的应用程序的篡改校验方法,包括:当检测到基于IOS操作***的应用程序APP启动时,从钩子hook***中获取所述APP的APP包名标识;将所述APP包名标识与保存的合法包名标识进行校验;若校验所述APP包名标识与所述合法包名标识一致,在预设的第一位置检测是否存在字符串;若在所述第一位置检测存在字符串,提取所述字符串并对所述字符串进行解密,获得解密时间戳;根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串;若所述字符串属于合法生成的字符串,确定所述APP未被篡改。本发明能够识别出APP是否被篡改。

Description

基于IOS操作***的应用程序的篡改校验方法及相关设备
技术领域
本发明涉及智能终端技术领域,尤其涉及一种基于IOS操作***的应用程序的篡改校验方法及相关设备。
背景技术
随着移动终端技术的发展,越来越多的用户选择使用移动终端下载的各种应用程序来完成日常生活乃至工作相关的各种事项,例如缴费、购物、安排日程计划等等。在用户使用应用程序的过程中,应用程序可能被恶意代码侵入,而用户却未发觉,仍然在继续使用APP,导致产生不良影响。
因此,如何确定应用程序是否被篡改是一个急需解决的技术问题。
发明内容
鉴于以上内容,有必要提供一种基于IOS操作***的应用程序的篡改校验方法及相关设备,能够识别出APP是否被篡改。
本发明的第一方面提供一种基于IOS操作***的应用程序的篡改校验方法,所述方法包括:
当检测到基于IOS操作***的应用程序APP启动时,从钩子hook***中获取所述APP的APP包名标识;
将所述APP包名标识与保存的合法包名标识进行校验;
若校验所述APP包名标识与所述合法包名标识一致,在预设的第一位置检测是否存在字符串;
若在所述第一位置检测存在字符串,提取所述字符串并对所述字符串进行解密,获得解密时间戳;
根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串;
若所述字符串属于合法生成的字符串,确定所述APP未被篡改。
在一种可能的实现方式中,所述基于IOS操作***的应用程序的篡改校验方法还包括:
将***类获取包名的***方法替换为预定义方法;
通过所述预定义方法,根据当前的时间戳以及预设标识,生成字符串,将所述字符串保存在所述第一位置上;
重新调用所述***方法。
在一种可能的实现方式中,所述根据当前的时间戳以及预设标识,生成字符串包括:
对所述时间戳以及预设标识进行加密,获得中间加密数据;
对所述中间加密数据进行加密,获得字符串。
在一种可能的实现方式中,所述根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串包括:
判断提取的所述字符串在预设的第二位置的部分字符串是否为所述预设标识;
若提取的所述字符串在预设的第二位置的部分字符串为所述预设标识,判断所述解密时间戳是否在有效期内;
若所述解密时间戳在有效期内,确定所述字符串属于合法生成的字符串。
在一种可能的实现方式中,所述基于IOS操作***的应用程序的篡改校验方法还包括:
若提取的所述字符串在预设的第二位置的部分字符串不是所述预设标识,或,所述解密时间戳不在有效期内,确定所述字符串属于非法生成的字符串。
在一种可能的实现方式中,所述根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串包括:
判断提取的所述字符串在预设的第二位置的部分字符串是否为所述预设标识;
若提取的所述字符串在预设的第二位置的部分字符串为所述预设标识,计算当前时间的时间戳与所述解密时间戳的时间差值;
判断所述时间差值是否在预设时间范围内;
若所述时间差值在预设时间范围内,确定所述字符串属于合法生成的字符串。
在一种可能的实现方式中,所述基于IOS操作***的应用程序的篡改校验方法还包括:
若校验所述APP包名标识与所述合法包名标识不一致,或,在所述第一位置未检测存在字符串,或,所述字符串属于非法生成的字符串,确定所述AP未被篡改;
采取风控策略,所述风控策略包括:向服务器上报异常信息,或,控制所述APP退出。
本发明的第二方面提供一种篡改校验装置,所述篡改校验装置包括:
获取模块,用于当检测到基于IOS操作***的应用程序APP启动时,从钩子hook***中获取所述APP的APP包名标识;
校验模块,用于将所述APP包名标识与保存的合法包名标识进行校验;
所述校验模块,还用于若校验所述APP包名标识与所述合法包名标识一致,在预设的第一位置检测是否存在字符串;
提取模块,用于若在所述第一位置检测存在字符串,提取所述字符串并对所述字符串进行解密,获得解密时间戳;
判断模块,用于根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串;
确定模块,用于若所述字符串属于合法生成的字符串,确定所述APP未被篡改。
本发明的第三方面提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的基于IOS操作***的应用程序的篡改校验方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于IOS操作***的应用程序的篡改校验方法。
在上述技术方案中,通过校验包名标识以及字符串,能够识别出APP是否被篡改,同时,通过内置的方法代替***的方法来对黑客进行干扰,增加了APP被篡改运行的难度,有效地进行了APP被篡改的反防范。
附图说明
图1是本发明公开的一种基于IOS操作***的应用程序的篡改校验方法的较佳实施例的流程图。
图2是本发明公开的一种篡改校验装置的较佳实施例的功能模块图。
图3是本发明实现基于IOS操作***的应用程序的篡改校验方法方法的较佳实施例的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、嵌入式设备等。所述电子设备还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理PDA等。
请参见图1,图1是本发明公开的一种基于IOS操作***的应用程序的篡改校验方法的较佳实施例的流程图。其中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11、当检测到基于IOS操作***的应用程序APP启动时,从钩子hook***中获取所述APP的APP包名标识。
S12、将所述APP包名标识与保存的合法包名标识进行校验。
S13、若校验所述APP包名标识与所述合法包名标识一致,在预设的第一位置检测是否存在字符串。
其中,如果第一位置检测存在字符串,表明预先设置的拦截方法成功,反之,如果第一位置检测不存在字符串,表明黑客的拦截方法被优先编译了,本案设置的拦截方法失败。
可选的,所述方法还包括:
将***类获取包名的***方法替换为预定义方法;
通过所述预定义方法,根据当前的时间戳以及预设标识,生成字符串,将所述字符串保存在所述第一位置上;
重新调用所述***方法。
具体的,可以采用MethodSwizzling技术,将NSBundle***类获取包名的bundleIdentifier方法替换为swizzle_phBundleIdentifier方法;通过所述swizzle_phBundleIdentifier方法,根据当前的时间戳以及预设标识,生成字符串,将所述字符串保存在第一位置上;重新调用***的bundleIdentifier方法。
其中,该可选的实施例提供了一种反拦截的方法。
该实施例利用了category分类load()方法的特性进行防范。当有多个分类在load()中交换同一方法时,只会编译一个。
基于此,本案采用的拦截方法是:在内部可以实现一个NSBundle的category分类,在分类中load()方法里,对NSBundle***类获取包名的方法bundleIdentifier进行交换,替换成我们自己的方法,即swizzle_phBundleIdentifier方法。对于***来说,我们的拦截方法和黑客的拦截方法只能选择一个进行编译,如果我们的拦截方法成功了,则黑客的拦截方法就无法成功,因此可以防止黑客篡改APP。
现有技术中,黑客采用的拦截方法是:通过创建NSBundle的category分类,在分类的load()方法里进行对NSBundle***类获取包名的方法bundleIdentifier进行交换,替换成他自己的方法,返回我们原有的包名。
通过上述对比可知,黑客的拦截方法是完全将***的包名获取方法替换成了黑客自己的方法,通过黑客自己的方法来返回包名,是非法的,而本案的拦截方法是先将***的包名获取方法替换成我们自己的方法,通过我们自己的方法来生成字符串,用于后续校验,之后,仍然重新调用***方法去获取包名,即本案的拦截方法并没有改变***获取包名的方式,是合法的。通过本案的反拦截方法,可以更有效地对高级黑客的反防范进行更高的反防范,提高APP的安全。
具体的,所述根据当前的时间戳以及预设标识,生成字符串包括:
对所述时间戳以及预设标识进行BASE64和AES加密,获得中间加密数据;
对所述中间加密数据进行RSA加密,获得字符串。
举例来说,预设标识为PAHHOOKBUNDLEID,时间戳为1578997880。
S14、若在所述第一位置检测存在字符串,提取所述字符串并对所述字符串进行解密,获得解密时间戳。
其中,该解密时间戳即生成字符串时的时间戳。
S15、根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串。
具体的,所述根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串包括:
判断提取的所述字符串在预设的第二位置的部分字符串是否为所述预设标识;
若提取的所述字符串在预设的第二位置的部分字符串为所述预设标识,判断所述解密时间戳是否在有效期内;
若所述解密时间戳在有效期内,确定所述字符串属于合法生成的字符串。
其中,第二位置可以为所述字符串按照读取顺序靠前的几个位置,比如字符串为ABCDEFG,第二位置为靠前的3个位置,则提取的部分字符串为ABC。
其中,在生成字符串时,还可以设置字符串的时间戳的有效期,即该时间戳在有效期内是有效的,而一旦超出该有效期的范围,该时间戳就无效了。
通过校验时间戳的方式,可以防止黑客拦截上一次的字符串,并将上一次的字符串保存在本地中,以混淆本次对字符串的校验。
所述方法还包括:
若提取的所述字符串在预设的第二位置的部分字符串不是所述预设标识,或,所述解密时间戳不在有效期内,确定所述字符串属于非法生成的字符串。
具体的,所述根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串包括:
判断提取的所述字符串在预设的第二位置的部分字符串是否为所述预设标识;
若提取的所述字符串在预设的第二位置的部分字符串为所述预设标识,计算当前时间的时间戳与所述解密时间戳的时间差值;
判断所述时间差值是否在预设时间范围内;
若所述时间差值在预设时间范围内,确定所述字符串属于合法生成的字符串。
其中,可以设置预设时间范围比如5s,如果当前时间的时间戳与所述解密时间戳的时间差值在5s范围内,表明字符串生成的时间戳与当前的时间戳的间隔较短,该字符串是有效的,可以确定该字符串为合法生成的字符串。
S16、若所述字符串属于合法生成的字符串,确定所述APP未被篡改。
可选的,所述方法还包括:
若校验所述APP包名标识与所述合法包名标识不一致,或,在所述第一位置未检测存在字符串,或,所述字符串属于非法生成的字符串,确定所述AP未被篡改;
采取风控策略,所述风控策略包括:向服务器上报异常信息,或,控制所述APP退出。
其中,异常信息可以包括但不限于电子设备当前所处的地理位置、电子设备的设备信息、用户在电子设备的APP上的登录信息等。电子设备上报异常信息,有利于服务器将该电子设备的相关信息录入黑名单,避免后续再次发生黑客入侵APP的事件,提高APP的安全性。
在图1所描述的方法流程中,通过校验包名标识以及字符串,能够识别出APP是否被篡改,同时,通过内置的方法代替***的方法来对黑客进行干扰,增加了APP被篡改运行的难度,有效地进行了APP被篡改的反防范。
以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
请参见图2,图2是本发明公开的一种篡改校验装置的较佳实施例的功能模块图。
在一些实施例中,所述篡改校验装置运行于电子设备中。所述篡改校验装置可以包括多个由程序代码段所组成的功能模块。所述篡改校验装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的基于IOS操作***的应用程序的篡改校验方法中的部分或全部步骤,具体请参照图1中的相关描述,在此不再赘述。
本实施例中,所述篡改校验装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:获取模块201、校验模块202、提取模块203、判断模块204及确定模块205。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在本实施例中详述。
获取模块201,用于当检测到基于IOS操作***的应用程序APP启动时,从钩子hook***中获取所述APP的APP包名标识。
校验模块202,用于将所述APP包名标识与保存的合法包名标识进行校验。
所述校验模块202,还用于若校验所述APP包名标识与所述合法包名标识一致,在预设的第一位置检测是否存在字符串。
其中,如果第一位置检测存在字符串,表明预先设置的拦截方法成功,反之,如果第一位置检测不存在字符串,表明黑客的拦截方法被优先编译了,本案设置的拦截方法失败。
提取模块203,用于若在所述第一位置检测存在字符串,提取所述字符串并对所述字符串进行解密,获得解密时间戳。
其中,该解密时间戳即生成字符串时的时间戳。
判断模块204,用于根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串。
具体的,所述根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串包括:
判断提取的所述字符串在预设的第二位置的部分字符串是否为所述预设标识;
若提取的所述字符串在预设的第二位置的部分字符串为所述预设标识,判断所述解密时间戳是否在有效期内;
若所述解密时间戳在有效期内,确定所述字符串属于合法生成的字符串。
其中,第二位置可以为所述字符串按照读取顺序靠前的几个位置,比如字符串为ABCDEFG,第二位置为靠前的3个位置,则提取的部分字符串为ABC。
其中,在生成字符串时,还可以设置字符串的时间戳的有效期,即该时间戳在有效期内是有效的,而一旦超出该有效期的范围,该时间戳就无效了。
通过校验时间戳的方式,可以防止黑客拦截上一次的字符串,并将上一次的字符串保存在本地中,以混淆本次对字符串的校验。
确定模块205,用于若所述字符串属于合法生成的字符串,确定所述APP未被篡改。
所述确定模块205,还用于若提取的所述字符串在预设的第二位置的部分字符串不是所述预设标识,或,所述解密时间戳不在有效期内,确定所述字符串属于非法生成的字符串。
具体的,所述根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串包括:
判断提取的所述字符串在预设的第二位置的部分字符串是否为所述预设标识;
若提取的所述字符串在预设的第二位置的部分字符串为所述预设标识,计算当前时间的时间戳与所述解密时间戳的时间差值;
判断所述时间差值是否在预设时间范围内;
若所述时间差值在预设时间范围内,确定所述字符串属于合法生成的字符串。
其中,可以设置预设时间范围比如5s,如果当前时间的时间戳与所述解密时间戳的时间差值在5s范围内,表明字符串生成的时间戳与当前的时间戳的间隔较短,该字符串是有效的,可以确定该字符串为合法生成的字符串。
可选的,所述确定模块205,还用于若校验所述APP包名标识与所述合法包名标识不一致,或,在所述第一位置未检测存在字符串,或,所述字符串属于非法生成的字符串,确定所述AP未被篡改;
可选的,所述篡改校验装置还包括:
采取模块,用于采取风控策略,所述风控策略包括:向服务器上报异常信息,或,控制所述APP退出。
其中,异常信息可以包括但不限于电子设备当前所处的地理位置、电子设备的设备信息、用户在电子设备的APP上的登录信息等。电子设备上报异常信息,有利于服务器将该电子设备的相关信息录入黑名单,避免后续再次发生黑客入侵APP的事件,提高APP的安全性。
可选的,所述篡改校验装置还包括:
替换模块,用于将***类获取包名的***方法替换为预定义方法;
生成模块,用于通过所述预定义方法,根据当前的时间戳以及预设标识,生成字符串,将所述字符串保存在所述第一位置上;
调用模块,用于重新调用所述***方法。
具体的,可以采用MethodSwizzling技术,将NSBundle***类获取包名的bundleIdentifier方法替换为swizzle_phBundleIdentifier方法;通过所述swizzle_phBundleIdentifier方法,根据当前的时间戳以及预设标识,生成字符串,将所述字符串保存在第一位置上;重新调用***的bundleIdentifier方法。
其中,该可选的实施例提供了一种反拦截的方法。
该实施例利用了category分类load()方法的特性进行防范。当有多个分类在load()中交换同一方法时,只会编译一个。
基于此,本案采用的拦截方法是:在内部可以实现一个NSBundle的category分类,在分类中load()方法里,对NSBundle***类获取包名的方法bundleIdentifier进行交换,替换成我们自己的方法,即swizzle_phBundleIdentifier方法。对于***来说,我们的拦截方法和黑客的拦截方法只能选择一个进行编译,如果我们的拦截方法成功了,则黑客的拦截方法就无法成功,因此可以防止黑客篡改APP。
现有技术中,黑客采用的拦截方法是:通过创建NSBundle的category分类,在分类的load()方法里进行对NSBundle***类获取包名的方法bundleIdentifier进行交换,替换成他自己的方法,返回我们原有的包名。
通过上述对比可知,黑客的拦截方法是完全将***的包名获取方法替换成了黑客自己的方法,通过黑客自己的方法来返回包名,是非法的,而本案的拦截方法是先将***的包名获取方法替换成我们自己的方法,通过我们自己的方法来生成字符串,用于后续校验,之后,仍然重新调用***方法去获取包名,即本案的拦截方法并没有改变***获取包名的方式,是合法的。通过本案的反拦截方法,可以更有效地对高级黑客的反防范进行更高的反防范,提高APP的安全。
具体的,所述根据当前的时间戳以及预设标识,生成字符串包括:
对所述时间戳以及预设标识进行BASE64和AES加密,获得中间加密数据;
对所述中间加密数据进行RSA加密,获得字符串。
举例来说,预设标识为PAHHOOKBUNDLEID,时间戳为1578997880。
在图2所描述的装置中,通过校验包名标识以及字符串,能够识别出APP是否被篡改,同时,通过内置的方法代替***的方法来对黑客进行干扰,增加了APP被篡改运行的难度,有效地进行了APP被篡改的反防范。
如图3所示,图3是本发明实现基于IOS操作***的应用程序的篡改校验方法的较佳实施例的电子设备的结构示意图。所述电子设备3包括存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。
本领域技术人员可以理解,图3所示的示意图仅仅是所述电子设备3的示例,并不构成对所述电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备3还可以包括输入输出设备、网络接入设备等。
所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述电子设备3的控制中心,利用各种接口和线路连接整个电子设备3的各个部分。
所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述电子设备3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备3的使用所创建的数据(比如音频数据)等。此外,存储器31可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
结合图1,所述电子设备3中的所述存储器31存储多个指令以实现一种基于IOS操作***的应用程序的篡改校验方法,所述处理器32可执行所述多个指令从而实现:
当检测到基于IOS操作***的应用程序APP启动时,从钩子hook***中获取所述APP的APP包名标识;
将所述APP包名标识与保存的合法包名标识进行校验;
若校验所述APP包名标识与所述合法包名标识一致,在预设的第一位置检测是否存在字符串;
若在所述第一位置检测存在字符串,提取所述字符串并对所述字符串进行解密,获得解密时间戳;
根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串;
若所述字符串属于合法生成的字符串,确定所述APP未被篡改。
具体地,所述处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在图3所描述的电子设备3中,通过校验包名标识以及字符串,能够识别出APP是否被篡改,同时,通过内置的方法代替***的方法来对黑客进行干扰,增加了APP被篡改运行的难度,有效地进行了APP被篡改的反防范。
所述电子设备3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器以及只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。***权利要求中陈述的多个单元或装置也可以通过软件或者硬件来实现。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种基于IOS操作***的应用程序的篡改校验方法,其特征在于,所述方法包括:
当检测到基于IOS操作***的应用程序APP启动时,从钩子hook***中获取所述APP的APP包名标识;
将所述APP包名标识与保存的合法包名标识进行校验;
若校验所述APP包名标识与所述合法包名标识一致,在预设的第一位置检测是否存在字符串;
若在所述第一位置检测存在字符串,提取所述字符串并对所述字符串进行解密,获得解密时间戳;
根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串;
若所述字符串属于合法生成的字符串,确定所述APP未被篡改。
2.根据权利要求1所述的基于IOS操作***的应用程序的篡改校验方法,其特征在于,所述基于IOS操作***的应用程序的篡改校验方法还包括:
将***类获取包名的***方法替换为预定义方法;
通过所述预定义方法,根据当前的时间戳以及预设标识,生成字符串,将所述字符串保存在所述第一位置上;
重新调用所述***方法。
3.根据权利要求2所述的基于IOS操作***的应用程序的篡改校验方法,其特征在于,所述根据当前的时间戳以及预设标识,生成字符串包括:
对所述时间戳以及预设标识进行加密,获得中间加密数据;
对所述中间加密数据进行加密,获得字符串。
4.根据权利要求1所述的基于IOS操作***的应用程序的篡改校验方法,其特征在于,所述根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串包括:
判断提取的所述字符串在预设的第二位置的部分字符串是否为所述预设标识;
若提取的所述字符串在预设的第二位置的部分字符串为所述预设标识,判断所述解密时间戳是否在有效期内;
若所述解密时间戳在有效期内,确定所述字符串属于合法生成的字符串。
5.根据权利要求4所述的基于IOS操作***的应用程序的篡改校验方法,其特征在于,所述基于IOS操作***的应用程序的篡改校验方法还包括:
若提取的所述字符串在预设的第二位置的部分字符串不是所述预设标识,或,所述解密时间戳不在有效期内,确定所述字符串属于非法生成的字符串。
6.根据权利要求4所述的基于IOS操作***的应用程序的篡改校验方法,其特征在于,所述根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串包括:
判断提取的所述字符串在预设的第二位置的部分字符串是否为所述预设标识;
若提取的所述字符串在预设的第二位置的部分字符串为所述预设标识,计算当前时间的时间戳与所述解密时间戳的时间差值;
判断所述时间差值是否在预设时间范围内;
若所述时间差值在预设时间范围内,确定所述字符串属于合法生成的字符串。
7.根据权利要求1所述的基于IOS操作***的应用程序的篡改校验方法,其特征在于,所述基于IOS操作***的应用程序的篡改校验方法还包括:
若校验所述APP包名标识与所述合法包名标识不一致,或,在所述第一位置未检测存在字符串,或,所述字符串属于非法生成的字符串,确定所述AP未被篡改;
采取风控策略,所述风控策略包括:向服务器上报异常信息,或,控制所述APP退出。
8.一种篡改校验装置,其特征在于,所述篡改校验装置包括:
获取模块,用于当检测到基于IOS操作***的应用程序APP启动时,从钩子hook***中获取所述APP的APP包名标识;
校验模块,用于将所述APP包名标识与保存的合法包名标识进行校验;
所述校验模块,还用于若校验所述APP包名标识与所述合法包名标识一致,在预设的第一位置检测是否存在字符串;
提取模块,用于若在所述第一位置检测存在字符串,提取所述字符串并对所述字符串进行解密,获得解密时间戳;
判断模块,用于根据提取的所述字符串以及所述解密时间戳,判断所述字符串是否属于合法生成的字符串;
确定模块,用于若所述字符串属于合法生成的字符串,确定所述APP未被篡改。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至7中任意一项所述的基于IOS操作***的应用程序的篡改校验方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至7任意一项所述的基于IOS操作***的应用程序的篡改校验方法。
CN202010585011.6A 2020-06-23 2020-06-23 基于ios操作***的应用程序的篡改校验方法及相关设备 Pending CN111767537A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010585011.6A CN111767537A (zh) 2020-06-23 2020-06-23 基于ios操作***的应用程序的篡改校验方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010585011.6A CN111767537A (zh) 2020-06-23 2020-06-23 基于ios操作***的应用程序的篡改校验方法及相关设备

Publications (1)

Publication Number Publication Date
CN111767537A true CN111767537A (zh) 2020-10-13

Family

ID=72722328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010585011.6A Pending CN111767537A (zh) 2020-06-23 2020-06-23 基于ios操作***的应用程序的篡改校验方法及相关设备

Country Status (1)

Country Link
CN (1) CN111767537A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463242A (zh) * 2020-12-17 2021-03-09 南方电网电力科技股份有限公司 一种电能表操作***启动方法、装置、电能表及存储介质
CN113609478A (zh) * 2021-07-16 2021-11-05 浙江吉利控股集团有限公司 一种ios平台应用程序篡改检测方法及装置
CN114390200A (zh) * 2022-01-12 2022-04-22 平安科技(深圳)有限公司 相机作弊识别方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199657A (zh) * 2014-08-27 2014-12-10 百度在线网络技术(北京)有限公司 开放平台的调用方法及装置
CN105471877A (zh) * 2015-12-03 2016-04-06 小米科技有限责任公司 证明资料获取方法及装置
CN106020645A (zh) * 2016-05-16 2016-10-12 北京新美互通科技有限公司 一种应用程序启动方法和装置
CN106096381A (zh) * 2016-06-06 2016-11-09 北京壹人壹本信息科技有限公司 应用程序文件验证的方法及***
CN106548065A (zh) * 2016-10-27 2017-03-29 海信集团有限公司 应用程序安装检测方法及装置
CN108683712A (zh) * 2018-04-25 2018-10-19 咪咕文化科技有限公司 应用程序校验及校验密钥的生成方法、装置及存储介质
CN110135152A (zh) * 2019-03-28 2019-08-16 江苏通付盾信息安全技术有限公司 应用程序攻击检测方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199657A (zh) * 2014-08-27 2014-12-10 百度在线网络技术(北京)有限公司 开放平台的调用方法及装置
CN105471877A (zh) * 2015-12-03 2016-04-06 小米科技有限责任公司 证明资料获取方法及装置
CN106020645A (zh) * 2016-05-16 2016-10-12 北京新美互通科技有限公司 一种应用程序启动方法和装置
CN106096381A (zh) * 2016-06-06 2016-11-09 北京壹人壹本信息科技有限公司 应用程序文件验证的方法及***
CN106548065A (zh) * 2016-10-27 2017-03-29 海信集团有限公司 应用程序安装检测方法及装置
CN108683712A (zh) * 2018-04-25 2018-10-19 咪咕文化科技有限公司 应用程序校验及校验密钥的生成方法、装置及存储介质
CN110135152A (zh) * 2019-03-28 2019-08-16 江苏通付盾信息安全技术有限公司 应用程序攻击检测方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463242A (zh) * 2020-12-17 2021-03-09 南方电网电力科技股份有限公司 一种电能表操作***启动方法、装置、电能表及存储介质
CN113609478A (zh) * 2021-07-16 2021-11-05 浙江吉利控股集团有限公司 一种ios平台应用程序篡改检测方法及装置
CN114390200A (zh) * 2022-01-12 2022-04-22 平安科技(深圳)有限公司 相机作弊识别方法、装置、设备及存储介质
CN114390200B (zh) * 2022-01-12 2023-04-14 平安科技(深圳)有限公司 相机作弊识别方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN109492378B (zh) 一种基于设备识别码的身份验证方法、服务器及介质
CN110113167B (zh) 一种智能终端的信息保护方法、***以及可读存储介质
CN108985081B (zh) 一种水印加密方法、装置、介质和电子设备
CN108268354B (zh) 数据安全监控方法、后台服务器、终端及***
CN112217835B (zh) 报文数据的处理方法、装置、服务器和终端设备
CN111767537A (zh) 基于ios操作***的应用程序的篡改校验方法及相关设备
CN109561085B (zh) 一种基于设备识别码的身份验证方法、服务器及介质
Allix et al. A Forensic Analysis of Android Malware--How is Malware Written and How it Could Be Detected?
CN105262779B (zh) 身份认证方法、装置及***
WO2019209630A1 (en) File processing method and system, and data processing method
CN108763951B (zh) 一种数据的保护方法及装置
CN113489713A (zh) 网络攻击的检测方法、装置、设备及存储介质
CN111797430A (zh) 数据校验方法、装置、服务器及存储介质
JP5049185B2 (ja) 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法
CN108681671A (zh) 一种Android移动攻击溯源方法
CN108763062B (zh) 埋点名称的过滤方法及终端设备
CN111259382A (zh) 恶意行为识别方法、装置、***和存储介质
CN112347511A (zh) 基于权限的数据屏蔽方法、装置、计算机设备及存储介质
Liccardi et al. Improving mobile app selection through transparency and better permission analysis
CN111353138A (zh) 一种异常用户识别的方法、装置、电子设备及存储介质
CN103034810B (zh) 一种检测方法、装置及电子设备
CN109784051B (zh) 信息安全防护方法、装置及设备
CN110443039A (zh) 插件安全性的检测方法、装置以及电子设备
CN107948973B (zh) 一种应用于安全风险控制的ios***的设备指纹生成方法
CN109284608B (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
AD01 Patent right deemed abandoned

Effective date of abandoning: 20240524

AD01 Patent right deemed abandoned