js逆向之断点调试和python补环境

js逆向断点调试与python补环境方法

1.XHR/提取断点用法

当刷新页面时候,有大量请求,并且你无法定位参数信息的时候,或者参数被混淆无法搜到,可以用该方法,该方法是会捕获所有请求连接,然后我们通过连接过滤出自己想要的请求,然后在调用堆栈中去回溯跟踪。(一般都是抓取最后一次请求)

在这里插入图片描述
步骤很简单,点击加号,然后把url连接关键词丢进去,触发网络请求,这个时候符合要求的就会被断住。

2.条件断点

右键断点小蓝块,然后点击修改断点
在这里插入图片描述

选择条件断点
在这里插入图片描述
写上自己的表达式,为true的时候就会被断住,条件表达式更灵活,不局限于网络请求url过滤

3.日志断点

在这里插入图片描述
在需要断点的地方,进行日志输出,观测值

4.监听JS代理封装

function getEnv(proxy_array) {
   
   
    for (let i = 0; i < proxy_array.length; i++) {
   
   
        handler = `{
            get: function(target, property, receiver) {
                   console.log('方法:get','    对象:${
     
     proxy_array[i]}','    属性:',property,'    属性类型:',typeof property,'    属性值类型:',typeof target[property]);
                   return target[property];
            },
            set: function(target, property, value, receiver){
                    console.log('方法:set','    对象:${
     
     proxy_array[i]}','    属性:',property,'    属性类型:',typeof property,'    属性值类型:',typeof target[property]);
                    return Reflect.set(...arguments);
            }
        }`;
        eval(`
            try{
                ${
     
     proxy_array[i]};
                ${
     
     proxy_array[i]} = new Proxy(${
     
     proxy_array[i]},${
     
     handler});
            }catch(e){
                ${
     
     proxy_array[i]}={};
                ${
     
     proxy_array[i]} = new Proxy(${
     
     proxy_array[i]},${
     
     handler});
            }
        `);
    }
}
//proxy_array = ['window', 'document', 'locaion', 'navigator', 'history', 'screen', 'history']
proxy_array = ['window','document']
getEnv(proxy_array);

一般补环境的时候可以用,但是你也可以直接在html页面中调用JS,浏览器会给你返回错误信息。

5.使用浏览器自动化工具补环境

如果有些环境实在难补,就直接补个浏览器。单例模式运行 也还好,慢2不了多少,就第一次初始化慢点。

from playwright.sync_api import sync_playwright
import os
import json

class BrowserEnv:
    _instance = None  # 单例模式实例
    _browser = None  # 浏览器实例
    _page = None  # 页面实例

    def __new__(cls, *args, **kwargs):
        # 单例模式实现
        if cls._instance is None:
            cls._instance = super(BrowserEnv, cls)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值