某度翻译加密破解

news/2024/11/25 13:51:25/


文章来源于公众号:爬虫逆向与数据分析

    访问下某度翻译的网站, 然后随便输入要翻译的内容, 我这里是输入了这个:(某度输入前先f12一下哦)

然后我们来看下抓到的包, 毫无疑问, 可以发现这个链接:

    另外还可以看到他是个post请求, 以及他的请求参数。那从他的post参数入手, 我们可以找到这里:

    可以看到他的参数是在一个叫index_2958d34.js文件里面的,经过调试, 还可以得知一下几个参数是不变的(在中文翻译成英文的情况下, 其他情况没深究哈):

    "from": "zh",

    "to": "en",

    "transtype": "realtime",

    "simple_means_flag": "3",

    "domain": "common"

    除去不变的参数, 也就只剩下sign和token这两个参数了。其中token参数也很容易找到, 经过搜索, 可以确定token这个参数就在首页:

这里经过正则将其匹配出来即可。接下来就只剩下sign这个签名参数了。这里我是将index_2958d34.js这个文件拷贝到了本地,不难发现, 对query进行签名的函数长这个样子:

function e(r) {

        var o = r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);

        if (null === o) {

            var t = r.length;

            t > 30 && (r = "" + r.substr(0, 10) + r.substr(Math.floor(t / 2) - 5, 10) + r.substr(-10, 10))

        } else {

            for (var e = r.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), C = 0, h = e.length, f = []; h > C; C++)

                "" !== e[C] && f.push.apply(f, a(e[C].split(""))),

                C !== h - 1 && f.push(o[C]);

            var g = f.length;

            g > 30 && (r = f.slice(0, 10).join("") + f.slice(Math.floor(g / 2) - 5, Math.floor(g / 2) + 5).join("") + f.slice(-10).join(""))

        }

        var u = void 0

            , l = "" + String.fromCharCode(103) + String.fromCharCode(116) + String.fromCharCode(107);

        u = null !== i ? i : (i = window[l] || "") || "";

        for (var d = u.split("."), m = Number(d[0]) || 0, s = Number(d[1]) || 0, S = [], c = 0, v = 0; v < r.length; v++) {

            var A = r.charCodeAt(v);

            128 > A ? S[c++] = A : (2048 > A ? S[c++] = A >> 6 | 192 : (55296 === (64512 & A) && v + 1 < r.length && 56320 === (64512 & r.charCodeAt(v + 1)) ? (A = 65536 + ((1023 & A) << 10) + (1023 & r.charCodeAt(++v)),

                S[c++] = A >> 18 | 240,

                S[c++] = A >> 12 & 63 | 128) : S[c++] = A >> 12 | 224,

                S[c++] = A >> 6 & 63 | 128),

                S[c++] = 63 & A | 128)

        }

        for (var p = m, F = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(97) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(54)), D = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(51) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(98)) + ("" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(102)), b = 0; b < S.length; b++)

            p += S[b],

                p = n(p, F);

        return p = n(p, D),

            p ^= s,

        0 > p && (p = (2147483647 & p) + 2147483648),

            p %= 1e6,

        p.toString() + "." + (p ^ m)

    }

    对,就是他。但是如果直接对他进行运行的话就会报错,所以需要改动一下。我这里是加了这两个:

i = null;

function n(r, o) {

    for (var t = 0; t < o.length - 2; t += 3) {

        var a = o.charAt(t + 2);

        a = a >= "a" ? a.charCodeAt(0) - 87 : Number(a), a = "+" === o.charAt(t + 1) ? r >>> a : r << a, r = "+" === o.charAt(t) ? r + a & 4294967295 : r ^ a

    }

    return r

}

将其放在最前面。改到这里之后, 还会报一个错误:

其实就是没有window[l]呗, 所以给他加上就好了。其实window[l]这个值也是不变的,就是320305.131321201,只需要将他换成这个值就好了(有兴趣的可以自己找一下, 就在首页源码中哈)。

