python 逆向

2023-11-03

1、目标网址:https://www.qimingpian.com/finosda/project/pinvestment

2、抓包查看响应体:

 

3、数据加密

4、打上断电进行调试

 

5、抠出代码进行运行

 

 6、总结

function o(t)就是我们需要的解密函数,可以看到它先调用s函数,传入了四个参数,除了a.a.decode(t)外其他三个都是写死的,最后用JSON.parse转为json对象。

然而,找到解密函数后,我们要做的不是去分析它函数内部做了什么,虽然可以研究它的解密算法然后用Python重写,但这样太复杂且没必要。因为我们可以用PyExecJS这个库,直接用Python调用并执行js代码。

这时候,WebStorm就派上用场了。新建一个js文件,把function o里涉及的代码全部抠下来。然后执行console.log把执行结果打印出来。篇幅问题就只贴部分代码:

//解密函数
function my_decrypt(t) {
    return JSON.parse(s("5e5062e82f15fe4ca9d24bc5", my_decode(t), 0, 0, "012345677890123", 1))
}

//解密函数依赖项
function my_decode(t) {
    c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    f = /[\t\n\f\r ]/g
    var e = (t = String(t).replace(f, "")).length;
    e % 4 == 0 && (e = (t = t.replace(/==?$/, "")).length),
    (e % 4 == 1 || /[^+a-zA-Z0-9/]/.test(t)) && l("Invalid character: the string to be decoded is not correctly encoded.");
    for (var n, r, i = 0, o = "", a = -1; ++a < e; )
        r = c.indexOf(t.charAt(a)),
            n = i % 4 ? 64 * n + r : r,
        i++ % 4 && (o += String.fromCharCode(255 & n >> (-2 * i & 6)));
    return o
}

//测试代码,加密参数太长就不贴上来了
encrypt_data = "xxx"
decrypt_data = my_decrypt(encrypt_data)
console.log(decrypt_data)
确实是我们需要的数据没错,最后用Python去调用解密函数就行了。调用时还有个需要注意的地方,因为直接返回object给Python会报错,所以这里将JSON.parse移除了,返回parse前的json字符串,

//解密函数
function my_decrypt(t) {
    return s("5e5062e82f15fe4ca9d24bc5", my_decode(t), 0, 0, "012345677890123", 1)
}
然后在Python中用base64库的b64decode方法来解码即可。

本文所有代码已上传至Github,旨在学习和技术分享,请勿用于商业用途。

