大众点评app分析记录
本文是大众点评APP的分析记录。
声明:文章内容仅供参考学习,如有侵权请联系作者进行删除。
案例环境:夜神安卓5,APP版本10.45.7。
工具:Frida、Charles。
点评看不到http/https数据包,它走了自己的CIP协议,网上的抓包方案有降级或者VPN转发。
本文通过hook的方式来抓http/https数据包。
用super-Jadx时内存溢出,我删除了一些无用文件,将dex分批反编译,这块就不再说了。
文章目录
- Hook 抓包
- Hook http/https请求信息
- Hook 数据解密
- Hook 明文响应内容
- Hook 代码整理
- 备注
Hook 抓包
Hook代码:
执行hook脚本后,成功抓到包。
Hook http/https请求信息
Hook代码:
查看执行结果:
Hook 数据解密
Hook自定义的对象时,可以使用r0gson.dex的gson进行输出。
r0gson.dex下载链接: https://pan.baidu.com/s/1V59p4NKhrXSa_xpdM_LmtA?pwd=53nm
将其放到设备的 /data/local/tmp 目录中
查看执行结果。
Hook 明文响应内容
Hook代码:
查看执行结果:
格式化后和设备页面信息对比,发现内容一致。
Hook 代码整理
import frida, sys
def on_message(message, data):print("[%s] => %s" % (message, data))session = frida.get_usb_device().attach('com.dianping.v1')js_code = """
Java.perform(function(){Java.openClassFile("/data/local/tmp/r0gson.dex").load();const gson = Java.use('com.r0ysue.gson.Gson');var c1 = Java.use("com.dianping.nvnetwork.tunnel2.a");c1.isSocketConnected.implementation = function () {return false;}var bb = Java.use("com.dianping.dataservice.mapi.b");bb.b.overload('java.lang.String', 'com.dianping.dataservice.mapi.c').implementation = function(a1, a2){//console.log("**************************** http start");console.log(a1);// console.log('a2:', a2);var res = this.b(a1, a2);// console.log(res);//console.log("**************************** http end");return res;}var d = Java.use("com.dianping.dataservice.mapi.impl.d")d.a.overload('java.lang.String', 'java.lang.String').implementation = function(a1, a2){//console.log("**************************** https start");var res = this.a(a1, a2);console.log(res);//console.log("**************************** https end");return res;};var c3 = Java.use("com.dianping.picassocontroller.jse.c");c3.a.overload('com.dianping.picassocontroller.vc.e', 'java.lang.String', '[Ljava.lang.Object;').implementation = function (a,b,c) {console.log('a: ', a);console.log('b: ', b);console.log('c: ', c);var v = this.a(a,b,c)console.log(v.string())return v;}hook decryptDatavar ByteString = Java.use("com.android.okhttp.okio.ByteString");var SocketSecureManager = Java.use("com.dianping.nvnetwork.tunnel.Encrypt.SocketSecureManager");SocketSecureManager.decryptData.implementation = function(bstr, str){console.log('bstr: ', bstr);console.log('bstr-tojson:',gson.$new().toJson(bstr));console.log('bstr-hex: ', ByteString.of(bstr).hex());console.log('str: ', str);var ret = this.decryptData(bstr, str);// console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));console.log('decryptData Results: ', ByteString.of(ret).hex());return ret;}// var AESUtils = Java.use("com.meituan.android.common.unionid.oneid.util.AESUtils");// AESUtils.decrypt.implementation = function(str){// console.log('decrypt is called');// str = "RNtYlL8BsMe4EOqz-X0a1WAw3FwHsr1fdXSOBRnPEF_MiYYvJ1GSqvIIA1NwwTUxuoNWGGueSBRl50pmkidrgdQmVUUScNhW4FpBl1ZFPSyJAz4Zo0PpDNStJnb5JCf8fEe8oDXOCAsptjpuGpRJGClsKeIqe9ph6gAyvYfOk2XafwXbHf4VlsjATDVI7r4f-2s6QQ5Mfc6jvRMyqNdLJNtLwg5XDEmL4Leu7fCnHJbJ46O8hy8MFuN38avBqh6N-2s6QQ5Mfc6jvRMyqNdLJLVj6r8HF-qtkeIznxOc2qXKVyQ4dzMLEBQjCADd9vGF"// var ret = this.decrypt(str);// console.log('decrypt ret value is ' + ret);// return ret;// };})
"""script = session.create_script(js_code)
script.on('message', on_message)
script.load()
sys.stdin.read()
备注
数据是通过AES算法进行的加解密,找到key和iv就能复写了。
作者只是简单分析并记录了下。
欢迎关注《pythonlx》公众号,可获取群聊二维码!
大众点评app分析记录相关推荐
- 大众点评APP分析随笔
移动APP:大众点评 一.最核心功能:店铺评价功能,用户可以通过此功能对商家进行评分,也可以获取其他人对商家的评分信息. 二.核心功能满足的需求: 1. 去过商家消费的用户:用户已经体验的商家提供的产 ...
- 大众点评 App 搜索基于知识图谱的深度学习排序实践
点击"开发者技术前线",选择"星标????" 13:21 在看|星标|留言, 真爱 本文授权转载自:美团技术博客 本文介绍了大众点评搜索核心排序层模型的演化之 ...
- 美团技术分享:大众点评App的短视频耗电量优化实战
美团技术专栏: 关注MAYOU18 前言 美团测试团队负责App的质量保证工作,日常除了App的功能测试以外,还会重点关注App的性能测试.现在大家对手机越来越依赖,而上面各App的耗电量,直接影响了 ...
- 大众点评App的短视频耗电量优化实战,android应用案例开发大全第4版
一.案例分析 短视频作为已被市场验证的新内容传播载体,能有效增加用户停留时长.大众点评App从9.3版本开始推出短视频相关内容,在各页面新增了短视频模块.在短视频功能测试中,我们发现如果在视频列表页中 ...
- 大众点评app 数据解密和反序列化
在使用charles 抓大众点评app数据包的时候会发现,请求接口是没有加密的. 但是抓到的数据 全都是乱码,这其实是点评使用了加密算法,所以就需要对应的解密算法. 数据解析操作需要先解压缩,然后再解 ...
- PHP CURL 爬取大众点评app中的点评
PHP CURL 爬取大众点评app中的点评 先在大众点评APP找一个想爬取的点评链接 处理链接 配置抓取点评的CURL方法 查看是否爬取到了数据 处理爬取回来的数据 先在大众点评APP找一个想爬取的 ...
- 大众点评数据采集分析
大众点评数据采集(2019.06) 介绍 大众点评是中国领先的本地生活信息及交易平台,也是全球最早建立的独立第三方消费点评网站.大众点评不仅为用户提供商户信息.消费点评及消费优惠等信息服务,同时亦提供 ...
- 大众点评cat接入记录
背景 因为公司api接口时不时的被人攻击,频繁的撞库,所以需要一套完整的监控体系来管理所有的接口.组内其他人正在快速迭代一个初期的监控报警体系,而我闲着没事就顺便看了下大众点评的cat,刚好以前的同事 ...
- 大众点评 mtgisg分析
文章转载 :https://blog.csdn.net/heier_blue/article/details/126867621?spm=1001.2014.3001.5502 研究大众点评的时候会发 ...
最新文章
- Intel Realsense D435 Post-processing filters 后处理过滤器(用于消除图像的黑洞)
- pycharm 如何使用git链接到github实现代码提交
- Spark Streaming 实战案例(二) Transformation操作
- 一个简单 JDK 动态代理的实例
- java跳跳球代码,README.md
- SpringBoot+SpringAOP+Java自定义注解+mybatis实现切库读写分离
- Java连接HBase数据库,操作HBase数据库
- AD画PCB时,如何自动删除之前的连线
- C++:重载、重写、重定义
- android studio导入arr文件
- MySQL 实现FULL JOIN的几种方式
- w7计算机防火墙无法更改,w7防火墙无法更改该怎么办
- 情侣间为不吵架而“约法三章”,12条可参考理由!
- 四轴飞行器——电调校准
- 教师计算机应用基础知识,计算机应用基础
- MyIE2 更名为 Maxthon
- Hypermesh 12.0 中球体的六面体网格划分
- 银行贷款预测模型项目(Loan Prediction)(下)
- STM32相关驱动和软件下载
- python print 函数与print语句区别