记一次Js逆向-youdao的sign参数

地址:https://fanyi.youdao.com/index.html?keyfrom#/AITranslate?keyfrom=fanyiweb_tab

注意:

本次逆向我遇到的最大的坑:在看到"i.createHash(‘md5’).update(e.toString()).digest(‘hex’)"这样一串代码后,我很头铁的去一步一步的断点,找它调用的函数,然后整个人都麻了,找了20个左右后,点错了按键,直接从下一步变成了跳过,全部重来,崩溃的我一怒之下将这段代码发给了“文心一言”,然后它告诉我这就是调用了Node.js 的 crypto 模块来创建一个 MD5 哈希。然后我马上将这段字符串“client=fanyideskweb&mysticTime=1732084892552&product=webfanyi&key=asdjnjfenknafdfsdfsd”甩给了在线的md5加密,得到的结果与调试的结果一样,呵呵,白费了半天功夫找函数。。。。

1、数据包监听

打开网址,按下f12,进入网络,先清空数据包,然后在网页上输入文字,可以看到我们监听到了3个包

在这里插入图片描述

查看各包后,在中间的包中找到了我们要分析的参数sign

在这里插入图片描述

2、栈跟踪,找到关键代码

点开栈跟踪发现有如下的几个js文件是我们需要搜索的

方法跟上一次的一样

于是这一次也出了大问题,找到了好多个跟下图一样的代码段,然后最坑的是,在一个文件中搜索sign,一看有340多个关键词,麻了。。。

而且,找了很长时间也没有下对断点,于是又记起来了个办法,将**sign:**进行搜索,果然减少了到只有18个,然后在不断的测试下,终于在app。。。的js文件中找到了这个包中sign生成的正确位置

在这里插入图片描述

在此期间,还找到一个跟这个非常像的,但是debug后需要点击翻译后的文本才会调用这段代码。

3、debug

在这里debug

在这里插入图片描述

我们可以看到来到这里后,e=1732098894526,t=“asdjnjfenknafdfsdfsd”,e这里可以通过a = (new Date).getTime();来看出这是一个时间戳(或者到网站工具中检查一下),t暂时不知道怎么来的,先不管

在这里插入图片描述

然后下一步,来到_(e)这个函数,可以看到e=“client=fanyideskweb&mysticTime=1732098894526&product=webfanyi&key=asdjnjfenknafdfsdfsd” ,所以可以确定S(e,t)的作用是将d、e、u、t拼接成一个字符串,然后我最开始的做法是一步一步的找函数,然后发现函数是真的很多,还容易出错,所以如果找到核心加密的代码,可以现将其丢给AI看看,说不定会有惊喜,我这里后来就是这么干的,找到了这个就是md5的加密,没有其他的别的东西

在这里插入图片描述

在这里插入图片描述

然后我将e进行加密后,又发现的一个问题这个S(e,t)调用了两遍,第二遍的时候t的值变成了"fsdsogkndfokasodnaso",所以找到了关键代码后不要着急,多发几次包,仔细观察看会不会有坑

我将e修改为了最新的时间戳和最新的t,得到e=“client=fanyideskweb&mysticTime=1732099630758&product=webfanyi&key=fsdsogkndfokasodnaso”

先在网上用md5对其加密,得到644cc6a4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Whoam_laowei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值