本文是大众点评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分析记录相关推荐

  1. 大众点评APP分析随笔

    移动APP:大众点评 一.最核心功能:店铺评价功能,用户可以通过此功能对商家进行评分,也可以获取其他人对商家的评分信息. 二.核心功能满足的需求: 1. 去过商家消费的用户:用户已经体验的商家提供的产 ...

  2. 大众点评 App 搜索基于知识图谱的深度学习排序实践

    点击"开发者技术前线",选择"星标????" 13:21 在看|星标|留言,  真爱 本文授权转载自:美团技术博客 本文介绍了大众点评搜索核心排序层模型的演化之 ...

  3. 美团技术分享:大众点评App的短视频耗电量优化实战

    美团技术专栏: 关注MAYOU18 前言 美团测试团队负责App的质量保证工作,日常除了App的功能测试以外,还会重点关注App的性能测试.现在大家对手机越来越依赖,而上面各App的耗电量,直接影响了 ...

  4. 大众点评App的短视频耗电量优化实战,android应用案例开发大全第4版

    一.案例分析 短视频作为已被市场验证的新内容传播载体,能有效增加用户停留时长.大众点评App从9.3版本开始推出短视频相关内容,在各页面新增了短视频模块.在短视频功能测试中,我们发现如果在视频列表页中 ...

  5. 大众点评app 数据解密和反序列化

    在使用charles 抓大众点评app数据包的时候会发现,请求接口是没有加密的. 但是抓到的数据 全都是乱码,这其实是点评使用了加密算法,所以就需要对应的解密算法. 数据解析操作需要先解压缩,然后再解 ...

  6. PHP CURL 爬取大众点评app中的点评

    PHP CURL 爬取大众点评app中的点评 先在大众点评APP找一个想爬取的点评链接 处理链接 配置抓取点评的CURL方法 查看是否爬取到了数据 处理爬取回来的数据 先在大众点评APP找一个想爬取的 ...

  7. 大众点评数据采集分析

    大众点评数据采集(2019.06) 介绍 大众点评是中国领先的本地生活信息及交易平台,也是全球最早建立的独立第三方消费点评网站.大众点评不仅为用户提供商户信息.消费点评及消费优惠等信息服务,同时亦提供 ...

  8. 大众点评cat接入记录

    背景 因为公司api接口时不时的被人攻击,频繁的撞库,所以需要一套完整的监控体系来管理所有的接口.组内其他人正在快速迭代一个初期的监控报警体系,而我闲着没事就顺便看了下大众点评的cat,刚好以前的同事 ...

  9. 大众点评 mtgisg分析

    文章转载 :https://blog.csdn.net/heier_blue/article/details/126867621?spm=1001.2014.3001.5502 研究大众点评的时候会发 ...

最新文章

  1. Intel Realsense D435 Post-processing filters 后处理过滤器(用于消除图像的黑洞)
  2. pycharm 如何使用git链接到github实现代码提交
  3. Spark Streaming 实战案例(二) Transformation操作
  4. 一个简单 JDK 动态代理的实例
  5. java跳跳球代码,README.md
  6. SpringBoot+SpringAOP+Java自定义注解+mybatis实现切库读写分离
  7. Java连接HBase数据库,操作HBase数据库
  8. AD画PCB时,如何自动删除之前的连线
  9. C++:重载、重写、重定义
  10. android studio导入arr文件
  11. MySQL 实现FULL JOIN的几种方式
  12. w7计算机防火墙无法更改,w7防火墙无法更改该怎么办
  13. 情侣间为不吵架而“约法三章”,12条可参考理由!
  14. 四轴飞行器——电调校准
  15. 教师计算机应用基础知识,计算机应用基础
  16. MyIE2 更名为 Maxthon
  17. Hypermesh 12.0 中球体的六面体网格划分
  18. 银行贷款预测模型项目(Loan Prediction)(下)
  19. STM32相关驱动和软件下载
  20. python print 函数与print语句区别

热门文章

  1. 【金融123】ISDA协议
  2. 《迅雷链精品课》第四课:区块链技术的发展趋势
  3. canvas教程10-绘制文本
  4. Javascript基础之-var,let和const深入解析(二) - 三者的规范描述、临时死区 (TDZ)、双定义
  5. Postgresql 之 数据库认证
  6. 华为 eNSP 模拟器配置动态路由(ospf)
  7. 【Proe】三维模型转二维CAD图
  8. Firefox OS简介
  9. kubeadm部署kubernetes
  10. 优化DNS,加快DNS的解析速度