js加密css加密base64加密翻译的思想和操作

JS加密破解思路

破解js加密的的方法
1找到那些参数在影响数据的获取
       需要做不同的请求,对比参数,找出不同的参数即可
2找到参数之后,需要查找这些参数是从哪里获得的、生成的原理是什么?
     (1)找到参数可能是通过之前的一些请求传递过来的
     (2)参数实在某个js文件生成的-->z找到对应的js文件,分析js代码,得到参数的生成原理

在无法自己翻译破解的前提下:进行破解
在无法翻译的情况下:
    (1)创建js 文件将js函数放入其中
     (2) 下载模块 pyexecjs 并导入模块
         1 读文件
            content =open('文件名','r',encoding='编码方式').read()
         2 编译js
            box=execjs.complie(content)
         3执行js代码
              result=box.call('函数名','参数')

附加案例

# 需求:翻译句子和单词

import requests,execjs
# pip install pyexecjs

# 1. 读文件
content = open('fanyi.js','r',encoding='utf-8').read()

# 2. 编译JS
cts = execjs.compile(content)

# 自定义输入单词
word = input('请输入要翻译的英文:')

# 3. 执行js代码
sign = cts.call('e',word)

base_url = 'https://fanyi.baidu.com/v2transapi?from=en&to=zh'

# 定义请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36',
    # x-requested-with: XMLHttpRequest  代表ajax加载
    'x-requested-with': 'XMLHttpRequest',
    'cookie': 'BAIDUID=A5A4B013456B13AAC717DEABA60F42ED:FG=1; BIDUPSID=A5A4B013456B13AAC717DEABA60F42ED; PSTM=1603682094; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_PREFER_SWITCH=1; SOUND_SPD_SWITCH=1; delPer=0; PSINO=1; BA_HECTOR=848lag2h05052k2bmd1fpi5ia0l; H_PS_PSSID=32818_1437_32876_32946_31253_32705_32230_7516_32270_32117_26350_32915; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1603798011,1603868235; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1603868235; __yjsv5_shitong=1.0_7_a5686181a02e7e6730bcc4e602284e276b8f_300_1603868234051_121.69.97.22_5234b29b; yjs_js_security_passport=f2764105cd3b8741592b5cb40ba7598fbcaeaa5b_1603868234_js'
}



# 定义参数字典
data = {
'from': 'en',
'to': 'zh',
'query': word,
'transtype': 'realtime',
'simple_means_flag': '3',
'sign': sign,
'token': '2e4ecb52ad4e53cb1cfe241341e0c1e7',
'domain': 'common',
}

response=requests.post(url=base_url,headers=headers,data=data)
# print(response.json())
print(response.json()['trans_result']['data'][0])

猜你喜欢

转载自blog.csdn.net/h1751541643/article/details/109775772