破解API加密逆向接口分析,看这篇就够了

破解API加密逆向接口分析,看这篇就够了

每日一练:API接口数据逆向,看完这篇,就能学会找到逆向的入口函数、调试js代码、分析js代码、还原加解密算法!为了能及时获取后续的爬虫及逆向的技术分享文章,请先关注后再接续阅读!

逆向站点背景

本次编写的文章是国外知名的站点,由于其网站的运营数据的准确定性及可以给专业人士提供准确的行业报价的数据而深受国内外的用户青睐!年初的时候这个站点的数据还是可正常的访问的,但是后来因为帮助客户分析数据,一晚上高频抓取了30万的数据,导致站点把国内的访问直接给禁掉了!

被禁掉后就只能科学上网了,一段时间依旧可以访问,到了年中的时候,发现站点已经无法获取到数据了,分析站点后发现核心的接口返回的数据被加密了。

坚持原创写作很不容易,本计划一周写个两篇,优质文章写起来发现真的非常的耗费时间精力。因为有大家的关注,激励我坚持把原创写作的事情做下去。感谢每一个关注我的同学!

逆向站点分析

我们按照下面的操作,对网站进行分析:

  • 打开浏览器
  • 进入网站
  • F12打开控制台
  • 发送请求

会看到如下图所示的结果网站的页面及控制台数据:

alt
alt

这个是我们获取到的请的api,我们接着分析该请求返回了什么?如下图站点返回显示什么都没有,那么猜测不是静态页面加载的。

alt

那么由上图我确认了该接口的请求并没有返回我们需要的数据,那么我需要的数据又在哪里呢,猜测是异步加载的,因此我们再分析获取到的请求,看看有没有可能是我们需要的数据?

alt 经过进一步的分析我发现有两个接口,符合我们的猜测,因此分别看下他们的返回的结果,发现并没有我们需要的数据呢,这是怎么回事?

alt 如上图片是第一个接口返会的数据,不是我们需要的,直接pass

alt 这是的第二个接口返回的数据,但是返回的数据是一串字符串,看上去也不像我们的需要的数据,这就很奇怪了,数据去哪里了呢?

作为一个资深爬虫工程师,经验告诉我,这是遇到了加密,我们返回的数据被加密成了一串字符串!那我们获取到的数据有啥用呢?

站点接口分析

以我的经验分析,上图一串字符串就是我们的所需要获取的数据,那么我们该如何验证呢?

  • 利用控制台的功能
  • 断点调试
  • 代码分析

现在我们利用浏览器的监听对请求的接口进行断点,当加载到这个接口的时候,如果出现了断点调试的页面,并且我们需要的数据在页面上并没有出现,如下图,说明我们的猜想已经对了一半。如果我们点击如下图的按钮后页面的调试的按钮消失,同时数据被加载出来了。那就可以证明我们的猜想是正确的!

如下图我们成功截取了接口请求!

alt

如下图当我们持续点击按钮消失后,页面成功加载出了我们需要的数据,这也证实了我们的猜想是完全正确的!

alt

但是还是没有获取到数据,且看下面的断点调试?

调试分析

断点分析如下,我们发现api接口的参数出现在了下图中,分析代码应该是使用下图的方法发送了请求,那么猜测只需要跟踪这个请求就可以找到真实的数据返回?

alt 如下图发现了一个post请求就是我们需要追踪的api.

alt

继续单步调试后,发现这个请求返回了和我们上面找到的数据一样的一串字符串。这里猜测觉着在这个接口的逻辑中应该就是我们需要的数据?

alt

调试js代码得到下面的一段代码。我们分析下可能就是解密这段加密字符串的方法? alt

下断点并进入这个方法查看。

alt

单步调试进入这个js文件,并执行单步发现如下的数据就是我们需要的,如下图:

alt 到这边我们就已经确认了我们上面的所有的猜想。下面我们来分析如何将字符串解密成一个对象的。

加密还原

