自动抓取app数据的攻与防
当我们发布了一款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数据的攻与防相关推荐
- 自动抓取app数据技术方案总结
在app运营过程中,有时候我们需要了解app中的一些数据,比如:我们自己开的网店,有时候app官方提供的数据并不能满足我们的实际需求,这时就需要使用工具来自动抓取我们自己店铺中有用的数据.一般有两种实 ...
- 一分钟学会如何自动抓取app数据
网络爬虫比较适合搜集web页面数据,但在app当道的时代,很多app根本就没有对应的web网站,所以使用传统的网络爬虫抓取数据已不再适用.最近研究了一下解决方案,发现目前市面上的解决方案要么是java ...
- python123 app下载_Python 逆向抓取 APP 数据
今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...
- Python 逆向抓取 APP 数据
今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...
- python爬取app、返回的是加密数据_Python 逆向抓取 APP 数据
今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...
- 抓取app数据教程–fiddler抓包数据截取-薄荷app为例
转载请注明出处:抓取app数据教程–fiddler抓包数据截取-薄荷app为例 准备工具 1.手机(安装有想要抓取数据app的iphone或者android) 2.fiddler抓包工具 安装fidd ...
- 利用Fiddler抓取APP数据
利用Fiddler抓取APP数据 简杨君 关注 2016.11.03 18:51* 字数 368 阅读 762评论 0喜欢 2 软件:Fiddler 系统:Windows10 手机:MX4 PRO F ...
- excel数据自动录入网页_Excel自动抓取网页数据,数据抓取一键搞定
网站上的数据源是我们进行统计分析的重要信息源.我们在生活中常常听到一个词叫"爬虫",能够快速抓取网页上的数据,这对于数据分析相关工作来说极其重要,也是必备的技能之一.但是爬虫大多需 ...
- okhttp post json 数据_使用python抓取App数据
App中的数据可以用网络爬虫抓取么 答案是完全肯定的:凡是可以看到的APP数据都可以抓取. 下面我就介绍下自己的学习经验和一些方法吧 本篇适合有过web爬虫基础的程序猿看 没有的的话学的可能会吃力一些 ...
最新文章
- Fiddler使用总结一(使用Fiddler捕获手机所有http/https通信)
- 批量导入sql文件。
- 台达变频器vfb—d参数表_台达变频器在印刷涂布机上的应用
- android 走马灯效果
- zabbix加vm虚拟服务器,zabbix监控vmware exsi主机的图文步骤
- 女人为什么必须学习会家庭财富管理?
- Android深度探索--HAL与驱动开发----第三章读书笔记
- [CF559C]Gerald and Giant Chess
- 中国氮化镓(GaN)行业“十四五”前景预测及投资风险预测报告2021年版
- 数字逻辑实验-交通灯控制设计
- Web 前端学习之表单制作、网页超链接
- c语言实践输出某个区间中不是3的倍数的偶数
- 终于把泰山OFFICE的MAC本地库问题都解决了
- Java加密算法—凯撒加密实现以及暴力破解
- flash 和 eeprom 区别和关系、nor flash和nand flash区别
- 实用经验 92 区分函数模版与模版函数,类模版和模板类
- Java Class类文件的结构
- cdq分治 学习笔记
- 智能数据可视化-雷达图的使用方法
- Docker迁移存储目录