当我们发布了一款app后,一般我们并不想让别人获取我们的app数据,更不希望别人调用我们的app后端服务api。一些抢购场景尤其重要,比如:在线预约医院专家号(知名专家的号往往一票难求),在线抢购商品(比如茅台等稀缺商品),如果别人能绕过app直接编写机器人代码自动调用服务端api来抢购将大大提升成功率,同时也意味着真正人工使用app的人很难抢到需要的商品,严重影响了公平性,打乱了游戏规则。下面我们就介绍下如何获取app数据的技术手段以及如何防止别人获取我们的app数据。

获取app数据一般需要两步抓包和模拟调用。

抓取app的http 请求包

一般app都是使用http的post或者get从服务器获取数据的,所以我们只要能知道app的http请求的参数,就可以编写程序来模拟http请求从服务器获取数据。

charles抓包

通常我们可以使用charles工具来抓取app的http包,其原理非常简单,简单来说就是:charles创建一个代理,安装app的手机连接这个代理,当app和服务器通信时,所有数据需要经过charles代理转发,所以charles就可以在转发时将http请求的参数和数据全部保存下来。

如何app防止被抓包

1.服务端ssl公钥鉴权

现在我们的app一般都是ssl的,在使用charles时,相当于app直接和charles通信而不是我们的服务器,此时如果我们能在app中进行https通信时对服务器的ssl公钥进行认证即可防止被charles抓包,也即在app里绑定服务器的ssl公钥,当发现不是服务器的ssl公钥时直接断开链接。具体使用方法:可以在百度或者google搜索:ssl pinning。

反制手段:可以通过xposed + just trust me来hook Android系统的ssl公钥的鉴权部分,让系统鉴权时在任何情况下都返回true。

反制反制手段:由于xposed需要root系统,所以我们可以在app启动时检测安全环境时,一旦发现系统被root,直接退出app。(一般root系统的还在使用别人app的,100%都是在干坏事!)

反制反制反制手段:我们可以定制Androd系统,下载android源码,直接将ssl鉴权部分去掉,直接返回true,此时app就再也无能为力了,可以说是终极方案啦。

2.客户端ssl公钥鉴权

同样的道理,charles工具抓包时,相当于charles作为客户端和服务端直接通信,所以我们也可以在服务端绑定客户端ssl公钥,一旦发现客户端ssl公钥不是我们app的ssl公钥立即断开链接。

反制手段:直接从app中获取公钥,然后将app的公钥添加到charles中,让charles直接使用app的公钥和服务器进行通信。

模拟调用api

抓取到https请求包后,就要开始分析各种参数,然后使用其他语言来模拟调用,正常情况下我们只要把参数都填充完成,都可以调用成功,可以使用postman来试验效果。

反制手段:使用鉴权参数,比如:把要传的参数加盐通过md5算法算出一个加密参数(当然实际情况可以使用完全不同的自定义算法来生成加密参数),在服务端端用同样的算法计算加密参数,如果两个加密参数一致,则认为合法,否则拒绝服务。注意:一定要将生成加密参数的函数放到jni里面去,因为java代码即使混淆也很容易被反编译破解,而jni在混淆优化后破解难度相对大些。

反制反制手段:jni如果使用高强度的混淆、各种优化后,分析二进制代码的难度比较大,成本比较高,此时可以使用模拟执行so来,来自动获取机密参数。

总结

本文介绍了破解app获取数据和反破解的常用技术手段,在此我们强烈建议大家不要尝试去破解别人的app,因为法律明确规定破解别人的app属于违法行为,一旦被发现要面临10年以下有期徒刑。如果想获取别人app的数据,可以尝试使用冰狐智能辅助平台,在不破解app的前提下,直接模拟运行app,从而获取app数据,使用冰狐智能辅助获取app数据不仅难度极低,而且还没有法律风险。