分析代码我们可以根据经验发现如下图的代码是一个AES的加密方法,因此我们需要使用js的cryptojs方法进行还原即可。

alt

但是现在的大模型发展的这么好,我们就使用大模型,帮助我们分析下这段的代码。并编写代码还原。

提示词:你是专业的js开发专家,帮我分析下面的js代码,写的注释必须让不懂编程的人也能看懂:

alt

我们对代码分析之后并使用python3进行还原加解密看下结果:

alt 结果如下成功了:

alt

js逆向、调试、分析、还原、验证完成。当然我同时还原了加密和解密的方法!

       原创不易,点个关注!不会错过后面的js逆向文章!觉着写的不错的可以帮忙点点赞。关注公众号:爬虫与大模型开发。
需要以上源代码的下面留言:“想要代码”。
alt
活跃在一线的爬虫工程师分享自己学习之路我创建了爬虫与大模型开发的星球群适合爱好爬虫及从事爬虫的同学代码相关内容我放到了星球
alt

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt EventFilter用途详解

一、概述 EventFilter是QObject类的一个事件过滤器,当使用installEventFilter方法为某个对象安装事件过滤器时,该对象的eventFilter函数就会被调用。通过重写eventFilter方法,开发者可以在事件处理过程中进行拦截和处理,实现对事…

代码随想录算法训练营第46期

