C妈妈加密返回值逆向分析

news2024/12/23 9:00:29

内容仅供参考学习


 

目标

网址:https://www.chanmama.com/promotionDetail/0IHXaJ1y7lRNaZyiTsKa6vHtvaZDe6zy/live
直播记录接口返回值加密


 

分析

 

  • 打开调试工具,先截获一个请求:
     
     
    在这里插入图片描述
     

  • 进入Initiator
     
     
    在这里插入图片描述
     

  • 一般情况通过这边进入函数中挨着找解密位置
     

  • 我们这边用二般方法:搜索
     
     
    在这里插入图片描述
     

  • 遇到解密我们一般可以直接搜索decrypt,加密的话就是encrypt了
     

  • 点击第一个app.xxxx.js
     
     
    在这里插入图片描述
     
    在这里插入图片描述
     

  • 打上断点后,重新触发一次请求
     
     
    在这里插入图片描述
     

  • 此时只能看到e为返回的加密值,我们在return最末那边打上个断点,看看中间操作是否为解密
     
     
    在这里插入图片描述
     

  • 到了这里我们就可以知道我们找的地方是正确的了


 

剥离 JS 加密代码

 

  • 由于这是个webpack格式,所以第一步寻找分发器,这个就不过多介绍了
     
     
    在这里插入图片描述
     

  • 找到分发器位置后,开始寻找_这个对象在哪里生成或者说被赋值的, 下面的x也在这边:
     
     
    在这里插入图片描述
     

  • 后面就是把分发器自执行函数整个扣下来:

    (function(t) {
    省略
        var m = u;
        c.push([0, "chunk-vendors"]),
        n()
    }
    )({字典内容先不抠过来})
    

 

  • 然后定义一个全局变量,给它赋值分发器外层的函数,这样我们后面可以通过全局变量来调用我们需要的方法
     
     
    在这里插入图片描述
     
  • 后面我们在分发器那边console.log一下,看看缺哪些东西,然后补在我们之前空着的字典里就行了就行了
     
     
    在这里插入图片描述
     
  • 最终模拟解密就行了
function decrypt(e){
    return  App = app("3452"),
            Decrypt = app("acff"),
            n = App.enc.Utf8.parse("cmmgfgehahweuuii"),
            a = App.AES.decrypt(e, n, {
                mode: App.mode.ECB,
                padding: App.pad.Pkcs7,
            }),
            i = O(a),
            r = Decrypt.ungzip(i, {
	            to: "string"
	        }),
            r
}

在这里插入图片描述
 

欢迎朋友们V一起交流: zcxl7_7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/31026.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML CSS游戏官网网页模板 大学生游戏介绍网站毕业设计 DW游戏主题网页模板下载 游戏娱乐网页成品代码

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

#边学边记 必修5 高项:对人管理 第2章 项目沟通管理和干系人管理 2-5 项目干系人管理

导学 重要知识点:干系人分析,干系人分类、分析技术、项目干系人管理过程的输入、工具与技术、输出等。下午的案例题可能会涉及与项目干系人管理知识点相关的简答题。 干系人管理的过程 1. 识别干系人 识别能够影响项目决策、活动或结果的个人、群体或…

Lysozyme C (46-61) (chicken),62982-31-4

AMPs是由相对较小的分子组成的异质基团,通常含有不到100个氨基酸。 它们最初是在20世纪60年代由Zeya和Spitznagel 在多形核白细胞溶酶体中描述的。 迄今为止,已在数据库(如数据库)中 确定和登记了2600多个AMP。 它们是由几乎所有的…

Mysql语法三:表的约束和表与表之间的关系以及高级查询

目录 1.表的约束 1.1:约束类型 1.2:NULL约束 1.3:UNIQUE:唯一约束 1.4:DEFAULT :默认值约束 1.5:PRIMARY KEY:主键约束 1.5.1:联合主键 1.5.2:自增主键 1.6:FORE…

HOOPS 3DGS技术概述

1.什么是HOOPS 3D图像系统 HOOPS 3D图形系统(HOOPS/3DGS)是一款高性能3D图形工具包,适用于开发人员构建Windows和UNIX操作系统以及Internet应用程序。HOOPS/3DGS高度优化的数据结构和算法大大简化了基于CAD/CAM/CAE、科学可视化和地理信息系…

Flutter的三棵树

一、Flutter常见的家族成员 Widget常见的家族成员 Element常见的家族成员 Render常见的家族成员 二、示例代码对应的Flutter Inspector树 示例代码:MyApp->MyHomePage->ErrorWidget,包含了StatelessWidget、StatefulWidget、LeafRenderObjectWid…

远程医疗解决方案-最新全套文件

