掌桥专利:专业的专利平台
掌桥专利
首页

一种基于手机模拟器的移动端采集方法及系统

文献发布时间:2023-06-19 16:08:01



技术领域

本发明涉及移动端数据采集技术领域,特别涉及一种基于手机模拟器的移动端采集方法及系统。

背景技术

随着越来越多厂商业务往移动端发展,形成了越来越多的移动端数据采集业务需求。而这些在移动端的业务接口,往往需要携带本地的一些设备签名、请求签名或是一些cookie才能访问成功,然后才会遇到风控反爬等问题。随着厂商安全加固的逐渐加强,完整分析一个本地的签名成本也越来越高。

为了避免在初期花费大量时间在算法分析还原与加固混淆对抗上,本发明提出了一种基于手机模拟器的移动端采集方法及系统。

发明内容

本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于手机模拟器的移动端采集方法及系统。

本发明是通过如下技术方案实现的:

一种基于手机模拟器的移动端采集方法,其特征在于:直接利用手机模拟器中的App(Application,应用程序)本身进行计算,再将计算结果导出,以供采集程序使用;

采用python语言编写爬虫代码,将手机模拟器端作为一个socket服务节点提供hook方案或者将hook结果转发到本地PC端;

同时,利用手机模拟器结合自动化测试工具自动化模拟按键,进行刷新、拖动或滑动操作,再利用移动端的架设hook接口提取验证后的cookie(储存在用户本地终端上的数据),完成滑块验证码验证工作。

该基于手机模拟器的移动端采集方法,先根据业务需求进行抓包与脱壳,分析接口字段参数,并对手机模拟器中的App进行简单逆向,定位到需求字段位置,并编写调用代码。

移动端通过Xposed模块开设一个本地端口进行交互调用,在App启动时通过Xposed模块建立一个循环线程,所述循环线程中创建各自的socket接口,并根据业务需求编写主动调用代码。

所述移动端对App应用的MainActivity类的OnCreate(表示一个窗口正在生成)函数进行Hook,具体流程如下:

S1.在AndroidManifest.xml中找到目标应用的MainActivity类;

S2.hook MainActivity类下的onCreate函数,并在其中创建线程;

S3.获取本地Ip地址并输出到日志;

S4.在线程中创建本地socket接口,并根据实际业务需求编写hook调用代码。

当使用Xposed模块时,所述PC采集端与手机模拟器连接在同一局域网地址,并通过手机模拟器上的日志获取远程地址,调用相应的接口获取签名信息。

移动端通过Frida的RPC(Remote Procedure Call Protocol,远程过程调用协议)进行交互,无需在移动端架设接口,直接将手机模拟器上的hook调用代码通过rpc.exports的方式导出,将导出的结果直接放在PC采集端,在PC采集端架设相应的服务接口即可。

当使用Frida-RPC方式时,所述PC采集端采用以下流程:

S1.通过轻量级框架flask搭建本地服务,用作调用手机模拟器端的Frida导出接口;

S2.采集程序调用轻量级框架flask接口获取签名信息。

所述自动化测试工具采用auto.js工具或EasyClick工具。

一种基于手机模拟器的移动端采集系统,包括移动端和PC采集端,用于实现上述基于手机模拟器的移动端采集方法。

本发明的有益效果是:该基于手机模拟器的移动端采集方法及系统,在爬取移动端接口时结合手机或是模拟器环境通过hook主动调用的方式获取签名等相关信息,而不去过分关注其签名本身的算法逻辑,快速高效地解决了移动端爬虫中白盒算法的问题,同时结合移动端自动化工具解决了滑块验证码的问题,提高了数据采集效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

附图1为本发明移动端App接口的设计模式示意图。

附图2为本发明基PC采集端与移动端App的交互流程示意图。

具体实施方式

为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

近些年,随着安卓系统的快速发展,安卓应用上的安全对抗强度已经趋近于PC电脑端。各大厂商也越来越注意白盒安全,而不仅仅是依赖传统密码学,进而也都形成了一套自身的风控体系。同时,加固技术的发展也使得应用的本地安全也达到了一个新的高度,往往核心代码块、签名等都会伴随着强混淆或者进行代码虚拟化。逆向分析还原一个白盒算法成本也变得越来越高。但在移动端数据采集过程当中,通常并不需要关注其算法本身,只需要给定输入得到正确地输出即可。

