谷歌翻译来一波

谷歌翻译来一波

分析抓包

翻译类型的网站一般都是 ajax 方式加载翻译的结果,应对这种类型的网站,通常采用抓包的方式,获取请求数据的 API ,很容易发现,api为
在这里插入图片描述
再看此链接的参数:经过测试,tk 为一个加密的参数,需要破解。
在这里插入图片描述
到这步往下一般有两种方式

  1. 全局搜索关键参数:可以自己尝试一下,在此处,这种方法行不通
  2. 打上xhr全局断点,根据函数调用栈,找到加密函数,话不多说,直接上图,
  3. 当调用到函数 YE 时,此处观察变量 c,在 c += XE(d);前,变量 c中无 tk参数,经过c += XE(d);后,c中增加了tk参数,由此判断,加密函数为XE(d),此处打上断点,进入其中很容易找到了加密函数
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. 后面的任务就是观察js代码了,此处就是翻译成python的代码,tkk 在谷歌翻译首页源码中可以找到,接下来就可以愉快的开始了
    def get_tk(self, a, tkk):
        def get_a(a, b):
            for i in range(0, len(b) - 2, 3):
                d = b[i + 2]

                d = ord(d[0]) - 87 if "a" <= d else int(d)
                d = a >> d if "+" == b[i + 1] else a << d
                a = a + d & 4294967295 if "+" == b[i] else a ^ d

            return a

        b = tkk = "443192.495816626"
        c = '&tk='
        d = b.split('.')
        b = int(d[0])
        e = list(a.encode())
        a = b
        for i in range(len(e)):
            a += e[i]
            a = get_a(a, "+-a^+6")
        a = get_a(a, "+-3^+b+-f")
        a ^= int(d[1]) or 0
        a = (a & 2147483647) + 2147483648
        0 > a and a
        a %= 1e6
        return c + (str(int(a)) + "." + str(int(a) ^ b))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值