美文网首页
基于App的任务框架

基于App的任务框架

作者: 王国的荣耀 | 来源:发表于2021-04-13 13:49 被阅读0次

    逆向过程

    1. 使用抓包工具charles或者构建frida抓取隐藏的https网络请求,截取curl 请求;将对应curl请求转换为具体的python requests请求。查看参数在不删减的情况下,请求结果是否正常返回。如正常返回,删减参数,查看对应的返回结果。分析等到具体的可变参数。一般情况下可变参数定义都会带有sig等字段。
    2. 根据需要爬取的App,使用root的设备、xposed、frida、jadx-gui、unidbg等工具分析App的加密点。最后使用hook工具hook相关的加密点,查看参数送入和返回的情况。
    3. 构建hook脚本,将hook脚本部署到web server中;验证其破解的流程是否正确。

    基于App的爬虫框架

    1. 使用逆向分析得到的逻辑,构建App爬虫脚本。
    2. 或者构建apk app api,构建设备签名的破解等。
    3. 设备池构建:如果需要并发的爬取,需要构建对应的设备队列。实现数据请求的并发处理。
    4. 任务队列构建:使用redis构建任务队列,任务使用redis可缓存、可还原,可记录错误的用户信息。
    5. 任务失败队列:需要记录任务失败的用户ID;当所有的任务爬取完成,重新爬取失败的任务。
    6. log日志:log日志的存储,分文件的存储。
    7. 数据保存:一个是返回的数据以mongo形式保存,便于数据的映射错误的纠错;一份是抽取的想要的结构化数据以mysql的形式存储。
    8. 爬取数据分析:构建前端页面分析得到的数据以及mongo等数据。
    9. 自动化运行脚本:在App爬虫的构建过程中,发现大量的获取数据时,存在着app的风控;为了规避这些风控,采用了appium构建自动化点击脚本,在app在点击的过程中使得app的log回传,避免出发app的风控等。

    设备池子的构建

    1. 可通过华为云或者实际的物理机或者模拟器构建。
    2. 或者通过逆向的方式,突破app的注册和激活。

    任务队列的构建

    1. 构建要爬取的数据中心,即数据中心的来源。
    2. 根据所构建的任务队列,重复的日更新数据或者月更新数据。

    假数据的处理

    1. 需要拦截对应的爬取的userid以及当前返回的useid是否一致;防止假数据对爬取库的污染。

    主要技术点分析

    1. android app okhttp网络调用过程分析,分析具体的hook点。
    2. 使用jadx分析具体的加密点;如可能的话,使用java还原sig的加密算法。
    3. 使用frida以及构架js的破解脚本等。
    4. 或者使用xposed构建基于apk的签名接口等。
    5. 使用python构建爬虫脚本,调用破解的签名接口等。
    6. 使用redis构建缓存队列以及使用mongodb构建中间数据存储等。
    7. 使用appium构建自动化的点击脚本,绕过app的风控等。
    8. 将所有的服务部署到centos上,安装appium和frida的开发环境,生成环境的爬虫服务的正式上线。
    9. 基于爬取得到的数据封装后端api接口。
    10. 调用封装好的数据api接口,构建前端页面显示逻辑。
    11. 自动发布邮件通知,回顾爬虫昨天一天的爬取正确率以及错误率。
    12. 纠正爬取错误的数据。

    相关文章

      网友评论

          本文标题:基于App的任务框架

          本文链接:https://www.haomeiwen.com/subject/vskflltx.html