在一些情况下,采集过程中常常会伴随着滑块验证码。验证码的出现意味着已经被初步风控,尽量需要避免验证码的出现,比如控制采集速度,轮询一些设备或者账号,通过代理等方式。而当必须过验证码时,分析其环境,轨迹的加密算法往往也十分耗时耗力,并且js的轨迹算法更新也十分频繁。

该基于手机模拟器的移动端采集方法,直接利用手机模拟器中的App(Application,应用程序)本身进行计算,再将计算结果导出,以供采集程序使用;

采用python语言编写爬虫代码,将手机模拟器端作为一个socket服务节点提供hook方案或者将hook结果转发到本地PC端;

同时,利用手机模拟器结合自动化测试工具自动化模拟按键,进行刷新、拖动或滑动操作,再利用移动端的架设hook接口提取验证后的cookie(储存在用户本地终端上的数据),完成滑块验证码验证工作。

该基于手机模拟器的移动端采集方法,先根据业务需求进行抓包与脱壳,分析接口字段参数,并对手机模拟器中的App进行简单逆向,定位到需求字段位置,并编写调用代码。

附图1为移动端App接口的设计模式示意图。针对风控强度,可适当增加设备节点个数进行轮询。

移动端可以通过Xposed模块开设一个本地端口进行交互调用,在App启动时通过Xposed模块建立一个循环线程,所述循环线程中创建各自的socket接口,并根据业务需求编写主动调用代码。

所述移动端对App应用的MainActivity类的OnCreate(表示一个窗口正在生成)函数进行Hook,具体流程如下:

S1.在AndroidManifest.xml中找到目标应用的MainActivity类;

S2.hook MainActivity类下的onCreate函数,并在其中创建线程;

S3.获取本地Ip地址并输出到日志;

S4.在线程中创建本地socket接口,并根据实际业务需求编写hook调用代码。

当使用Xposed模块时,所述PC采集端与手机模拟器连接在同一局域网地址,并通过手机模拟器上的日志获取远程地址,调用相应的接口获取签名信息。

Firda是一款易用的跨平Hook工具,Java层到Native层的Hook无所不能,是一种动态的插桩工具,可以插入代码到原生App的内存空间中,动态的去监视和修改行为;原生平台包括Win、Mac、Linux、Android、iOS全平台。

移动端还可以通过Frida的RPC(Remote Procedure Call Protocol,远程过程调用协议)进行交互,无需在移动端架设接口,直接将手机模拟器上的hook调用代码通过rpc.exports的方式导出,将导出的结果直接放在PC采集端,在PC采集端架设相应的服务接口即可。

当使用Frida-RPC方式时,所述PC采集端采用以下流程:

S1.通过轻量级框架flask搭建本地服务,用作调用手机模拟器端的Frida导出接口;

S2.采集程序调用轻量级框架flask接口获取签名信息。

所述自动化测试工具采用auto.js工具或EasyClick工具。

该基于手机模拟器的移动端采集系统,包括移动端和PC采集端,用于实现该基于手机模拟器的移动端采集方法。

不管通过何种方式,最终目的都是为了在采集程序中直接调用App相应接口,以快速获得签名信息,加密结果或实时的cookie,该基于手机模拟器的移动端采集方法与系统,形成了一个初步的采集方案。后续可能仍会遇到各类风控问题,例如设备签名,环境检测以及模拟滑块的轨迹等等一系列问题。这些问题的产生主要与该接口的风控强度,采集并发量等相关。但经过测试,在很多移动端爬虫接口的开发当中,这种初步方案就已经满足了业务采集的需求。甚至在一些同系列的App中,某些签名算法或是cookie的提取,都不需要任何改动。例如,在阿里系产品中,只需要定位到获取签名的函数mtopsdk.security.InnerSignImpl.getUnifiedSign,并按照其参数逻辑传参(HashMaphashMap,HashMaphashMap2,String str,String str2,boolean z,String str3)即可获取到相应的签名。在字节系App中,只需去调用安卓CookieManager下的getCookie,并通过正则匹配即可提取出相应的账号ck。

以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

相关技术
  • 一种基于手机模拟器的移动端采集方法及系统
  • 一种基于移动端的学历证件照采集系统和方法
技术分类

06120114717538