1.第一题 js混淆源码乱码 - 猿人学
: url 时间戳加密
右键遇到反调试,参考前面的文章 过反调试
2.ast解混淆
首页1.js 拿到 function oo0O0, 在<script>标签里面, 无法调试,分析自己提取出来,或则hook替换
加密逻辑存在于window.a中,套娃中的套娃
经过第一个循环拿到window.b
格式化后
很明显了
是一个md5加密
接着分析
J ('0x0', ']dQW') = mwqqppz
继续调试输出,结合刚才的md5 加密结尾js有一个整个
代码逻辑就很明显了,也就是用hex_md5(mw),mw就是传进去的时间戳,回到刚才AST解混淆之后的代码,知道得到时间戳之后还要+100000000
var _0x2268f9 = Date.parse(new Date()) + 100000000;
3.写代码
完整python代码如下:
import urllib.parsefrom curl_cffi import requests
import time
import execjswith open('test.js','r') as f:js_code = f.read()
f.close()
last_result=''
for i in range(5):i = i+1thetimestap = int(time.time()) * 1000 + 100000000ctx = execjs.compile(js_code)result = ctx.call('test', thetimestap,last_result)print(result)thestap = resultlast_result = thestapparam = urllib.parse.quote_plus(thestap+'丨'+str(int(thetimestap/1000)))myurl = 'https://match.yuanrenxue.cn/api/match/1'+'?page='+str(i)+'&m='+paramprint(myurl)res = requests.get(myurl)print(res.text)