python爬取美之图美女图(JS逆向)

本文介绍了如何使用Python和Hook技术破解美之图网站的图片URL加密,包括利用开发者工具绕过无限debugger,HookJSON.stringify和JSON.parse以获取加密数据,以及通过解密算法还原被混淆的JS代码进行网页爬取。
摘要由CSDN通过智能技术生成

python爬取美之图美女图(JS逆向)

网址

美之图:aHR0cHM6Ly9tbXp6dHQuY29tLw==
在这里插入图片描述

首先了解hook技术

Hook 是一种钩子技术,在系统没有调用函数之前,钩子程序就先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,也可以强制结束消息的传递。简单来说,修改原有的 JS 代码就是 Hook。
Hook 技术之所以能够实现有两个条件:

  • 客户端拥有 JS 的最高解释权,可以决定在任何时候注入 JS,而服务器无法阻止或干预。服务端只能通过检测和混淆的手段,另 Hook 难度加大,但是无法直接阻止。
  • 除了上面的必要条件之外,还有一个条件。就是 JS 是一种弱类型语言,同一个变量可以多次定义、根据需要进行不同的赋值,而这种情况如果在其他强类型语言中则可能会报错,导致代码无法执行。js 的这种特性,为我们 Hook 代码提供了便利。

hook解决无限debugger问题

首先利用f12打开开发者工具,会发现,这个网站有无限debugger反调试,
在这里插入图片描述

我们可以在控制台运行以下代码,并点击运行,这样就可以跳过debugger
在这里插入图片描述

AAA = Function.prototype.constructor;
Function.prototype.constructor = function(a) {
   
    if (a == "debugger") {
   
        return function() {
   }
        ;
    }
    return AAA(a);
}
;

网页抓包

选择一套图片,在点击一张图片放大的时候,我们会发现,接口返回的数据是经过加密的
在这里插入图片描述
接口的参数应该就是这套图片的id
在这里插入图片描述

Hook JSON

JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串,在某些站点的加密过程中可能会遇到,以下代码演示了遇到 JSON.stringify() 时,则插入断点;JSON.parse() 方法用于将一个 JSON 字符串转换为对象,在某些站点的加密过程中可能会遇到,以下代码演示了遇到 JSON.parse() 时,则插入断点。
在网页控制台运行这段代码,以便后续抓包

(
    function () {
   
        var my_strintgify = JSON.stringify;
        JSON.stringify = function (params) {
   
            console.log("Hook stringify", params);
            debugger;
            return my_strintgify(params);
        }
        var my_parse=JSON
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值