4回答

1收藏

今日头条 _signature 参数加密逻辑分析

信息分享 信息分享 4032 人阅读 | 4 人回复 | 2020-06-03


最近看很多群里都在问这个`_signature`的事,得个空看了下和之前没啥变化,随便写写吧

[ttreply]

主要搞三个参数`as` `cp` `_signature`



直接搜参数名就能找到生成位置,第一个红框里是生成`as` `cp`,第二个红框生成`_signature`,蓝色指明生成位置为 `o`,先看看第一个怎么生成的



可以看到`as` `cp`由`e`生成,`e`指向一个`a()`函数,跟进去



没什么复杂的,直接扣下来,这个`i`由一个`C(a, b, c)`生成,跟进去看到一堆嵌套函数,函数全部给扣下来即可就行了,我这边是从1285行-1439行,接下来看`_signature`的逻辑



这里有两个参数,一个url,一个params,里面包括了上面生成的`as` `cp`



很清晰看到`_signature`是由 `window.byted_acrawler.sign(a)`生成的



跟进函数,里面是一个流控制,没有太需要注意的地方,全拿下来即可



这个时候如果你没进行其他补全直接运行的话,会出现几个错误,比如





做一个简单的环境补全就行了
var window = global;
window.location = {
    origin: "https://www.toutiao.com",
    protocol: "https:",
    host: "www.toutiao.com",
    hostname: "www.toutiao.com",
    port: "",
    pathname: "/",
    search: "",
    hash: "",
    href: "https://www.toutiao.com/",
}
window.navigator = {
    userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36",
}
用生成好的数值测试一下,发现能够成功获取数据,说明我们已经完成了



代码已经丢到github上去了: https://github.com/Bindian9710/Spider-Crack_Js 欢迎给stat




[/ttreply]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
分享到:
回复

使用道具 举报

回答|共 4 个

he525163

发表于 2020-6-9 15:41:25 | 显示全部楼层

666666
回复

使用道具 举报

downdawn

发表于 2020-6-18 16:15:40 | 显示全部楼层

大佬,好像不行哦,三个参数带进去获取不到数据
回复

使用道具 举报

flys

发表于 2020-6-18 17:14:40 | 显示全部楼层

我昨天还可以的
回复

使用道具 举报

shihw

发表于 2020-6-24 10:48:00 | 显示全部楼层

S[A] = S[A][m(a[oprand[1]], oprand[1])];
                                            ^
TypeError: Cannot read property 'body' of undefined  这个body参数找不到呢?
回复

使用道具 举报