js逆向反调试的基本 bypass

反调试的基本检测方法

1、无限debugger 技术 (防止你断点 反编译)

2、键盘监听(右键 、 f12的禁止)

3、检测是否是浏览器

4、检测是否启用了管理员模式的(检测是不是 true)

绕过技巧:

对于没有联系的简单发现的单断点无限debug :

1、无断点模式设置

2、禁止局域断点

3、设置条件断点

高级 :

4、文件替换

5、burp规则过滤

6、hook脚本绕过

单断点: Title

单击f12 直接进入到 debugger模式  之后就是无限的停止在这个页面

使用方法1 :

使用这个

debug 绕过了 但是缺点就是我们也不能使用断点了

第二种 2、

优点是 还可以再别的函数上进行断点   缺点就是对于有联系的断点来说很麻烦

第三方法 : 和第二种差不多 :

这个的意思其实就是 用不在此处进行断点

高级 : Scrape | Movie

文件替换 :

我们打开的时候会出现 自动断点的情况  其实就是debug 函数导致的   那这个是不是可以使用本地的文件进行替换 ???因为js是前端的东西 是可以进行修改的

操作 :1、

我的是edge 浏览器 所以可能会有些不同  记录下debug的位置 

debugger ;console.log("debugger")

说明现在这个js就是我们本地的了 我们可以进行修改

修改 运行

发现不止一个 waf   上面的操作

然后重新开始就绕过了

burp规则过滤

配置上规则就行了

hook脚本:

burp一般不常用 因为来回换代理太麻烦了 

 

下载这个篡改猴   除了 edge 其他的浏览器需要魔法才能访问这个

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      2025-01-12
// @description  监控Function构造函数调用,并拦截包含'debugger'语句的函数定义,替换为日志记录
// @author       xiaodisec
// @match        https://jishulink.com/video/c246316
// @icon         https://www.google.com/s2/favicons?sz=64&domain=jishulink.com
// @grant        none
// ==/UserScript==

// 立即执行函数表达式,返回一个清理函数,用于在必要时恢复Function.prototype.constructor
const cleanup = (function () {
    'use strict';
    // 保存原始的Function构造函数
    const originalConstructor = Function.prototype.constructor;

    // 检查Function.prototype.constructor是否可写
    if (typeof Object.getOwnPropertyDescriptor(Function.prototype, 'constructor').writable === 'boolean' &&!Object.getOwnPropertyDescriptor(Function.prototype, 'constructor').writable) {
        console.error('Function.prototype.constructor is not writable. Cannot hook the constructor.');
        return function () {};
    }

    // 重写Function构造函数
    Function.prototype.constructor = function (...args) {
        console.log(`Function constructor called on page ${location.href} with arguments:`, args);
        if (args.length && args[0].includes("debugger")) {
            console.warn(`Attempt to use 'debugger' in Function constructor intercepted on page ${location.href}!`);
            args[0] = args[0].replace(/debugger/g, "console.log('debugger intercepted');");
            // 这里需要返回一个函数实例,而不是直接返回,否则会导致函数定义失败
            return originalConstructor.apply(this, args);
        }
        return originalConstructor.apply(this, args);
    };

    console.log("Function.prototype.constructor is now hooked!");

    // 返回清理函数,用于恢复原始的Function构造函数
    return function () {
        Function.prototype.constructor = originalConstructor;
        console.log("Function.prototype.constructor has been restored.");
    };
})();

// 在脚本卸载或页面卸载时调用清理函数
window.addEventListener('unload', function () {
    cleanup();
});

分享一个 解无限debug的脚本

启用起来

https://jishulink.com/video/c246316

目标web  当然如果你想测试其他的web  可以改指向的web

当我们不启用脚本时

播放视频时点击 f12会触发无限debug

直接bypass了

03-26
### 逆向工程与反编译概述 逆向工程是一种通过对软件的目标代码进行分析,将其转化为更高级别的表示形式的过程。这一过程通常用于研究现有系统的内部结构、功能以及实现细节。在Java和Android领域,反编译工具被广泛应用于逆向工程中。 #### Java逆向工程中的Jad反编译工具 Jad是一款经典的Java反编译工具,能够将`.class`字节码文件转换为可读的`.java`源代码[^1]。虽然它可能无法完全恢复原始源代码,但它提供了足够的信息来帮助开发者理解已编译的Java程序逻辑。Jad支持多种反编译模式,并允许用户自定义规则以适应不同的需求。此外,其命令行接口和图形界面使得复杂代码的分析变得更加便捷。 #### Android逆向工程中的JEB反编译工具 针对Android应用的逆向工程,JEB是由PNF Software开发的一款专业级工具[^2]。相较于其他同类产品,JEB不仅具备强大的APK文件反编译能力,还能对Dalvik字节码执行高效而精准的操作。它的核心优势在于以下几个方面: - **广泛的平台兼容性**:除Android外,还支持ARM、MIPS等多种架构的二进制文件反汇编。 - **混淆代码解析**:内置模块能有效应对高度混淆的代码,提供分层重构机制以便于深入分析。 - **API集成支持**:允许通过编写Python或Java脚本来扩展功能并完成特定任务。 #### APK反编译流程及其意义 当涉及到具体的APK包时,可以通过一系列步骤提取其中的信息来进行全面的安全评估或者学习目的的研究工作[^3]。这些步骤一般包括但不限于获取资产目录(`assets`)内的资源数据;解密XML配置文档如`AndroidManifest.xml`定位应用程序启动点;最后利用上述提到的各种专用软件重现整个项目框架供进一步探讨。 ```bash # 使用apktool反编译APK示例 apktool d your_app.apk -o output_directory/ ``` 以上命令展示了如何借助开源工具ApkTool轻松拆卸目标安卓档案至易于探索的状态下。 ### 结论 无论是传统的桌面端还是现代移动端环境里头,恰当运用合适的反编译解决方案都是达成逆向工程项目成功不可或缺的一环。每种工具有各自专精之处,在实际应用场景当中应当依据具体需求做出明智的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值