python爬虫自学笔记分析解密_Python爬虫进阶必备 | XX读书window.__DATA加密分析

d156a2a606e60a6ec2ed903d566f5a71.png

今日网站:python

aHR0cHM6Ly9zZWFyY2guZG91YmFuLmNvbS9ib29rL3N1YmplY3Rfc2VhcmNoP3NlYXJjaF90ZXh0PSVFNCVCOCU5QyVFOSU4NyU4RSVFNSU5QyVBRCVFNSU5MCVCRSZjYXQ9MTAwMQ==算法

抓包与定位加密位置

上面就是此次须要分析的网站了,先简单看看抓包的结果。【图1-1】ide

72ad7228c0f04ff2e9be0d84bdf42d64.png

图1-1网站

抓包很清楚没什么幺蛾子,此次分析的网站加密的地方实际上是他的搜索结果。this

经过查看网页源码能够看到加密的地方。【图1-2】编码

93d61fcf670b0271e1da7074f7c94aef.png

图1-2加密

这里的 window._ _DATA 的值就是搜索的结果。prototype

咱们直接搜索这个值就能够找到解密的地方。【图1-3】3d

f6d0b733fc2db86b79adbbf4be8c4010.png

图1-3调试

分析加密

这个网站的加密算法不一样于以前咱们分析的固定算法,咱们先打上断点看看。

经过调试咱们能够看到解密的核心算法的位置。【图2-1】

20f7fe6e2ca7e6c2d3c9209b398f56ca.png

图2-1

先看看他解密后的值是什么样,确认下没有找错位置。【图2-2】

4228b8f5576ec2d056c79690bfe59749.png

图2-2

解密后的明文经过比对就是咱们须要的内容。

接下来就是分析解密算法的部分了。

难点分析

咸鱼本身动手扣了一下,加密在前半段的地方不难,不过有许多部分须要从新改写,因此建议你们自学Javascript部分语法,特别是实例化和原型对象的内容以及运算符中的三元表达式。

例如:

三元表达式

// 表达式1 ?表达式2 : 表达式3

var b = 1, c = 1;

var a = b == c ? 3:6

console.log(a)

原型对象

function xianyu(){

this.name = 'xianyu',

this.age = '18'

}

xianyu.prototype.hair = function(){

return '茂密'

}

var xianyu1 = new xianyu()

var xianyu2 = new xianyu()

console.log(xianyu1.hair)

console.log(xianyu2.hair)

console.log(xianyu1.hair == xianyu2.hair)

同时须要注意的是这里的加密代码都是用n、a、c、S、s这类无语义的代码替换而成的。且由于许多部分须要从新改写因此在改写的时候方法命名必定要用使用规范,不要直接复制。

咱们先看下核心解密的部分代码

var a = e.from(r, "base64"), s = Math.max(Math.floor((a.length - 2 * i) / 3), 0), u = a.slice(s, s + i);

a = e.concat([a.slice(0, s), a.slice(s + i)]);

var c = Object(o.hash)(e.concat([u, e.from(t)]));

return n((l = {},l[c] = a,l));

var l

前三行的方法没有什么难度,到关于c的定义部分的时候,o.hash这个方法里面有不少三元表达式以及原型对象的使用,须要逐步打断点的,逐个补齐。(适合新手)

或者直接将原型对象xxx.prototype这种总体抠出来再改写也是能够的(适合老手)

可以弄清楚上面的两块内容,特别是原型的内容,这个加密就很简单了。

接下来就是抠出代码的时候,使用 Python 运行出现编码报错的坑。

这个在前人的文章中有提到,咸鱼这里就直接指出修改的地方,就不赘述了。

subprocess.py 这个 python 文件中 类的初始化位置改下编码类型为 utf-8 便可

接下来 po 下运行截图:

792bdbe3836a83d738e3fe58084a4cc2.png

EOF

这里要感谢 s 哥以前的分析文章,给了我很大帮助。

你们也能够看看 s 哥的解密,全网第一篇关于XX读书的解密

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值