CN112364227A - 一种移动app数据采集方法 - Google Patents
一种移动app数据采集方法 Download PDFInfo
- Publication number
- CN112364227A CN112364227A CN202011276169.1A CN202011276169A CN112364227A CN 112364227 A CN112364227 A CN 112364227A CN 202011276169 A CN202011276169 A CN 202011276169A CN 112364227 A CN112364227 A CN 112364227A
- Authority
- CN
- China
- Prior art keywords
- app
- signature
- data
- signature algorithm
- source code
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种移动APP数据采集方法,涉及数据采集技术领域;根据APP中的网络请求数据包,获取签名字段,在APP源码搜索签名字段,获取签名字段的签名算法的相关代码及方法,若未获取签名算法的相关代码及方法,则在APP源码搜索网络请求的关键字,获取签名字段的签名算法的相关代码及方法,利用插桩工具验证签名算法的相关代码及方法,并获取分析签名的原始参数,利用签名算法的HOOK插件及原始参数对APP需要签名的数据进行签名,通过爬虫工具利用签名后数据发起网络请求进行数据采集。
Description
技术领域
本发明公开一种采集方法,涉及数据采集技术领域,具体地说是一种移动APP数据采集方法。
背景技术
网络爬虫是当今互联网使用非常广泛的技术之一,目前已经应用到了金融、房产、贸易和科技等诸多领域。而在数据时代,网络数据是很多创业型公司基础数据的重要来源,无论是大数据、数据分析还是机器学习,都离不开网络爬虫为其采集基础数据。
但随着近些年互联网的迅猛发展,流量使用和用户习惯已从网页端转移到手机等移动设备上,并且现有移动设备上的APP通常需要签名验证才能获得相应的数据反馈,虽如果采用如Appium、Airtest Project等工具虽然能模拟真实的用户操作,但是对本地的资源消耗巨大,且采集数据时间较长,不利于数据采集。
发明内容
本发明针对现有技术的问题,提供一种移动APP数据采集方法,本发明提出的具体方案是:
一种移动APP数据采集方法:根据APP中的网络请求数据包,获取签名字段,在APP源码搜索签名字段,获取签名字段的签名算法的相关代码及方法,
若未获取签名算法的相关代码及方法,则在APP源码搜索网络请求的关键字,获取签名字段的签名算法的相关代码及方法,
利用插桩工具验证签名算法的相关代码及方法,并获取分析签名的原始参数,
利用签名算法的HOOK插件及原始参数对APP需要签名的数据进行签名,通过爬虫工具利用签名后数据发起网络请求进行数据采集。
优选地,所述的一种移动APP数据采集方法中在APP的设备上启动VPN,设置网络代理,通过将网络流量嫁接到PC端,获取APP的网络请求数据包。
优选地,所述的一种移动APP数据采集方法中利用JADX打开APP的源码并在APP源码搜索签名字段。
优选地,所述的一种移动APP数据采集方法中利用签名字段的签名算法,使用Xposed框架组装HOOK插件,并将安装包安装至移动设备。
一种移动APP数据采集系统:包括获取模块、搜索模块、验证模块及采集模块,
获取模块根据APP中的网络请求数据包,获取签名字段,搜索模块在APP源码搜索签名字段,获取签名字段的签名算法的相关代码及方法,
若未获取签名算法的相关代码及方法,搜索模块则在APP源码搜索网络请求的关键字,获取签名字段的签名算法的相关代码及方法,
验证模块利用插桩工具验证签名算法的相关代码及方法,并获取分析签名的原始参数,
采集模块利用签名算法的HOOK插件及原始参数对APP需要签名的数据进行签名,通过爬虫工具利用签名后数据发起网络请求进行数据采集。
优选地,所述的一种移动APP数据采集系统中在APP的设备上启动VPN,设置网络代理,通过将网络流量嫁接到PC端,获取APP的网络请求数据包。
优选地,所述的一种移动APP数据采集系统中利用JADX打开APP的源码并在APP源码搜索签名字段。
优选地,所述的一种移动APP数据采集系统中利用签名字段的签名算法,使用Xposed框架组装HOOK插件,并将安装包安装至移动设备。
本发明的有益之处是:
本发明提供一种移动APP数据采集方法,根据APP中的网络请求数据包,获取签名字段,在APP源码搜索签名字段,获取签名字段的签名算法的相关代码及方法,利用签名算法的HOOK插件及原始参数对APP需要签名的数据进行签名,通过爬虫工具利用签名后数据发起网络请求进行数据采集。
通过本发明方法使用爬虫工具,不必担心APP的频繁迭代升级,降低了维护签名算法的成本;能显著降低采集过程中采集程序对本地机器资源的占用,一部手机或者模拟器就能提供签名服务;并且采集的速度能大幅提高,采集程序在爬取的过程中,时间主要花在采集数据的网络请求上,签名所用时间可以忽略不计,采集程序的采集速度能大幅的提高。
附图说明
图1是本发明方法应用框架示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种移动APP数据采集方法:根据APP中的网络请求数据包,获取签名字段,在APP源码搜索签名字段,获取签名字段的签名算法的相关代码及方法,
若未获取签名算法的相关代码及方法,则在APP源码搜索网络请求的关键字,获取签名字段的签名算法的相关代码及方法,
利用插桩工具验证签名算法的相关代码及方法,并获取分析签名的原始参数,
利用签名算法的HOOK插件及原始参数对APP需要签名的数据进行签名,通过爬虫工具利用签名后数据发起网络请求进行数据采集。
通过本发明方法对APP进行逆向分析,找到APP中签名的算法入口,然后使用HOOK插件,并使用网络穿透技术将签名服务接出来,为采集程序提供签名服务。采集程序将调用HOOK到的签名算法,对需要签名的数据进行签名,并将签名后的数据放入到采集程序的请求头或参数中,在向服务器发起网络请求,以这种方式绕过服务器的爬虫校验,从而获取到需要的采集的数据。
具体应用中,在本发明的一些实施例中,分析APP中的网络请求数据包,找到已经签名的字段名;使用工具打开APP源码,在源码中搜索签名字段名,或者是网络请求的代码;使用Frida工具对找打的代码进行插桩验证,获取并分析签名前的参数,过程如下:
分析网络请求:需要在安装APP的设备上启动VPN,设置网络代理,将网络流量嫁接到PC上,在PC端打开抓包工具进行抓包,获取到APP的网络请求数据包,分析抓到的数据包,找打每次请求都在变化的签名字段,字段可能不止一个;
使用工具打开APK源码:使用JADX打开APP的源码,在打开的源码中先以签名字段为关键词在源码中进行搜索,找到签名算法相关的代码、方法,如果使用关键字没有搜索到任何代码,可以使用网络请求中的关键字进行搜索;
使用插桩工具验证搜索到的关键代码:编写HOOK关键方法的代码,使用Frida工具,对APP进行插桩,然后在APP上进行一些点击、滑动操作,验证查找的代码是否为关键的签名代码,并获取到签名的原始参数。
在上述基础上,本发明的另一些实施例,部署安装HOOK插件:分析APP的签名算法后,获取到关键的签名算法的入口方法,使用Xposed框架,编写APP的HOOK插件,将APP的签名算法的入口函数进行HOOK,并将HOOK到的入口方法外接出来,提供签名服务,最后将编写好的进行编译打包成APK安装到移动设备上;
安装APK:在手机上安装VirtualXpoesd APP,然后在VirtualXposed APP上安装Xposed框架,并将需要采集数据的APP和自己编写的插件复制安装到VirtualXposed中,安装完成后重启VirtualXposed使配置生效。
进行验证签名服务并数据采集时,验证签名服务:首先将手机网络与爬虫放在的同一网段内,可以是同一个路由下或者是PC提供的热点,然后启动采集数据的APP,在PC端上打开浏览器,输入手机IP和插件开放的端口,请求服务的标记以及需要签名的参数,如果能正常返回签名后的数据,那么说明签名服务已经可用,
APP爬虫工具:利用Python3编写爬虫工具,通过请求APP签名服务,将请求头、请求参数进行签名,然后将签名后的结果放到爬虫中,在请求服务器,把数据请求下来,完成数据采集。
利用本发明方法通过APP代码逆向分析及HOOK签名算法对外提供服务,最后通过爬虫引擎采集数据,大幅提高采集的速度。
同时提供一种移动APP数据采集系统:包括获取模块、搜索模块、验证模块及采集模块,
获取模块根据APP中的网络请求数据包,获取签名字段,搜索模块在APP源码搜索签名字段,获取签名字段的签名算法的相关代码及方法,
若未获取签名算法的相关代码及方法,搜索模块则在APP源码搜索网络请求的关键字,获取签名字段的签名算法的相关代码及方法,
验证模块利用插桩工具验证签名算法的相关代码及方法,并获取分析签名的原始参数,
采集模块利用签名算法的HOOK插件及原始参数对APP需要签名的数据进行签名,通过爬虫工具利用签名后数据发起网络请求进行数据采集。
上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,上述较佳实施例中各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (8)
1.一种移动APP数据采集方法,其特征是根据APP中的网络请求数据包,获取签名字段,在APP源码搜索签名字段,获取签名字段的签名算法的相关代码及方法,
若未获取签名算法的相关代码及方法,则在APP源码搜索网络请求的关键字,获取签名字段的签名算法的相关代码及方法,
利用插桩工具验证签名算法的相关代码及方法,并获取分析签名的原始参数,
利用签名算法的HOOK插件及原始参数对APP需要签名的数据进行签名,通过爬虫工具利用签名后数据发起网络请求进行数据采集。
2.根据权利要求1所述的一种移动APP数据采集方法,其特征是在APP的设备上启动VPN,设置网络代理,通过将网络流量嫁接到PC端,获取APP的网络请求数据包。
3.根据权利要求1或2所述的一种移动APP数据采集方法,其特征是利用JADX打开APP的源码并在APP源码搜索签名字段。
4.根据权利要求3所述的一种移动APP数据采集方法,其特征是利用签名字段的签名算法,使用Xposed框架组装HOOK插件,并将安装包安装至移动设备。
5.一种移动APP数据采集系统,其特征是包括获取模块、搜索模块、验证模块及采集模块,
获取模块根据APP中的网络请求数据包,获取签名字段,搜索模块在APP源码搜索签名字段,获取签名字段的签名算法的相关代码及方法,
若未获取签名算法的相关代码及方法,搜索模块则在APP源码搜索网络请求的关键字,获取签名字段的签名算法的相关代码及方法,
验证模块利用插桩工具验证签名算法的相关代码及方法,并获取分析签名的原始参数,
采集模块利用签名算法的HOOK插件及原始参数对APP需要签名的数据进行签名,通过爬虫工具利用签名后数据发起网络请求进行数据采集。
6.根据权利要求5所述的一种移动APP数据采集系统,其特征是在APP的设备上启动VPN,设置网络代理,通过将网络流量嫁接到PC端,获取APP的网络请求数据包。
7.根据权利要求5或6所述的一种移动APP数据采集系统,其特征是利用JADX打开APP的源码并在APP源码搜索签名字段。
8.根据权利要求7所述的一种移动APP数据采集系统,其特征是利用签名字段的签名算法,使用Xposed框架组装HOOK插件,并将安装包安装至移动设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011276169.1A CN112364227A (zh) | 2020-11-16 | 2020-11-16 | 一种移动app数据采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011276169.1A CN112364227A (zh) | 2020-11-16 | 2020-11-16 | 一种移动app数据采集方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112364227A true CN112364227A (zh) | 2021-02-12 |
Family
ID=74515674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011276169.1A Withdrawn CN112364227A (zh) | 2020-11-16 | 2020-11-16 | 一种移动app数据采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112364227A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826615A (zh) * | 2022-04-25 | 2022-07-29 | 浪潮卓数大数据产业发展有限公司 | 一种基于手机模拟器的移动端采集方法及系统 |
CN117118819A (zh) * | 2023-10-17 | 2023-11-24 | 荣耀终端有限公司 | 一种第三方应用的运行场景的定位方法和电子设备 |
-
2020
- 2020-11-16 CN CN202011276169.1A patent/CN112364227A/zh not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826615A (zh) * | 2022-04-25 | 2022-07-29 | 浪潮卓数大数据产业发展有限公司 | 一种基于手机模拟器的移动端采集方法及系统 |
CN114826615B (zh) * | 2022-04-25 | 2023-08-08 | 浪潮卓数大数据产业发展有限公司 | 一种基于手机模拟器的移动端采集方法及系统 |
CN117118819A (zh) * | 2023-10-17 | 2023-11-24 | 荣耀终端有限公司 | 一种第三方应用的运行场景的定位方法和电子设备 |
CN117118819B (zh) * | 2023-10-17 | 2023-12-22 | 荣耀终端有限公司 | 一种第三方应用的运行场景的定位方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8601434B2 (en) | Method and system for information processing and test case generation | |
CN106326108B (zh) | 一种新应用的测试方法及装置 | |
WO2014035043A1 (ko) | 악성 애플리케이션 진단 장치 및 방법 | |
CN106022127B (zh) | Apk文件安全检测方法及装置 | |
CN110232146B (zh) | 一种数据抓取方法及抓取装置 | |
CN112364227A (zh) | 一种移动app数据采集方法 | |
CN102521543B (zh) | 一种基于动态污点分析进行消息语义解析的方法 | |
CN104751056A (zh) | 一种基于攻击库的漏洞验证系统与方法 | |
CN103888490A (zh) | 一种全自动的web客户端人机识别的方法 | |
CN101316185A (zh) | 一种基于日志文件的分析结果定位系统资源瓶颈的方法 | |
CN109947635B (zh) | 一种数据上报方法、装置、存储介质及终端设备 | |
CN110798445B (zh) | 公共网关接口测试方法、装置、计算机设备及存储介质 | |
CN111104579A (zh) | 一种公网资产的识别方法、装置及存储介质 | |
CN104281808A (zh) | 一种通用的Android恶意行为检测方法 | |
CN108388519A (zh) | 基于SpringBoot服务的Mock测试方法 | |
CN108737332B (zh) | 一种基于机器学习的中间人攻击预测方法 | |
CN109818972B (zh) | 一种工业控制系统信息安全管理方法、装置及电子设备 | |
CN112528295A (zh) | 工业控制系统的漏洞修复方法及装置 | |
CN112363904A (zh) | log数据分析定位方法、装置及计算机可读存储介质 | |
RU2724800C1 (ru) | Система и способ обнаружения источника вредоносной активности на компьютерной системе | |
CN112667875A (zh) | 一种数据获取、数据分析方法、装置、设备及存储介质 | |
CN111930621A (zh) | Dns自动化性能测试方法、装置、设备及可读存储介质 | |
CN111026605A (zh) | 一种移动应用违规内容的发现方法及系统 | |
CN108959646B (zh) | 自动验证通信号码的方法、系统、设备及存储介质 | |
Mostafa et al. | Netdroid: Summarizing network behavior of android apps for network code maintenance |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210212 |
|
WW01 | Invention patent application withdrawn after publication |