龙空技术网

JS逆向 -- 某翻译抓包分析Sign值

之乎者也吧呀 1029

前言:

现在咱们对“c语言sign函数怎么写”大致比较关心,同学们都想要了解一些“c语言sign函数怎么写”的相关资讯。那么小编也在网摘上搜集了一些关于“c语言sign函数怎么写””的相关文章,希望大家能喜欢,咱们快快来学习一下吧!

一、某翻译网站输入英语出来汉语

二、打开F12通过抓包对比,获取需要分析的加密参数

对比数据包

三、经过对比发现sign值被加密了,每次请求都不一样,mysticTime值应该是时间戳,不用考虑

四、全局搜索sign值,经过挨个测试,定位到该JS文件,下断,点击翻译,成功断了下来

五、经过分析,t是时间戳,e是固定的值'fsdsogkndfokasodnaso',下面开始找h函数的由来,将鼠标放到h函数上,跳到该函数

function h(e, t) {   return v(`client=${d}&mysticTime=${e}&product=${u}&key=${t}`)}

六、h函数中,d、e、u、t函数都是固定值,所以再次分析v函数

function v(e) {   return r.a.createHash("md5").update(e.toString()).digest("hex")}

七、看到了md5的字眼,可以判断该函数是md5加密,找到一段md5加密的源代码,将参数带入进去

"client=fanyideskweb&mysticTime=1683532535765&product=webfanyi&key=fsdsogkndfokasodnaso"

八、运行代码对比结果,发现结果一样,该sign值就是一个普通的md5加密

九、代码实现

import execjsimport timeimport requestsnode=execjs.get()fp=open('jiami.js','r',encoding='utf8')ctx=node.compile(fp.read())r=int(time.time()*1000)a='client=fanyideskweb&mysticTime='+str(r)+'&product=webfanyi&key=fsdsogkndfokasodnaso'jsres='MD5_Encrypt("%s")'%(a)sig=ctx.eval(jsres)url=';headers = {    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',    "Referer": ";,    'Cookie':'OUTFOX_SEARCH_USER_ID=1606691500@10.105.137.204; OUTFOX_SEARCH_USER_ID_NCOO=1216413523.1903343'}b=input("请输入要翻译的词")data={"i": b,"from": "auto","to":"","domain": 0,"dictResult": "true","keyid": "webfanyi","sign": sig,"client": "fanyideskweb","product": "webfanyi","appVersion": "1.0.0","vendor": "web","pointParam": "client,mysticTime,product","mysticTime": r,"keyfrom": "fanyi.web"}res=requests.post(url=url,headers=headers,data=data)print(res.text)

标签: #c语言sign函数怎么写