class Solution { public: // 决定dp[i]的因素就是第i房间偷还是不偷。 // 偷第i房间,那么dp[i] dp[i - 2] nums[i] 即:第i-1房一定是不考虑的,找出 下标i-2(包括i-2)以内的房屋,最多可以偷窃的金额为dp[…

Unity插件-Intense TPS 讲解

目录 关于TPS 打开场景:WeaponTest.unity, 只要把这些枪点,打开(默认隐藏,不知道为何), 一开始不能运行如何修复 总结 关于TPS 个人不是TPS,FPS的射击游戏爱好者, 不过感觉这个枪感&…

riscv uboot 启动流程分析 - SPL启动流程

分析uboot 启动流程硬件:启明智显推出M4核心板 (https://gitee.com/qiming-zhixian/m4-openwrt) 1.U-boot和SPL概述 U-Boot 分为 uboot-spl 和 uboot 两个组成部分。SPL 是 Secondary Program Loader 的简称,第二阶段程序加载器。…

springboot083基于springboot的个人理财系统--论文pf(论文+源码)_kaic

基于springboot的个人理财系统 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了个人理财系统的开发全过程。通过分析个人理财系统管理的不足,创建了一个计算机管理个人理财系统的方案。文章介绍了个…

JavaEE初阶---多线程(三)---内存可见性/单例模式/wait,notify的使用解决线程饿死问题

文章目录 1.volatile关键字1.1保证内存的可见性--引入1.2保证内存的可见性--分析1.3保证内存的可见性--解决1.4内存可见性-JMM内存模型 2.notify和wait介绍2.1作用一:控制调度顺序2.2作用二:避免线程饿死2.3notify和notifyAll区分 3.单例模式--经典设计模…

GoogleChrome的安装和使用

Google Chrome 文章目录 Google Chrome安装主页设置扩展程序 安装 chrome官网 正规的下载好之后logo是这样的 主页设置 说明 正常情况下, GoogleChrome是无法正常访问的, 因为chrome的搜索引擎默认使用的是谷歌搜索, 而在国内是无法正常访问谷歌搜索的, 所以需要更改一下主页…

【C语言】预处理(预编译)详解(上)(C语言最终篇)

文章目录 一、预定义符号二、#define定义常量三.、#define定义宏四、带有副作用的宏参数五、宏替换的规则六、宏和函数的对比1.宏的优势2.函数的优势3.宏和函数的命名约定 一、预定义符号 学习本篇文章的内容推荐先去看前面的编译和链接,才能更好地理解和吸收&#…

基于springboot+vue的高校就业管理系统,

基于springbootvue的高校就业管理系统, 分为管理员:测试账号:10086/123 学生:测试账号:10087/123 包含个人信息、查看企业岗位信息、简历信息管理、我的应聘企业:测试账号:10070/123 包含企业信息、岗位企业信息管理、查看学生简历信息…

颠覆级AI:10秒生成超清视频

颠覆级AI:10秒生成超清视频 Pyramid-Flow 是一款开源 AI 视频生成神器💻,只需文字或图片即可极速生成高清视频🎥!高效、高清、资源需求低,适合创作广告、教学视频等多种用途🚀,快来…

VIVO售后真好:屏幕绿线,4年免费换屏

只要亮屏就有。这也太影响使用了。 本来想换趁机换手机,看了VIVO发布的X200,决定等明年的X200 ULTRA。手头这个就准备修。 查了一下价格,换屏1600,优惠1100。咸鱼上X70 PRO也就800。能不能简单维修就解决呢?于是联系…

4款免费恢复工具,一键拯救你的重要资料

不管是学习的资料、工作的文件,还是重要的照片和视频,要是丢了或者不小心删了,我们肯定急得像热锅上的蚂蚁。不过好在科技发达了,出现了一些能找回数据的神奇工具。今天,我就带你去看看四款免费数据恢复的工具&#xf…

【无人机设计与控制】改进人工势场法,引入模糊控制实现无人机路径规划和避障

摘要 本文提出了一种基于改进人工势场法并结合模糊控制的无人机路径规划和避障方法。传统的人工势场法在处理障碍物时易出现局部极小值问题,且对动态障碍物的应对能力有限。为了解决这些问题,我们引入了模糊控制来调整势场参数,从而使无人机…

Mybatis中的参数占位符:${...} 、#{...}的区别

Mybatis中的参数占位符:${...} 、#{...}的区别 在Mybatis中提供的参数占位符有两种:${…} 、#{…} #{…} 执行SQL时,会将#{…}替换为?,生成预编译SQL,会自动设置参数值使用时机:参数传递,都使…

Java面试题——微服务篇

1.微服务的拆分原则/怎么样才算一个有效拆分 单一职责原则:每个微服务应该具有单一的责任。这意味着每个服务只关注于完成一项功能,并且该功能应该是独立且完整的。最小化通信:尽量减少服务之间的通信,服务间通信越少&#xff0c…

C++11实践指北

C11:书、在线工具、库。 书 1. 《现代C语言核心特性解析》 覆盖 C11~C20 特性的讲解。 视频跟读:https://www.bilibili.com/video/BV1nN4y1j7fv 现代CPP随笔_0CCh - 每天5分钟了解现代C新特性 2. 《C Primer》第五版 基于 C11 的 C 入门书。 正在看…

Python实现贝叶斯优化器(Bayes_opt)优化简单循环神经网络分类模型(SimpleRNN分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 贝叶斯优化器 (BayesianOptimization) 是一种黑盒子优化器,用来寻找最优参数。 贝叶斯…

时间序列预测(九)——门控循环单元网络(GRU)

目录 一、GRU结构 二、GRU核心思想 1、更新门(Update Gate):决定了当前时刻隐藏状态中旧状态和新候选状态的混合比例。 2、重置门(Reset Gate):用于控制前一时刻隐藏状态对当前候选隐藏状态的影响程度。…

质量漫谈一

我知道很多同学看到这类问题,第一反应想要去寻找的就是作为测试角色,应该要如何如何去做?但是今天这里作为质量第一篇,不打算按照这样单角度去写,这类同学可以就此打住,如果在意的话,可关注后续…

python源码编译—Cython隐藏源码(windows)

文章目录 1、前言2、依赖3、操作示例 1、前言 很多时候,我们想提供我们的程序给别人使用,但又不想让别人看到我们的源代码,这样我们就需要对python代码进行编译,然后打包发送给别人使用。 2、依赖 安装Visual Studio Installer。…