CN108959860B - 一种检测Android***是否被破解和破解记录获取方法 - Google Patents

一种检测Android***是否被破解和破解记录获取方法 Download PDF

Info

Publication number
CN108959860B
CN108959860B CN201810801104.0A CN201810801104A CN108959860B CN 108959860 B CN108959860 B CN 108959860B CN 201810801104 A CN201810801104 A CN 201810801104A CN 108959860 B CN108959860 B CN 108959860B
Authority
CN
China
Prior art keywords
cracking
android
frida
steps
following
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
CN201810801104.0A
Other languages
English (en)
Other versions
CN108959860A (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.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information 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 Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN201810801104.0A priority Critical patent/CN108959860B/zh
Publication of CN108959860A publication Critical patent/CN108959860A/zh
Application granted granted Critical
Publication of CN108959860B publication Critical patent/CN108959860B/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及检测Android***是否被破解和破解记录获取方法,包括以下步骤:S100:采集***中的特定文件,将该特定文件使用算法合成一特定值,将该特定值进行保存并上传到云端服务器中,实时判断该特定值是否发生变更,当发生变更时,进入S200;S200:采集***用户数据并上传到云端服务器中;S300:判断***是否被root,如果被root,进入步骤S400,否则,返回S100;S400:检查逆向工具的架构,获取逆向工具对应的破解记录文档,将获取的破解记录文档上传到云端服务器。本发明通过将逆向工具的文件合成唯一的特定值,通过对特定值变化的判断来判断***是否被破解,当被破解时,根据逆向工具的架构,进行反向注入,追踪破解行为,进而获取对应的破解记录文档。

Description

一种检测Android***是否被破解和破解记录获取方法
技术领域
本发明涉及***安全技术领域,尤其涉及一种检测Android***是否被破解和破解记录获取方法。
背景技术
Android***是目前最流行的智能操作***,其普及范围远远的超过了苹果和黑莓等智能操作***,由于很多非法用户想要获取***中用户的敏感数据,因此他们需要对Android操作***进行破解。Android***为了保护***数据的安全,在安全方面投入了很多方面的努力,然而没有绝对安全的***,必然存在漏洞被人利用,现有的逆向破解工具层出不穷,进而引发各种Android***的安全问题。
现阶段的Android***保护方面主要在于操作***和应用的安全的加固方案,比如***的自主访问控制、强制访问控制、TrustZone和应用的加壳等,防止被人破解,然而并没有一种自动检测到破解行为后的具体可行的处理方案。
发明内容
针对上述问题,本发明旨在提供一种检测Android***是否被破解和破解记录获取方法,通过在判断存在被破解的行为后,记录破解者破解的过程、方法和目的。
具体方案如下:
一种检测Android***是否被破解和破解记录获取方法,包括以下步骤:
S100:采集***中的特定文件,所述特定文件包括***自带的文件和逆向工具生成的文件,将该特定文件使用加密算法合成一特定值,将该特定值进行保存并上传到云端服务器中,实时判断该特定值是否发生变更,当发生变更时,进入S200;
S200:采集***用户数据并上传到云端服务器中;
S300:判断***是否被root,如果被root,进入步骤S400,否则,返回S100;
S400:检查逆向工具的架构,获取逆向工具对应的破解记录文档,将获取的破解记录文档上传到云端服务器。
进一步的,步骤S300中的判断方式为:当下面四种方式中的其中一种成立时,则判定***被root:
方式一:/syste/bin/或者/system/xbin目录下存在su文件;
方式二:***的根目录下可以写入;
方式三:selinux可以设置为Permissive模式;
方式四:需要root权限的命令可以执行。
进一步的,所述***自带的文件为手机序列号文件。
进一步的,所述***用户数据包括用户信息、手机号、位置定位、手机型号、当前***版本、内核和手机序列号。
进一步的,步骤S100中,所述逆向工具包括:Xposed、Frida、smalidea和IDA PRO,步骤S400具体包括:
S410:检查Xposed架构,以获得Xposed的破解记录文档;
具体包括以下步骤:
步骤1:判断是否存在
/data/data/de.robv.android.Xposed.installer/bin/XposedBridge.jar文件,当存在时,进入步骤2;
步骤2:在/proc/进程ID/maps目录中检查是否存在Xposed模块,当存在时,进入步骤3;
步骤3:检查/system/bin/app_process是否被修改,如果被修改,分析Xposed架构的原理和函数,自定义反向HOOK Xposed的执行函数,以获得Xposed的破解记录文档,即Xposed的HOOK的应用程序和HOOK的函数;
S420:检查Frida架构,以获得Frida的破解记录文档,所述Frida的破解记录文档包括Frida的HOOK的应用程序、HOOK的函数、Frida的客户端服务程序和Android和pc端之间的交互数据;
具体包括以下步骤:
步骤1:检查***中是否存在Frida_server,如果存在则通过对Frida_server中的函数进行逆向分析获取需要HOOK的函数,注入反向HOOK函数,来获取Frida的HOOK的应用程序和HOOK的函数;
步骤2:监视Frida模块的tcp端口,以获得Android***中Frida的客户端服务程序和Android和pc端之间交互的数据;
S430:使用为smalidea进行动态调试应用程序,以获得smalidea的破解记录文档,即Android和pc端的交互数据;
具体包括以下步骤:
步骤1:检查AndroidManifest.xml是否被更改为debugage模式,当被更改时,进入步骤2;
步骤2:检查default.prop文件中ro.debuggable是否为调试模式,当为调试模式时,进入步骤3;
步骤3:检查smalidea的tcp端口是否处于调试模式,当处于调试模式时,获取Android和pc端的交互数据;
S440:使用为IDA PRO进行动态调试应用程序,以获得IDA PRO的破解记录文档,即调试数据;
具体包括以下步骤:
步骤1:检查TracerPid是否被调试,当被调试时,进入步骤2;
步骤2:监视IDA PRO的tcp端口,并查找IDA PRO的客户端服务程序,然后通过该客户端服务程序获取调试数据。
本发明采用如上技术方案,通过将主流的破解逆向工具的文件合成唯一的用于判别的特定值,通过对特定值变化的判断来判断***是否被破解,当被破解时,根据逆向工具的架构,进行反向注入,追踪破解行为,进而获取对应的破解记录文档。
附图说明
图1所示为本发明实施例一的流程示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
参考图1所示,本发明提供了一种检测Android***是否被破解和破解记录获取方法,所述破解包括***被root,***应用被HOOK注入,应用被逆向工具调试等,包括以下步骤:
S100:采集***中的特定文件,所述特定文件包括***自带的文件和逆向工具生成的文件,将该特定文件使用加密算法合成一特定值,将该特定值进行保存并上传到云端服务器中,实时判断该特征值是否发生变更,当发生变更时,进入S200。
所述逆向工具为Xposed、cydia Substrate、Frida、smalidea、IDA PRO、JEB和gdb等主流的逆向破解工具,该实施例中选用Xposed、Frida、smalidea和IDAPRO四种逆向工具。
所述***自带的文件为***本身包含的文件,该实施例中优选采用手机序列号(International Mobile Equipment Identity,IMEI)文件,因为其他的***自带文件可能在***升级时进行变更,而手机序列号文件不会变更,不会对后续的特定值变更的判断造成影响。
所述逆向工具生成的文件可以为:/system/bin/app_process、/system/xbin/su、default.prop或data/data/de.robv.android.Xposed.installer/bin/XposedBridge.jar等。
所述加密算法可以为哈希算法如MD5等常用的加密算法。所述特征值为能够检测***是否被破解的唯一特定值,该实施例中为使用MD5算法生成的值。
本领域人员可知,当***被破解时,可以是被一种或者多种逆向工具破解,此时上述对应特定逆向工具的特定文件将会被改变,当上述的特定文件被改变时,其计算的特定值也会改变,因此通过检查当前的特定值是否改变即可判断***是否被破解。
需要说明的是,一般破解应用和***程序主要有两种方式:一、使用HOOK模块嵌入到应用程序中,其中HOOK架构实现方式为在应用的函数调用前或者后面进行挂钩,***需要相应的操作,比如获取参数值,变更参数值,主动调用函数。二、使用动态调试的方式,在应用程序的相应函数下断点,通过调试方式获得程序运行时的值,从而获取应用程序的敏感信息。
S200:采集***用户数据并上传到云端服务器中。
所述***用户数据为用户终端的硬件信息和***的信息,在该实施例中具体为:用户信息、手机号、位置定位、手机型号、当前***版本、内核和手机序列号等。
S300:判断***是否被root,如果被root,进入步骤S400,否则,返回S100。
在一种可能的实施方式中,通过下面四种方式均可判断***是否被root,其中一种方式成立时,则判定***被root,本领域技术人员可以选择其中一种或多种方式来进行判断。
方式一:/syste/bin/或者/system/xbin目录下存在su文件。
方式二:***的根目录下可以写入。
方式三:selinux可设置为Permissive模式。
方式四:需要root权限的命令可以执行。
所述需要root权限的命令为mount和su等。
S400:检查逆向工具的架构,获取逆向工具对应的破解记录文档,将获取的破解记录文档上传到云端服务器。
该实施例中,由于所述逆向工具为Xposed、Frida、smalidea和IDA PRO四种,因此下面针对此四种逆向工具的破解记录文档的获取过程进行详细介绍。
S410:检查Xposed架构,以获得Xposed的破解记录文档。
Xposed是一个很流行的HOOK架构,被称为Android HOOK神器,可以HOOK Androidjava层的任何函数,进行获取,修改函数参数值,调用java层的函数,进而获取应用的数据。
具体包括以下步骤:
步骤1:判断是否存在
/data/data/de.robv.android.Xposed.installer/bin/XposedBridge.jar文件,当存在时,进入步骤2。
步骤2:在/proc/进程ID/maps目录中检查是否存在Xposed模块,当存在时,进入步骤3。
步骤3:检查/system/bin/app_process是否被修改,如果被修改,分析Xposed架构的原理和函数,自定义反向HOOK Xposed的执行函数,以获得Xposed的破解记录文档,即Xposed的HOOK的应用程序和HOOK的函数。
需要说明的是,当/system/bin/app_process被修改时,通常存在/system/bin/app_process.org文件,此时注入代码到app_process中,因为Xposed修改app_process代码是已知的,在修改前进行***自定义代码,即可记录使用Xposed HOOK的应用程序和HOOK的函数。
S420:检查Frida架构,以获得Frida的破解记录文档,所述Frida的破解记录文档包括Frida的HOOK的应用程序、HOOK的函数、Frida的客户端服务程序和Android和pc端之间的交互数据。
所述Frida是一款基于Python+javascript的HOOK框架,通杀android\ios\linux\win\osx等各平台,由于是基于脚本的交互,因此相比Xposed和substrace cydia更加便捷。当客户端和pc端进行交互数据时,pc端执行需要HOOK的脚本,然后传递到Android智能终端的客户端服务程序中进行应用程序的HOOK操作。
具体包括以下步骤:
步骤1:检查***中是否存在Frida_server,如果存在则通过对Frida_server中的函数进行逆向分析获取需要HOOK的函数,注入反向HOOK函数,来获取Frida的HOOK的应用程序和HOOK的函数。
步骤2:监视Frida模块的tcp端口27042/27043,以获得Android***中Frida的客户端服务程序和Android和pc端之间交互的数据。
通常Frida模块的客户端服务程序为server,Frida模块的tcp端口为27042/27043,通过监视此端口可以知道Android***中Frida的客户端的服务程序,同时可以获取Android和pc端的交互数据。
S430:使用为smalidea进行动态调试应用程序,以获得smalidea的破解记录文档,即Android和pc端的交互数据。
使用smalidea进行动态调试应用程序,可以获取该应用程序运行时候的数据,进而获取该应用程序的敏感数据。所述敏感数据可以为密码,加密数据等。
具体包括以下步骤:
步骤1:检查AndroidManifest.xml是否被更改为debugage模式,当被更改时,进入步骤2。
步骤2:检查default.prop文件中ro.debuggable是否为调试模式,当为调试模式时,进入步骤3。
步骤3:检查端口/proc/net/tcp是否处于调试模式,当处于时,获取Android和pc端的交互数据。
S440:使用为IDA PRO进行动态调试应用程序,以获得IDA PRO的破解记录文档,即调试数据。
具体包括以下步骤:
步骤1:检查TracerPid是否被调试,当被调试时,进入步骤2。
步骤2:监视端口/proc/net/tcp,并查找IDA PRO的客户端服务程序,然后通过该客户端服务程序获取调试数据。
通过以上步骤S410~S440对该实施例中的四种逆向工具的架构进行分析,获取对应的破解记录文档,并将获取的破解记录文档上传到云端服务器,以用作后续处理。
该实施例中,通过上述的步骤,可以检测***是否被破解,当检测到被破解时,采集进行破解行为的统计和取证等应用所必须的***用户数据和破解记录文档,并将上述采集的数据上传至云端服务器以供后续使用,用户可以根据云端服务器接收到***用户数据和破解记录文档进行统计、取证、展示和下发操作等的应用。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

Claims (4)

1.一种检测Android***是否被破解和破解记录获取方法,其特征在于:包括以下步骤:
S100:采集***中的特定文件,所述特定文件包括***自带的文件和逆向工具生成的文件,将该特定文件使用加密算法合成一特定值,将该特定值进行保存并上传到云端服务器中,实时判断该特定值是否发生变更,当发生变更时,进入S200;
S200:采集***用户数据并上传到云端服务器中,所述***用户数据为终端的硬件信息和***的信息;
S300:判断***是否被root,当被root时,进入步骤S400,否则,返回S100;
S400:检查逆向工具的架构,获取逆向工具对应的破解记录文档,将获取的破解记录文档上传到云端服务器;所述逆向工具包括:Xposed、Frida、smalidea和IDA PRO,则具体步骤包括:
S410:检查Xposed架构,以获得Xposed的破解记录文档;
具体包括以下步骤:
步骤1:判断是否存在
/data/data/de.robv.android.Xposed.installer/bin/XposedBridge.jar文件,当存在时,进入步骤2;
步骤2:在/proc/进程ID/maps目录中检查是否存在Xposed模块,当存在时,进入步骤3;
步骤3:检查/system/bin/app_process是否被修改,如果被修改,分析Xposed架构的原理和函数,自定义反向HOOK Xposed的执行函数,以获得Xposed的破解记录文档,即Xposed的HOOK的应用程序和HOOK的函数;
S420:检查Frida架构,以获得Frida的破解记录文档,所述Frida的破解记录文档包括Frida的HOOK的应用程序、HOOK的函数、Frida的客户端服务程序和Android和pc端之间的交互数据;
具体包括以下步骤:
步骤1:检查***中是否存在Frida_server,如果存在则通过对Frida_server中的函数进行逆向分析获取需要HOOK的函数,注入反向HOOK函数,来获取Frida的HOOK的应用程序和HOOK的函数;
步骤2:监视Frida模块的tcp端口,以获得Android***中Frida的客户端服务程序和Android和pc端之间交互的数据;
S430:使用为smalidea进行动态调试应用程序,以获得smalidea的破解记录文档,即Android和pc端的交互数据;
具体包括以下步骤:
步骤1:检查AndroidManifest.xml是否被更改为debugage模式,当被更改时,进入步骤2;
步骤2:检查default.prop文件中ro.debuggable是否为调试模式,当为调试模式时,进入步骤3;
步骤3:检查smalidea的tcp端口是否处于调试模式,当处于调试模式时,获取Android和pc端的交互数据;
S440:使用为IDA PRO进行动态调试应用程序,以获得IDA PRO的破解记录文档,即调试数据;
具体包括以下步骤:
步骤1:检查TracerPid是否被调试,当被调试时,进入步骤2;
步骤2:监视IDA PRO的tcp端口,并查找IDA PRO的客户端服务程序,然后通过该客户端服务程序获取调试数据。
2.根据权利要求1所述的检测Android***是否被破解和破解记录获取方法,其特征在于:步骤S300中的判断方式为:当下面四种方式中的其中一种成立时,则判定***被root:
方式一:/syste/bin/或者/system/xbin目录下存在su文件;
方式二:***的根目录下可以写入;
方式三:selinux可以设置为Permissive模式;
方式四:需要root权限的命令可以执行。
3.根据权利要求1所述的检测Android***是否被破解和破解记录获取方法,其特征在于:所述***自带的文件为手机序列号文件。
4.根据权利要求1所述的检测Android***是否被破解和破解记录获取方法,其特征在于:所述***用户数据包括用户信息、手机号、位置定位、手机型号、当前***版本、内核和手机序列号。
CN201810801104.0A 2018-07-20 2018-07-20 一种检测Android***是否被破解和破解记录获取方法 Active CN108959860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810801104.0A CN108959860B (zh) 2018-07-20 2018-07-20 一种检测Android***是否被破解和破解记录获取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810801104.0A CN108959860B (zh) 2018-07-20 2018-07-20 一种检测Android***是否被破解和破解记录获取方法

Publications (2)

Publication Number Publication Date
CN108959860A CN108959860A (zh) 2018-12-07
CN108959860B true CN108959860B (zh) 2020-11-17

Family

ID=64481979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810801104.0A Active CN108959860B (zh) 2018-07-20 2018-07-20 一种检测Android***是否被破解和破解记录获取方法

Country Status (1)

Country Link
CN (1) CN108959860B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104337A (zh) * 2019-12-30 2020-05-05 杭州云缔盟科技有限公司 一种检测终端模拟器的方法
CN111522699B (zh) * 2020-04-14 2023-05-23 杭州斯凯数据科技集团有限公司 针对vmp指令引发目标内存变化的检测方法
CN112507292B (zh) * 2020-12-09 2024-01-26 重庆邮电大学 一种支持运行环境检测及完整性检测的加壳保护方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778103A (zh) * 2016-12-30 2017-05-31 上海掌门科技有限公司 一种安卓应用程序防逆向破解的加固方法、***及解密方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2418935A1 (en) * 2002-02-14 2003-08-14 Cloakware Corporation System and method of foiling buffer-overflow and alien-code attacks
CN101783801B (zh) * 2010-01-29 2013-04-24 福建星网锐捷网络有限公司 一种基于网络的软件保护方法、客户端及服务器
CN105069357A (zh) * 2015-08-06 2015-11-18 福建天晴数码有限公司 扫描漏洞的方法、云端服务器及***
CN106650408B (zh) * 2016-12-09 2020-08-04 武汉斗鱼网络科技有限公司 一种用于判断安卓***是否具有root权限的方法和***
CN107609410B (zh) * 2017-09-11 2019-07-02 厦门市美亚柏科信息股份有限公司 基于HOOK的Android***数据保护方法、终端设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778103A (zh) * 2016-12-30 2017-05-31 上海掌门科技有限公司 一种安卓应用程序防逆向破解的加固方法、***及解密方法

Also Published As

Publication number Publication date
CN108959860A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
US11687653B2 (en) Methods and apparatus for identifying and removing malicious applications
CN108133139B (zh) 一种基于多运行环境行为比对的安卓恶意应用检测***
CN112685737A (zh) 一种app的检测方法、装置、设备及存储介质
CN111931166B (zh) 基于代码注入和行为分析的应用程序防攻击方法和***
CN108959860B (zh) 一种检测Android***是否被破解和破解记录获取方法
CN113489713B (zh) 网络攻击的检测方法、装置、设备及存储介质
CN108959071B (zh) 一种基于RASP的PHP变形webshell的检测方法及***
CN113158197B (zh) 一种基于主动iast的sql注入漏洞检测方法、***
US12039034B2 (en) Undetectable sandbox for malware
CN111191226A (zh) 利用提权漏洞的程序的确定方法、装置、设备及存储介质
CN114386032A (zh) 电力物联网设备的固件检测***及方法
CN112035354A (zh) 风险代码的定位方法、装置、设备及存储介质
CN110688653A (zh) 客户端的安全防护方法及装置、终端设备
CN113886814A (zh) 一种攻击检测方法及相关装置
CN116340943A (zh) 应用程序保护方法、装置、设备、存储介质和程序产品
Tang et al. Towards dynamically monitoring android applications on non-rooted devices in the wild
CN109784051B (zh) 信息安全防护方法、装置及设备
KR101557455B1 (ko) 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법
JP5613000B2 (ja) アプリケーション特性解析装置およびプログラム
CN106650439A (zh) 检测可疑应用程序的方法及装置
CN113569240B (zh) 恶意软件的检测方法、装置及设备
CN115544503A (zh) 一种无文件攻击检测方法、装置、设备及存储介质
CN109271781B (zh) 一种基于内核的应用程序获取超级权限行为检测方法与***
CN114238987A (zh) 一种智能网联汽车app渗透测试方法、***及存储介质
CN105574409A (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
GR01 Patent grant
GR01 Patent grant