Nodejs爬虫遇到js加密问题 想请教一下前端大哥们
Nodejs爬虫遇到js加密问题 想请教一下前端大哥们
不懂为什么这个 JSON.parse 可以将数据修改了?我应该怎么进行逆向去找?
啥都看不出来…
#2 http://www.xiniudata.com/project/lib 网址在这…
parse 被 hook 掉了
看链接,剩下的自己搞吧
#7 多谢!方便告诉我是怎么找到 e1(e2(str))的执行吗?
u.c(u.d(JSON.stringify(l.payload)))
u.d=e1
u.c=e2
function e2(e) {
if (null == (e = _u_e(e)))
return null;
for (var t = “”, n = 0; n < e.length; n++) {
var r = _p.charCodeAt(n % _p.length);
t += String.fromCharCode(e.charCodeAt(n) ^ r)
}
return t
function e1(e) {
if (null == e)
return null;
for (var t, n, r, o, i, a, u, c = “”, s = 0; s < e.length; )
o = (t = e.charCodeAt(s++)) >> 2,
i = (3 & t) << 4 | (n = e.charCodeAt(s++)) >> 4,
a = (15 & n) << 2 | (r = e.charCodeAt(s++)) >> 6,
u = 63 & r,
isNaN(n) ? a = u = 64 : isNaN® && (u = 64),
c = c + _keyStr.charAt(o) + _keyStr.charAt(i) + _keyStr.charAt(a) + _keyStr.charAt(u);
return c
}
断下后,F11 单步走就跟到了。
楼上大佬说的很清楚了,一步步找就行。我一般是 charles 把 js 整在本地测试打函数
#11 好的 多谢!
#10 谢谢大佬!
遇到Node.js爬虫中的JS加密问题,可以尝试以下步骤来解决:
分析加密参数
-
定位加密代码:
- 使用开发者工具(如Chrome的DevTools)定位网页中的JS加密代码。
- 查找影响数据获取的加密参数,通过对比不同请求的参数变化来确定。
-
理解加密逻辑:
- 分析加密参数是如何生成的,可能是通过之前的请求传递,也可能是在某个JS文件中生成。
- 如果加密逻辑在JS文件中,需要找到对应的JS文件并理解其代码。
实现解密逻辑
-
在Node.js中执行JS代码:
- 如果加密逻辑简单,可以直接在Node.js中模拟执行。
- 使用
execjs
库来执行调试好的JS加密代码。
-
示例代码:
const execjs = require('execjs'); const context = execjs.compile(` function encrypt(word) { // 假设这是从网页JS代码中提取的加密函数 var tkey = "your_key"; var tiv = "your_iv"; var CryptoJS = {/* 引入CryptoJS库 */}; // ... 加密逻辑 return encrypted.toString(); } `); const encryptedWord = context.call('encrypt', 'your_word'); console.log(encryptedWord);
-
调用API:
- 在获取到加密参数后,使用Node.js的HTTP库(如
axios
或node-fetch
)调用API,并传入加密参数。
- 在获取到加密参数后,使用Node.js的HTTP库(如
总之,解决Node.js爬虫中的JS加密问题需要对前端技术和Node.js有一定了解,同时需要耐心和细心地分析网页的JS代码。