写一篇实战的逆向文章 只提供逆向思路不提供源码
只可用于学习研究 禁止商用
目标网站
https://ec.minmetals.com.cn/open/home/purchase-info/
请求分析
点击翻页按钮 观察请求 发现请求都是成对出现的
首先访问了 open/homepage/public接口 返回了一个字符串
第二次访问了 /open/homepage/zbs/by-lx-page 接口 得到了明文

请求成对出现 /public接口和by-lx-page接口

第一次请求(public接口 )返回了一个字符串

第二次返回了明文
by-lx-page接口分析
观察数据包 发现在请求体中有一个param参数

解决了这个param这个网站就搞定了
逆向参数
首先打上xhr断点 跟堆栈 最后确定 d函数就是加密函数的入口


n 为明文 但是执行e.call(t, n)之后 就是我们需要的param参数

然后单步执行进入到函数内部查看加密逻辑

这个就是加密函数 其中 A.prev = A.next 恒等于4 所有直接走case4
return n = A.sent,
r = n.data,
t.setPublicKey(r),
a = b(b({}, e), {}, {
sign: f()(JSON.stringify(e)),
timeStamp: +new Date
}),
s = t.encryptLong(JSON.stringify(a)),
A.abrupt("return", s);
所以 这一段就是加密函数 在index.js当中

如果没有定位到 直接在index.js 搜索 t.setPublicKey
JS代码
代码这里就不粘了 因为太长了一直粘贴不成功
只需要将函数补完就行了 对象不需要补 只需要补全用到的对象的属性或者方法

文章探讨了如何通过分析网络请求和使用xhr断点来逆向工程一个网站的加密过程。重点在于识别加密函数入口,特别是d函数,它涉及到了param参数的生成。在index.js文件中找到了加密逻辑,其中t.setPublicKey是一个关键步骤。虽然没有提供完整代码,但指出只需补充相关对象的方法和属性即可完成加密过程。
8602

被折叠的 条评论
为什么被折叠?



