一、百度翻译(入门级)
-
首先分析网络响应包,由名字和响应内容可知
v2transapi
是需要分析的包网络响应包 -
点击启动器,根据经验,
send
和ajax
都涉及jquery
等源码,前端程序员不会轻易修改,因此需要分析的是下面的langIsDeteced
,跳转到引用的 js 代码启动器 -
上下划拉代码,可以在上方发现和请求内容相近的代码结构
js 代码 经过测试(多次发送请求,查看响应内容)得知
from
是待翻译语言,to
是翻译后语言,query
是翻译内容,transtype
、simple_means_flag
、token
、domain
都是不会变的常量,只需要搞懂sign
的来源即可
from: en
to: zh
query: apple
transtype: realtime
simple_means_flag: 3
sign: 704513.926512
token: 6497866f6ec9f4375ff3a9730c4a1bb7
domain: common
-
回到代码,点击
sign: b(e)
左侧的代码行,为其打上断点,在页面中重新输入任意单词(重新发送请求),注意到b()
对应了某个函数,点击注解中的蓝色链接调试 -
跳转到了具体的函数,也是说只要执行这个函数就可以获取
sign
值,因此将其复制到本地,打算测试是否能正常运行跳转的函数 -
使用 NodeJS 直接运行测试,发现不能直接运行,报错提示 r 未定义,于是回到浏览器的跳转函数中寻找 r,同样以打断点的方式调试,得到 r 竟然也是个字符串常量
"320305.131321201"
本地代码 -
在本地代码中用常量替换 r,继续使用 NodeJS 直接运行测试,但是依然报错,报错显示 n 未定义,回到浏览器跳转函数继续调试,找到了 n 函数,将其放进本地代码中,最终成功跑出结果
结果 据此,可以根据
test.js
文件配合Python
实现百度翻译的爬虫代码了,这个入门级 JS 逆向就算完成了
二、艺恩电影片票房(OB 混淆)
关键词:OB 混淆、花指令、AES 对称加密