【JS逆向学习】同花顺(q.10jqka)补环境

逆向目标

目标网址:https://q.10jqka.com.cn/
目标接口
https://q.10jqka.com.cn/index/index/board/all/field/zdf/order/desc/page/3/ajax/1/
目标参数:cookie

逆向过程

老规矩,先分析网络请求,发现是 cookie 加密,那就好办了,我们直接 hook ,不知道怎么 hook 的可以参考我的另一篇文章JS常用HOOK调试技术
在这里插入图片描述
这里我们直接控制台注入hook 代码,然后翻页发现代码断在了设置cookie的位置,如下图
在这里插入图片描述

逆向分析

找到入口接下来跟栈分析就行了
在这里插入图片描述
继续向下跟
在这里插入图片描述
我们新建个无痕浏览器并把代码拷贝进去执行下,将rt变量暴露出来,然后控制台继续执行rt.update(),😊得来全不费功夫
在这里插入图片描述
但是浏览器环境和nodejs环境是不同的,我们把代码在 nodejs中执行发现报错document未定义,缺什么补什么就行了
在这里插入图片描述
这里我们先用jsdom简单补一下

const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM('<!DOCUMENT html><p>Test</p>')
window = dom.window
document = window.document
navigator= window.navigator

发现还是报错Error: Not implemented: HTMLCanvasElement.prototype.getContext (without installing the canvas npm package)
在这里插入图片描述
查资料时网上很多说法是安装 canvas: npm install canvas,其实并没有什么用,补上以下环境就OK了

window.HTMLCanvasElement.prototype.getContext = () => {

  // return whatever getContext has to return

};

在这里插入图片描述
拿到我们想要的结果了,至此加密参数的分析过程就完成了

逆向总结

回顾整个流程,其实没有什么难度,入口也很好找,参数的加密逻辑也不复杂,源码下载

原创声明:未经许可,不得转载。
如有侵权,请联系作者删除删除。

### 同花顺逆向工程分析方法 #### 数据流跟踪与变量生成路径确认 在进行同花顺逆向工程的过程中,首要目标是对软件内部的数据流动进行全面的理解。这可以通过栈追踪技术来完成,即定位到关键变量的生成位置,并进一步追溯这些变量在整个程序运行期间是如何被创建和使用的。这种方法能够清晰地展示出变量从无到有的整个生命周期及其加密逻辑[^2]。 #### 动态调试工具的应用 为了更深入地研究同花顺客户端的行为模式,在实际操作中可以借助动态调试工具如`objection`来进行探索性测试。例如命令 `$ objection -g com.lechuan.mdwz explore` 可用于启动一个交互式的shell环境,从而允许开发者检查特定类(比如 MethodPatchEntry 类)是否已经被成功加载至内存之中[^3]。这种手段对于验证假设以及收集实时数据非常有效。 #### Python API 的数据分析能力充 除了传统的反编译技术和动态分析之外,还可以考虑结合现代编程语言所提供的强大功能来增强我们的工作效率。特别是当涉及到大量复杂金融数据处理时,使用像 Python 这样的高级脚本语言配合专门设计好的第三方库(如同花顺官方提供的API),不仅可以简化许多繁琐的任务,而且还能提高最终结果的质量。需要注意的是,在依赖此类接口前应详细了解它们的工作原理、性能表现等方面的信息以便做出合理的选择[^4]。 #### 自定义函数实现案例分享 最后值得一提的例子来自于 C++ 领域的一个简单项目——CreateDll 工程展示了如何构建最基本的 Windows 平台下共享库文件(.dll),其中包含了对外暴露的功能入口 `sum()` 函数原型声明部分采用了标准C兼容的方式(`extern "C"` 关键字修饰)加上导出属性标记(_declspec(dllexport))共同作用使得其他应用程序可以直接调用该DLL内的公共成员;而具体实现体则保持常规做法即可满足基本需求[^5]。 ```cpp // CreateDll.cpp extern "C" _declspec(dllexport) int sum(int a, int b); int sum(int a, int b) { return a + b; } ``` 以上内容综合运用了多种不同层面的技术要点,旨在提供一套较为完整的思路框架供参考学习之用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗雅颂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值