远程医疗解决方案-最新全套文件一、建设背景二、建设思路三、建设方案四、获取 - 远程医疗全套最新解决方案合集一、建设背景 针对当今社会医疗资源分布不均、看病难看病贵、医学单位间学术交流和研讨开展困难,华为公司推出了远程医疗解决方案,实现远程…

springboot(13):spring 过滤器和拦截器的区别

目录过滤器和拦截器的区别过滤器的使用1.使用spring boot提供的FilterRegistrationBean2.使用原生servlet注解定义Filter拦截器的使用在前面我们讲过拦截器怎么使用,参考:拦截器 和拦截器有个差不多的叫过滤器。 过滤器和拦截器的区别 首先看一下下面…

1535. 找出数组游戏的赢家

给你一个由 不同 整数组成的整数数组 arr 和一个整数 k 。 每回合游戏都在数组的前两个元素(即 arr[0] 和 arr[1] )之间进行。比较 arr[0] 与 arr[1] 的大小,较大的整数将会取得这一回合的胜利并保留在位置 0 ,较小的整数移至数组…

[附源码]计算机毕业设计JAVA竞价拍卖系统

[附源码]计算机毕业设计JAVA竞价拍卖系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis M…

Spring 源码阅读 04:BeanFactory 初始化

本篇要阅读的是 BeanFactory 初始化的部分,也就是 refresh 方法中的这一行方法调用: // Tell the subclass to refresh the internal bean factory. // 这里会调用模版方法,通过子类的实现,初始化 BeanFactory 并解析 XML 配置 C…

企业快速构建可落地的IT服务管理体系的五大关键点

随着数字化转型的发展,IT运维管理环境日益复杂,对管理的要求也随之增高如何提升运维效率,快速落地做好运维管理,搭建一套IT服务管理必不可少,以往我们也对IT服务管理框架进行过总结,当下,面对很…

Linux ALSA 之三:简单的 ALSA Driver 实现

简单的 ALSA Driver 实现一、概述二、Linux ALSA 音频设备驱动实例1、注册 Platform Device & Platform Driver2、创建 card3、PCM 设备相关设定3.1 创建 PCM Device3.2 设置 PCM 操作3.2 PCM HW 初始化4、Control 设备相关设定4.1 定义 snd_kcontrol_new4.2 构造 control5…

C语言实现冒泡排序(图解)

目录 一、冒泡排序是什么? 二、图解冒泡排序过程 三、代码实现 3.1易错点(切记切记) 四、优化 4.1优化代码 一、冒泡排序是什么? int arr[]{9,8,7,6,5,4,3,2,1,0} ,像这样的数组,升序排序。 冒泡排序…

Dynamic Potential-Based Reward Shaping将势能塑形奖励函数拓展为F(s,t,s‘,t‘)

摘要 基于势能的奖励塑形可以显著降低学习最优策略所需的时间,并且在多agent系统中,可以显著提高最终联合策略的性能。已经证明,它不会改变一个agent单独学习的最优策略或多个agent一起学习的纳什均衡。 ------然而,现有证明的一…

正厚软件-软件测试用例设计方法之二-边界值

正厚软件-刘老师的干货分享 上一课我们学习测试用例的等价类划分法,今天我们看下边界值法。 一、方法简介 1、定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充。 2、边界值与等价类…

Linux零拷贝原理学习

文章目录一、为什么要有 DMA 技术?二、传统的文件传输有多糟糕?三、如何优化文件传输的性能?四、 如何实现零拷贝?mmap writesendfile使用零拷贝技术的项目五、PageCache 有什么作用?六、大文件传输用什么方式实现?一…

c++动态创建二维数组和释放

动态创建二维数组和释放 文章目录创建参考博客😊点此到文末惊喜↩︎ 创建 指针数组的方式 使用malloc和free可以兼容c相比于使用STL可以更加灵活但是debug可能数组显示不全 // 初始化int **arr;int row 5;//用于表示行数int col 5;//用于表示列数arr new int…

网站升级HTTPS教程

现在越来越多的网站开始使用https协议,其实百度从2014年底就已经开始支持https了,并且据说在排名上,同权重的网站,开启https会优待提升排名。先不管排不排名吧,https是一种更安全更先进的技术。作为互联网的弄潮儿&…

MPU9250数据转换

MPU9250数据转换1. MPU92501.1 MPU9250介绍2. 数据转换2.1 陀螺仪数据转换2.2 加速度数据转换1. MPU9250 1.1 MPU9250介绍 1)MPU9250 内部集成有 3 轴陀螺仪、3 轴加速度计和 3 轴磁力计 2)输出: 16 位的数字量; 3) 通过集成电路…