hakerman 发表于 2024-3-7 02:13

某度翻译的sign逆向

本帖最后由 hakerman 于 2024-3-7 17:01 编辑


很容易看出https://fanyi.baidu.com/v2transapi?from=en&to=zh这个就是翻译接口,因为每次更换翻译单词的时候sign都会发生变化,所以我们需要逆向sign



首先复制标头的v2transapi?from到搜索窗口







看到只有一个js文件,我们直接双击,然后右键进入到源代码中






然后ctrl+f搜索:sign,可能会有搜到很多结果,一直搜就行,直到如下图这样。类似sign:xx() 这样的,然后下断点试试看翻译的时候能不能断下,如果不能断下则跳过继续往下找






断下之后,双击进入函数,我们发现参数t就是我们需要翻译的单词



把这个export函数扣到js文件里面尝试运行




报错了,r没定义,我们到源码发现,原来前面还有一句var r = null;




加上之后发现还是报错,我们没有window环境咋办,到源码中下断点看看r是否是固定值




经过测试发现r的确是固定值 等于"320305.131321201"




那么我们直接修改r就行了,如下图



那是不是可以正常运行了呢?发现还是报错。n这个函数我们没有扣,再到源码里面抠一下就好了



也就是这个函数



运行正常,得到了们想要的sign。这次逆向就到这里了


js代码已经打包下面了








prience0118 发表于 2024-3-14 13:57

jjyy774447 发表于 2024-3-7 08:34
F12一打开就被无限debugger的情况 咋办

hook代码 ,注入js//1 .去除无限debugger
Function.prototype.__constructor_back = Function.prototype.constructor;
Function.prototype.constructor = function() {
    if(arguments && typeof arguments==='string'){
      //alert("new function: "+ arguments);
      if("debugger" === arguments){
            //arguments="console.log(\"anti debugger\");";
            //arguments=";";
            return
      }
    }
   return Function.prototype.__constructor_back.apply(this,arguments);
}

jessylake 发表于 2024-3-9 20:33

本帖最后由 jessylake 于 2024-3-11 08:53 编辑

对比了一下5年前的那个获取sign的函数,差不太多,第一个函数除了参数名称变了其他基本一样,第二个函数代码翻了一倍,不过获取这两个函数的方法基本一样,只是所在的js文件变了

losingstars 发表于 2024-3-7 06:55

谢谢大佬分享思路。

okmad 发表于 2024-3-7 07:27

没看懂,是直接post就可以获取翻译吗

fuvenusck 发表于 2024-3-7 08:25

技术不错,不过现在翻译应该没啥人用了吧,直接gpt呗

secowu 发表于 2024-3-7 08:26

樓主厲害,得到sign之后就可以做自己的翻譯界面了

jjyy774447 发表于 2024-3-7 08:34

{:1_889:} F12一打开就被无限debugger的情况 咋办{:1_923:}

baliao 发表于 2024-3-7 08:40

谢谢大佬分享

xiaopacI 发表于 2024-3-7 08:43

jjyy774447 发表于 2024-3-7 08:34
F12一打开就被无限debugger的情况 咋办

一般hook就能过

sadiluosi 发表于 2024-3-7 08:53

求问这个sign是怎么用的?

1580501717 发表于 2024-3-7 09:00

感谢分享,沉浸翻译+gemini够用了
页: [1] 2 3 4 5
查看完整版本: 某度翻译的sign逆向