

JS逆向- 豆瓣读书搜索加密逻辑分析
source link: http://xianyucoder.cn/2020/07/16/%E6%AF%8F%E6%97%A5JS-%E8%B1%86%E7%93%A3%E8%AF%BB%E4%B9%A6/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

aHR0cHM6Ly9zZWFyY2guZG91YmFuLmN
vbS9ib29rL3N1YmplY3Rfc2VhcmNoP3NlYX
JjaF90ZXh0PSVFNCVCOCU5QyVFOSU4NyU4
RSVFNSU5QyVBRCVFNSU5MCVCRSZjYXQ9M
TAwMQ==
抓包与定位加密位置
上面就是这次需要分析的网站了,先简单看看抓包的结果。【图1-1】
抓包很清楚,这次分析的网站加密的地方是他的搜索结果。
通过查看网页源码可以看到加密的地方。【图1-2】
这里的 window.__DATA
的值就是搜索的结果。
我们直接搜索这个值就可以找到解密的地方。【图1-3】
这个网站的加密算法不同于之前我们分析的固定算法,我们先打上断点看看。
通过调试我们可以看到解密的核心算法的位置。【图2-1】
先看看他解密后的值是什么样,确认下没有找错位置。【图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 下运行截图:
Recommend
-
59
-
32
找到要分析的参数,通过首页的检索栏,输入企业名称关键字点击查询就可以抓到类似下面的两个包。 上图标记出来的 mfccode
-
48
目标网站: aHR0cHM6Ly93d3cuY2l3ZWltYW8uY29tL2NoYXB0ZXIvMTAzNTQzODcy 抓包分析与加密定位 先抓包分析一波【图1-1】
-
3
【JS 逆向百例】转变思路,少走弯路,X米加密分析本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切...
-
5
【JS 逆向百例】cnki 学术翻译 AES 加密分析关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶、JS/安卓逆向等技术干货!本文章...
-
7
目标网站:aHR0cHM6Ly93d3cuamRqMDA3LmNvbS8= 抓包分析与加密定位首先打开开发者模式,抓包请求【图1-1】 可以看到这里的加密参数名为sign 拿到加密参数名,我们现在用两种方法定位加密位置 ...
-
10
JS逆向- 某视频解析站反爬逻辑分析 发表于...
-
11
JS逆向-AQI正文加密逻辑分析 发表于...
-
5
JS逆向- google 镜像站加密逻辑分析 发表于...
-
6
JS逆向- openlaw cookie 加密逻辑分析 发表于...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK