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)
js逆向断点调试与python补环境方法

最低0.47元/天 解锁文章
922

被折叠的 条评论
为什么被折叠?



