小白的第一次js逆向之某道翻译

小白的第一次js逆向之某道翻译

能忍心看下去的肯定也是和我一样的小白吧,小白们入手都喜欢拿某道翻译入手,是的没错我也一样。。。。。下面是我第一次逆向的过程经验,后面我也会以文章的方式记录我的爬虫成长历史。

第一步检查源码

在浏览器界面按下F12进入开发者模式,打开某道翻译网站。在输入翻译内容后你会发现给你返回了ajax请求
在这里插入图片描述
接下来我们来看响应内容,发现是明文没加密,再具体看请求头。发现是个post请求,里的表单参数也是看不懂的。
在这里插入图片描述
可以看出salt,sign,lts,bv这是个参数是看不懂的

第二步搜索加密内容

看不懂就搜,ctrl+shift+f全局搜索salt,找到一条js里面含有salt点击打开这个js。
发现是一行格式并不规整,这个时候可以点击左下角的{}在这里插入图片描述
然后就变成下面这种格式规整的了。
在这里插入图片描述
我们在js代码里面ctrl+f搜索刚才的参数,我们发现有12处,我们一处一处的来看当看到下面这一处时发现返回了加密的四个参数很可疑。
在这里插入图片描述

第三步打断点

在可疑的哪一行打上断点。
在这里插入图片描述
然后重新输入搜索内容在这里插入图片描述
发现右边没有跳出翻译内容说明断点成功了

第三步找加密函数

将光标移到salt上面发现显示的就是header的内容证明已经加密,于是我们逆向回去发现
在这里插入图片描述
于是python复写为salt = str(int(time.time() * 1000)) + str(int(random.random()*10))
那么ts也出来了它复写为ts=int(time.time() * 1000)
接下来找bv参数,将鼠标放到下面如图位置
在这里插入图片描述
发现bv是User-Agent的md5加密复写为bv=hashlib.md5(str(“5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36”).encode(‘utf-8’)).hexdigest()
接下来是sign

发现是上面图片的一些字符串的拼接的md5加密复写为sign= hashlib.md5(str(“fanyideskweb” + e + str(salt) + “mmbP%A-r6U3Nw(n]BjuEU”).encode(‘utf-8’)).hexdigest()
然后写上请求头

headers = {
        "Cookie": 'OUTFOX_SEARCH_USER_ID_NCOO=642873656.3243192; OUTFOX_SEARCH_USER_ID="-1816126791@10.108.160.19"; _ga=GA1.2.434622419.1578909502; _ntes_nnid=f4c96d313794593a0bb9a311af471452,1583376095745; P_INFO=13093712979|1585242495|1|youdaonote|00&99|null&null&null#hun&430100#10#0|&0||13093712979; JSESSIONID=aaaaKnXq0ihOQ7pkiBFgx; ___rl__test__cookies=1587517629157',
        "Referer": "http://fanyi.youdao.com/",
        "User-Agent": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36",
    }
    
post_data={
'i': '我是菜鸟',
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': '',
'sign': '',
'ts': '',
'bv': '',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTlME',
}

post_data['salt']=salt
post_data['sign']=sign
post_data['ts']=ts
post_data['bv']=bv

res=requests.post(headers=headers,url=url,data=post_data)
print(res.text)

运行你就可以得到正确响应内容了

【注】这是小白第一篇爬虫就是逆向的文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值