总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 逆向 的相关文章

  • 如何使直方图列的宽度都相同

    我在操作直方图时遇到了一些麻烦 我有一个包含两列的 df 我将它们绘制为堆叠直方图 我将它们放入特定的垃圾箱中 请参阅下面的代码 但我想在最后制作一个大垃圾箱 4000 10000 但是 默认情况下 大垃圾箱的列宽很大 有没有办法让这个大垃
  • 页面点击其他路径后 $timeout 继续运行

    我在用yo angular fullstack生成器来构建我的网站 当用户注册该网站时 它将发送一封带有链接的激活电子邮件 当用户点击该链接时 会显示激活成功并超时进入主页 但是 当超时未结束 用户点击页面中的任何其他链接时 会跳转到其他页
  • Relay 中的嵌套片段数据始终相同

    我是 Relay 新手 并且遇到了片段上嵌套数据的问题 当我在 graphiql 中进行测试时 以下查询返回正确的数据 因此我确信我的架构是正确的 viewer customers name billing address city 但是
  • 正则表达式 - 避免表达式中出现字符串

    我正在尝试创建一个应该匹配以下情况的正则表达式 如果单词完全匹配 first second third 那么匹配应该失败 但如果它周围有任何字符 那么应该匹配该字符串 我还需要避免字符串中的某些字符集 如果这些字符是字符串的一部分 则匹配结
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 如何向 RetrievalQA.from_chain_type 添加内存?或者,如何向 ConversationalRetrievalChain 添加自定义提示?

    如何向 RetrievalQA from chain type 添加内存 或者 如何向 ConversationalRetrievalChain 添加自定义提示 在过去的两周里 我一直在尝试制作一个可以通过文档聊天的聊天机器人 因此不仅仅是
  • 如何检查jquery数据表中的每个复选框?

    我有一个第一列带有复选框的表格 我使用 jQuery DataTable 插件显示我的表格 我制作了 2 个链接来选择 取消选择每个复选框 这是选择全部的一个 a href Select all a 和 JavaScript functio
  • pandas-更改重采样时间序列的开始和结束日期

    我有一个时间序列 我将其重新采样到这个数据框中df 我的数据是从6月6日到6月28日 它希望将数据从6月1日延长到6月30日 计数列仅在较长时间内具有 0 值 而我的实际值是从 6 日到 28 日 Out 123 count Timesta
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • 如何在 matplotlib 中第一个 x 轴的底部添加第二个 x 轴?

    我指的是已经提出的问题here https stackoverflow com questions 10514315 how to add a second x axis in matplotlib 在此示例中 用户通过将第二个轴添加到与标
  • Tween JS 基础知识之三个 JS 立方体

    我是 Tween JS 的新手 尝试使用 Tween 制作一个向右移动的简单动画 下面是我在 init 函数中的代码 我使用的是三个 JS var geometry new THREE CylinderGeometry 200 200 20
  • 在 中动态添加链接样式表 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 如何将链接
  • 在 Python 中伪造一个对象是否是类的实例

    假设我有一堂课FakePerson它模仿基类的所有属性和功能RealPerson 不扩展它 在Python 3中 是否可以伪造isinstance 为了认识到FakePerson as a RealPerson只通过修改对象FakePers
  • 如何在 ChartJS 中创建自定义图例

    我需要使用 ChartJS 库为我的圆环图创建自定义图例 我已经使用 ChartJS 提供的默认图例创建了甜甜圈 但我需要一些修改 我希望其价值高于汽车名称 另外 我不喜欢粘性图例 我想将其与甜甜圈分开 这样我就可以更改字体 框的样式 例如
  • 如何在 jQuery 中检查复选框是否被选中?

    我需要检查checked复选框的属性 并使用 jQuery 根据选中的属性执行操作 例如 如果age复选框被选中 然后我需要显示一个文本框来输入age 否则隐藏文本框 但下面的代码返回false默认情况下 if isAgeSelected
  • jQuery fadeOut 一个 div,fadeIn 另一个 div 在其位置

    我正在尝试一个简单的 jQuery 脚本来淡出一个 div 并淡入另一个 div 但由于某种原因 第一个 div 永远不会淡出 这可能是代码的一个明显问题 但我似乎无法弄清楚 div div div div
  • Python Pandas:向类 pandas.core.series.Series 添加方法

    我想在 Python 中处理时间序列 因此 Pandas 的 Series 类非常完美 并且有很多有用的方法 现在我想添加一些我需要但未实现的方法 例如 假设我有兴趣添加一个方法 该方法将两次一值附加到时间序列中 让我们调用该方法appen
  • 重新安装后使用 pandas dataframes 时出现问题

    我已经重新安装了 Python 和 Anaconda 现在面临以下问题 在我将 pkl 文件加载到数据帧并尝试 查看 该文件后 如下所示 df pd read pickle example pkl df 我收到错误 AttributeErr
  • Angular 5 中 Observable.ForkJoin 的重复 Http 请求

    我有一个 Angular 5 应用程序 组件中包含以下代码 ngOnInit Observable forkJoin this highlightedInsight this insightService getHighlightedIns
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但

