看漫画 MHGmhgui,Python 爬虫之神奇的 eval,附赠一个压缩模块
⛳️ 看漫画 MHG mhgui 实战分析
本文所有 MHG 使用 MHG 替代~
无障碍阅读版本请参考:https://www.cnblogs.com/happymeng/p/16441870.html
本次爬虫采集的案例是 MHG,该站点貌似本身就游走在法律的边缘。
站点地址直接检索即可进入,在该目标站点,橡皮擦发现了 eval 加密的双重用法。
页面所有点位都无太大难点,而且漫画超多,但是当点击详情页的时候,发现加密点位了。
其中比较关键的就是参数 m
,其余参数都比较容易猜到其含义。
%E7%AC%AC01%E8%AF%9D
:第一话;e
:时间戳。
通过开发者工具的 DOM 事件绑定器,找到下一页按钮点击事件,然后在下述位置添加断点。
通过该断点调试,发现参数在页面加载时已经生成,继续寻找的意义不大,接下来要更换思路。
全局检索关键字 m=
,查看所有搜索结果之后,最终定位到 config.js
文件,即下图代码高亮位置。
截取相应的代码文件,如下所示,这代码一眼看上去就能猜测是 eval
加密,但是其关键信息,例如 window["\x65\x76\x61\x6c"]
还是存在加密,下面我们优先解决该值。
别看上述代码长,但是当我使用在线工具解密之后,得到了下面一段代码。
但是这里并没有前文的关键字参数 m=T-uqjbcgI-eyVGgsIsnjLw
,接下来我们在源码中查看一下,看是否存在关键性信息。
得到的代码段如下所示
此时关键信息逐渐出现,我们重点解密该代码段即可。
直接使用 eval 函数解析上述代码,发现出现如下错误。
但是 \x65\x76\x61\x6c
可以解码为 eval
。
但是下述这段代码出现了问题。
在结合刚才我们得到的一个莫名的加密函数。
可以试着用 Python 解密一下上述代码段,而且 Python 中恰好有同名第三方模块。
直接解密加密字符串即可。
得到的信息如下所示,变得越来越清楚了。
此时还是无法得到最终的答案,然后可以看到代码结构发现下述规律,即代码出现了相似的部分,并且都是 eval。
细心环节,将代码一点点翻译成可逆向的
将 lzstring
解密字符串,然后手动使用 split
函数进行分隔,因为上述代码 \x73\x70\x6c\x69\x63
解析出来竟然是 splic
函数。
谷歌开发者工具的控制台中运行下述代码即可。
得到的信息如下所示。
然后将其替换到上述 JS 中,使用解密工具直接在线解析。
此时,一些关键参数都已经得到了,例如 e
的值,m
的值。
接下来的 Python 编码就变的索然无味 了,大家加油~
📢📢📢📢📢📢💗 你正在阅读 【梦想橡皮擦】 的博客👍 阅读完毕,可以点点小手赞一下🌻 发现错误,直接评论区中指正吧📆 橡皮擦的第 <font color=red>687</font> 篇原创博客
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/1e82a7dc334326f63ee34bf64】。文章转载请联系作者。
评论