遇见一个网页反调试(网页跳转)


https://vf.cfaqcgj.com/vod_pc_static_hkan/frameworks/disable-devtool/latest/index.min.js?ver=25090916
搜索devtool找到3处;用REres替换这个js仍然无法跳过
遇见一个网页反调试(网页跳转)


搜索devtool找到3处;用REres替换这个js仍然无法跳过
上午好☀️☀️☀️️
本答案参考通义千问
你提到的网页反调试问题,涉及对 index.min.js 这个文件的处理。该文件包含多个与 DevTools 相关的检测逻辑,即使你尝试用 REres 替换该 JS 文件,仍然无法跳过,说明可能有以下几种原因:
JS 被动态加载或注入
eval()、new Function()、import() 等),使得简单的替换无法生效。多层反调试机制
console.logdebuggerwindow.chromeObject.defineProperty(window, 'navigator', ...)服务器端检测
User-Agent 或其他字段,若检测到非浏览器环境(如 Puppeteer、Selenium 等)则直接拒绝访问。混淆或加密
index.min.js 文件。重点: 查看是否有
location.href、window.open()、document.write()等跳转行为。
在 index.min.js 中搜索以下关键词:
devtoolconsoledebuggerisDebuggerRunningObject.defineProperty例如,假设你发现如下代码:
function isDebugger() {
return window.chrome && window.chrome.app && window.chrome.app.runtime;
}
可以将其改为:
function isDebugger() {
return false; // 强制返回 false
}
或者直接注释掉整个函数:
// function isDebugger() { ... }
重点: 需要逐行查看并修改所有可疑的检测逻辑。
你可以使用以下工具来屏蔽反调试逻辑:
如果你是通过代码爬取页面,可以使用 Puppeteer 并添加以下配置:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
args: ['--disable-blink-features=AutomationControlled'],
headless: false,
defaultViewport: null,
ignoreHTTPSErrors: true,
devtools: true,
});
const page = await browser.newPage();
await page.evaluateOnNewDocument(() => {
// 移除 devtool 检测
delete window.__proto__.ondevtoolschange;
window.chrome = {};
window.chrome.app = {};
window.chrome.runtime = {};
window.chrome.extension = {};
});
await page.goto('https://vf.cfaqcgj.com/vod_pc_static_hkan/frameworks/disable-devtool/latest/index.min.js?ver=25090916');
await page.screenshot({ path: 'example.png' });
await browser.close();
})();
重点: 上述代码通过
evaluateOnNewDocument注入自定义脚本,防止 DevTools 检测。
302 跳转或 Location 头设置,判断是否是服务器端限制。| 步骤 | 方法 | 说明 | |------|------|------| | 1 | 使用开发者工具调试 | 定位跳转或检测逻辑 | | 2 | 修改 JS 文件内容 | 删除或修改关键检测函数 | | 3 | 使用浏览器扩展 | 屏蔽反调试资源 | | 4 | 使用 Puppeteer + 高级配置 | 避免被识别为自动化工具 | | 5 | 检查网络请求 | 判断是否是服务器端限制 |
如有需要,我可以为你提供一个完整的 Puppeteer 示例脚本,用于绕过此类反调试机制。是否需要?