随机推荐

  • 项目中好用的方法

    1 过滤 数组子项是对象的 对象有重复的 let arr res data filter function item index self return self findIndex el gt el applyPerson item ap
  • jsp 不能识别 el 表达式 的解决方法

    在以前使用EL表达式的时候 在JSP页面直接使用就可以了 但昨天我在做项目的时候在JSP页面上的EL表达式不能被识别 如 loginForm username 在页面上还是显示 loginForm username 后来我在JSP头上加上红
  • java面向对象----封装 && 构造器

    目录 封装和隐藏 为什么需要封装 信息的封装和隐藏 四种访问权限修饰符 构造器 构造方法 构造器的特征 语法格式 构造器重载 构造器重载举例 属性赋值过程 JavaBean UML类图 关键字 this this是什么 使用this 调用属
  • 抠图算法Background Matting:The world is your green screen

    论文地址 https arxiv org abs 2004 00626 代码 https github com senguptaumd Background Matting 背景介绍 抠图是照片编辑和视觉效果中使用的标准技术 在现有的抠图算
  • Python之浮点型

    python默认的是17位小数的精度 不支持32bit的单精度浮点数 如果程序需要精确控制区间和数字精度 可以考虑使用numpy扩展库 一 单精度和双精度的区别 内存不同 单精度浮点数占用4个字节 32位 存储空间 符号位1位 阶码8位 位
  • 【MySQL安装过程中显示ddl文件缺失】

    写在前面 每个人都遇到过 无法找到 dll文件 的消息弹窗 各位 这个问题终于可以解决了 在这里你可以找到电脑上最常丢失或损坏的文件 自由下载 无任何费用 1 问题描述 安装MySQL过程中遇到的问题 如图 这些是同一类问题 都是由于缺少
  • Go导入本地包

    举例来说项目文件结构如 C go mod go sum main go models User go 如果想要再main go中导入models包 那么首先需要在go mod中配置 则可以用 这种方式来导入models中的文件
  • 【读书笔记】周志华 机器学习 第五章 神经网络

    第五章 神经网络 1 神经元模型 2 感知机和多层网络 3 误差反向传播算法 4 局部极值点和鞍点 5 其他神经网络 6 参考文献 1 神经元模型 在生物神经网络中 一个神经元A与其他神经元相连 当它兴奋时 会向相连的神经元B发送化学物质改
  • CTFHUB-Refer注入

    Referer Referer 指当前请求的URL是在什么地址引用的 例如在www a com index html页面中点击一个指向www b com的超链接 那么 这个www b com的请求中的Referer就是www a com i
  • 区块链入门笔记(一)区块链概括

    区块链入门 李永乐老师的两个视频可以快速帮助入门区块链 1 比特币和区块链啥原理 矿机挖矿咋回事 2 比特币交易如何防伪 私钥公钥地址啥意思 比特币发展历史 在2008年之前 主要研究是比特币的基础例如数据加密 分布式系统等等 1 中本聪在
  • Valve.VR.SteamVR_AutoEnableVR_UnityPackage.Update () (at Assets/SteamVR/Editor/SteamVR_AutoEnableVR_

    unity 中导入 Steam Vr puls 报错 Valve VR SteamVR AutoEnableVR UnityPackage Update at Assets SteamVR Editor SteamVR AutoEnable
  • 适配ios13

    更新Xcode之后 新项目需求 新建项目发现多了如图1所示两个新的文件SceneDelegate h和SceneDelegate m 运行之后发现黑屏 无论是真机还是模拟器都不行 换到iOS12的手机上则可以正常运行 查看官方文档 Scen
  • Charge IC logic Q&A

    Q Q4 关断有哪些影响 A 1 充电停止 2 Vbat 到 Vsys 通路被断开 Vbus 到 Vsys 通路不受影响 Q Q4 可能被打开的情况 A 1 手机时 shipmode 模式时插入充电器 2 清除 BATFET DIS 标志位
  • pytorch查看网络模型变量以及对应的尺寸

    今天看代码发现 自己对于网络中需要更新的参数并不是很熟悉 然后百度发现了这个方法 记录一下 在自己定义的模型下面加入这一行就可以查看了 for name param in model named parameters print name
  • 【JAVA面试题】为什么会出现4.0-3.6=0.40000001这种现象?

    这种舍入误差的主要原因是 浮点数值采用二进制系统表示 而在二进制系统中无法精确地表示分数 1 10 这 就好像十进制无法精确地表示分数 1 3 样 如果在数值计算中不允许有任何舍入误差 就应该使用 BigDecimal类 浮点数值不适用于无
  • mysql drop语句怎么用_SQL DROP 语句

    http www cnblogs com troywithblog archive 2013 05 24 3096515 html 通过使用 DROP 语句 可以轻松地删除索引 表和数据库 SQL DROP INDEX 语句 我们可以使用
  • sql delete删除的数据怎么恢复_如何恢复按下Shift + DELETE键永久删除的文件和资料夹?...

    简单删除和Shift Delete永久删除 想删除电脑上的任何文件 有以下两种方式 按 DELETE 键简单删除文件 在这种模式下 文件被移动到回收站 此时 如果我们想要恢复已删除的文件和资料夹 请打开回收站 在文件上按右键选择 还原 按
  • Proxmox VE ZFS 开启Thin Provision(精简配置)

    前言 最近在为一台PVE 的VM添加大容量磁盘时 20T 遇到out of disk 错误 遂发现 ZFS在没有开启Thin Provision前 会提前分配磁盘空间 即使一个字节也没有写入 在开启Thin Provision 后问题得到解
  • 【Unity插件】最多的插件合集

    一 前言 最近整理了一下文章 发现我分享了很多的插件 但是如果要查找某一款插件 还需要去搜索才能找到 很不方面 就想要将写过的所有的插件分享也好 教程也好 做一个汇总 然后这篇文章还会不断的更新 在有新的插件之后 熟悉我的人都知道 我对插件
  • python 逆向

    1 目标网址 https www qimingpian com finosda project pinvestment 2 抓包查看响应体 3 数据加密 4 打上断电进行调试 5 抠出代码进行运行 6 总结 function o t 就是我