怎么说呢,大佬不建议看,因为完全没基础,也是第一次无聊尝试,没有去了解过相关知识 链接

0X01 定位加密位置

先看正文链接
可以看到就一个sign,这里我直接搜sign定位了
搜到一堆,不管,直接打断点开干


然后刷新下网页
此时在断点处停下来了,看下参数,好 就是你了

1
2
sign  = sign: Object(s.h)(r)  
r = "apiKey=" + g.a + "&bookId=" + e + "&chapterId=" + n + "&srcPlatform=" + g.e + "1b4c8580fd2607e13d4754015db6090d"

看着蛮简单样子,走你

0X02 sign加密分析

其中apiKey,srcPlatForm都是固定的
bookid,chapterid为书籍和章节id
sign加密方法为Object(s.h)(r),直接F9单步调试
ok,可以看到这个就是加密方法了

1
function m(t,e,n){return e?n?g(e,t):d(g(e,t)):n?y(t):d(y(t))}


我特么直接copy下来,可以看到还用到g y d等函数,直接把它附近的全扒下来
完事,测试下
测试半天没成功,才发现bookid和chapterid不是原始数据…先用处理过的数据测试下吧

可以看到一模一样

0x03 bookId和chapterId处理

接下来就是bookid和chapterid处理
如图,还是刚刚断点的地方

1
2
var e = Object(B.a)(t.bookId)
n = Object(B.a)(t.chapterId)

鼠标放到B.a,点击跳转到B.a函数

好,看着好像可以直接用,cv大法启动
之后做了一点修改,函数名以及用不到的东西(哪里报错改哪里)
测试 ok 一模一样

完活

再请求链接获取正文看下
稍微封装了下

byebye,大功告成

0x04 题外话

其实真正过程可谓一波三折,起初不知道怎么调用,直接把整页js扒下来了,然后调用又一大堆问题,折腾好久
先看sign是因为没看到bookid那些还做过处理,差点gg


本站由 @wenmoux 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
陕ICP备20007652号-1 | 陕公网安备 61072202000146号

本页面访问 次 | 👀总访问 次 | 🥷总访客