自动抓取app数据的攻与防相关推荐

  1. 自动抓取app数据技术方案总结

    在app运营过程中,有时候我们需要了解app中的一些数据,比如:我们自己开的网店,有时候app官方提供的数据并不能满足我们的实际需求,这时就需要使用工具来自动抓取我们自己店铺中有用的数据.一般有两种实 ...

  2. 一分钟学会如何自动抓取app数据

    网络爬虫比较适合搜集web页面数据,但在app当道的时代,很多app根本就没有对应的web网站,所以使用传统的网络爬虫抓取数据已不再适用.最近研究了一下解决方案,发现目前市面上的解决方案要么是java ...

  3. python123 app下载_Python 逆向抓取 APP 数据

    今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...

  4. Python 逆向抓取 APP 数据

    今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...

  5. python爬取app、返回的是加密数据_Python 逆向抓取 APP 数据

    今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...

  6. 抓取app数据教程–fiddler抓包数据截取-薄荷app为例

    转载请注明出处:抓取app数据教程–fiddler抓包数据截取-薄荷app为例 准备工具 1.手机(安装有想要抓取数据app的iphone或者android) 2.fiddler抓包工具 安装fidd ...

  7. 利用Fiddler抓取APP数据

    利用Fiddler抓取APP数据 简杨君 关注 2016.11.03 18:51* 字数 368 阅读 762评论 0喜欢 2 软件:Fiddler 系统:Windows10 手机:MX4 PRO F ...

  8. excel数据自动录入网页_Excel自动抓取网页数据,数据抓取一键搞定

    网站上的数据源是我们进行统计分析的重要信息源.我们在生活中常常听到一个词叫"爬虫",能够快速抓取网页上的数据,这对于数据分析相关工作来说极其重要,也是必备的技能之一.但是爬虫大多需 ...

  9. okhttp post json 数据_使用python抓取App数据

    App中的数据可以用网络爬虫抓取么 答案是完全肯定的:凡是可以看到的APP数据都可以抓取. 下面我就介绍下自己的学习经验和一些方法吧 本篇适合有过web爬虫基础的程序猿看 没有的的话学的可能会吃力一些 ...

最新文章

  1. Fiddler使用总结一(使用Fiddler捕获手机所有http/https通信)
  2. 批量导入sql文件。
  3. 台达变频器vfb—d参数表_台达变频器在印刷涂布机上的应用
  4. android 走马灯效果
  5. zabbix加vm虚拟服务器,zabbix监控vmware exsi主机的图文步骤
  6. 女人为什么必须学习会家庭财富管理?
  7. Android深度探索--HAL与驱动开发----第三章读书笔记
  8. [CF559C]Gerald and Giant Chess
  9. 中国氮化镓(GaN)行业“十四五”前景预测及投资风险预测报告2021年版
  10. 数字逻辑实验-交通灯控制设计
  11. Web 前端学习之表单制作、网页超链接
  12. c语言实践输出某个区间中不是3的倍数的偶数
  13. 终于把泰山OFFICE的MAC本地库问题都解决了
  14. Java加密算法—凯撒加密实现以及暴力破解
  15. flash 和 eeprom 区别和关系、nor flash和nand flash区别
  16. 实用经验 92 区分函数模版与模版函数,类模版和模板类
  17. Java Class类文件的结构
  18. cdq分治 学习笔记
  19. 智能数据可视化-雷达图的使用方法
  20. Docker迁移存储目录

热门文章

  1. 删除链接到WLW清单文件
  2. 水星路由app服务器无响应,手机登录不了水星路由器的管理界面解决方法
  3. pythoniris补全缺失值_2018-02-03-PY3下经典数据集iris的机器学习算法举例-零基础
  4. 【用户投稿】优麒麟社区懒人版本(含软件全家桶)一键安装
  5. python自动生成采集规则_快速制作规则及获取规则提取器API
  6. pcb 受潮_高温潮湿对PCB电路板有影响吗?
  7. 复变函数(1)-复数及其几何属性
  8. 二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】
  9. 爬虫--可视化项目(一)
  10. 云服务器安装图形化界面