到这里其实就差不多了,通过e函数将要翻译的文字进行签名, 然后配合上其他参数发送请求就OK了,但这里还有一个坑,就是需要加上cookie。而这个cookie是在首次访问的时候就设置了,所以需要多添加一个请求来访问首页,拿下cookie。

可以看到返回了正确的内容。(图中圈出的sign, 是经过上面所说的js计算出来的, 查询的内容不同, 这个sign签名就不同)

有兴趣的同学或者想要代码的同学可以关注下公众号哦:

 


http://www.ppmy.cn/news/138139.html

相关文章

如何进入带有密码的QQ空间

有的Q友在Q-ZONE设了密码&#xff0c;你想看他的QQ空间的话要输入密码才行。 现在&#xff0c;我教大家利用Q-ZONE中的一个BUG&#xff0c;绕过密码访问他的QQ空间 首先&#xff0c;去你想要访问的Q-ZONE里。 你会看到要求你输入密码的页面。 这时&#xff0c;在这个页面的属…

查看加密QQ空间日志

1.打开google博客搜索&#xff1a;blogsearch.google.cn 2.将要查看的加密QQ空间(qzone)的QQ号放到搜索框中搜索。 3.点击搜索结果下边的[**站内的其它相关信息]将搜索范围限定在这个加密的QQ空间。 4.出现他空间(qzone)里的所有文章列表&#xff0c;再复制想要查看的那一篇日志…

QQ空间登录表单密码客户端加密代码

QQ空间通过网页登陆的时候&#xff0c;提交表单后会发现密码栏发生了变化。 点击登录按钮后&#xff0c;密码先在客户端进行了MD5等一系列加密。这样可以防止客户端向服务器发送登录信息时密码被窃听。 值得我们在写登录界面时借鉴。 我把相关的js代码都抓出来了&#xff0c;希…

qq空间密码算法java_C#最新版QQ空间密码加密算法

年底了&#xff0c;先预祝各位朋友新年快乐。最近这段时间工作比较忙&#xff0c;晚上就一直在写一个关于 /// 根据QQ号码和验证码加密密码 /// /// QQ号码 /// QQ密码 /// 验证码 /// 密码密文 public static string GetPassword(string qqNum, string password, string verif…

利用Google博客搜索查看加密QQ空间(qzone)日志

1.打开google博客搜索&#xff1a;blogsearch.google.cn 2.将要查看的加密QQ空间(qzone)的QQ号放到搜索框中搜索。 3.点击搜索结果下边的[**站内的其它相关信息]将搜索范围限定在这个加密的QQ空间。 4.出现他空间(qzone)里的所有文章列表&#xff0c;再复制想要查看的那一篇日…

QQ网页登陆密码加密方式农场、空间、WebQQ等通用

有很多想写农场的助手工具&#xff0c;同之前的我一样。但是又不知道怎么处理QQ的登陆问题&#xff0c;用别人的又不怎么放心&#xff0c;所以就想自己动手。但是很多没基础的又不知道怎么下手。所以…… 现在我就把密码的加密方式写出来&#xff0c;方便大家使用&#xff0c…

关于qq加密空间日志的突破

好吧&#xff0c;很久没更新博客了&#xff0c;自己安静了很长一段时间&#xff0c;累了&#xff0c;想休息一下。所以贡献一篇不是很有技术含量&#xff0c;但很多人很感兴趣的一篇文章。 记得以前看过一个软件叫“风很凉加密qq空间日志查看器”&#xff0c;不过没法用&#x…

QQ空间密码和权限

QQ空间密码和权限 | 米站互联 | 米站互联网站&#xff0c;专业知识资讯。 相册查看 第一步确保你已经加上别人的QQ号&#xff0c;不然会出现主人设置了权限&#xff0c;您可通过以下方式访问。 去网上或者腾讯官方下载QQ PC版 腾讯软件官方下载地址网页&#xff1a;要啥有啥…