scrape网站wasm加密逆向

📅 2026/8/8 6:31:31
scrape网站wasm加密逆向
网站Scrape | Movie https://spa14.scrape.center/抓包有一个sign参数加密复制到Convert curl commands to Python这个网站获得基础代码import requests headers { Accept: application/json, text/plain, */*, Accept-Language: zh-CN,zh;q0.9,en;q0.8,en-GB;q0.7,en-US;q0.6, Connection: keep-alive, DNT: 1, Referer: https://spa14.scrape.center/, Sec-Fetch-Dest: empty, Sec-Fetch-Mode: cors, Sec-Fetch-Site: same-origin, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0, sec-ch-ua: NotA?Brand;v99, Microsoft Edge;v151, Chromium;v151, sec-ch-ua-mobile: ?0, sec-ch-ua-platform: Windows, } params { limit: 10, offset: 0, sign: 595360780, } response requests.get(https://spa14.scrape.center/api/movie/, paramsparams, headersheaders) print(response.json())定位查找sign参数的加密的位置1、全局搜索2、堆栈查找首先点击进入源代码打上一个断点刷新页面到此处已经发现sign的值但是没有发现定义sign继续找继续找在此处找到定义跳转到一个看不懂的地方用豆包解决一下最后的结果import requests import time import json import sys # 解决windows控制台GBK打印报错放在代码最开头 if sys.platform win32: sys.stdout.reconfigure(encodingutf-8) headers { Accept: application/json, text/plain, */*, Accept-Language: zh-CN,zh;q0.9,en;q0.8,en-GB;q0.7,en-US;q0.6, Connection: keep-alive, DNT: 1, Referer: https://spa14.scrape.center/, Sec-Fetch-Dest: empty, Sec-Fetch-Mode: cors, Sec-Fetch-Site: same-origin, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0, sec-ch-ua: NotA?Brand;v99, Microsoft Edge;v151, Chromium;v151, sec-ch-ua-mobile: ?0, sec-ch-ua-platform: Windows, } def wasm_encrypt(var0: int, var1: int) - int: div int(var1 / 3) res var0 div 16358 return res limit 10 # 循环翻页page从1~9 for page in range(1, 10): # 【重要每一页循环内重新计算n、time_sec、sign e】 offset (page - 1) * limit n offset time_sec round(time.time()) e wasm_encrypt(n, time_sec) params { limit: limit, offset: offset, sign: e, } response requests.get(https://spa14.scrape.center/api/movie/, paramsparams, headersheaders) print(f page {page} offset{offset} sign{e} ) # 方案1loads之后用json.dumps打印不会报gbk错误 ensure_asciiFalse输出中文 data response.json() print(json.dumps(data, ensure_asciiFalse, indent2))