IDF-CTF-天罗地网

本文介绍了IDF CTF中涉及JavaScript加密、COOKIE欺骗、编码解码等挑战的解决过程,包括解密JS代码、利用Burp Suite进行HTTP请求分析、理解编码方式以及注意页面动态变化等技巧,旨在锻炼分析和解密能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不难不易的js加密

题目:就是这里 → http://ctf.idf.cn/game/web/28

点击链接,弹出一个输入框。要求输入flag。

这里写图片描述

查看源代码,发现一个script脚本。
然后复制到站长工具js混淆加密压缩那里解密。
http://tool.chinaz.com/js.aspx

得到解密后的代码:

var a = prompt("\u8f93\u5165\u4f60\u7684\x66\x6c\x61\x67\u5427\uff0c\u5c11\u5e74\uff01", "");
var b = "\x66\x33\x33\x37\x33\x65\x33\x36\x63\x36\x37\x37\x37\x35\x30\x37\x37\x39\x66\x35\x64\x30\x34\x66\x66\x37\x38\x38\x35\x62\x33\x65";
var c = /.+_.+_.+/gi;
var d = 0x0;
var e = a.substr(0x8, 0x5);
if ($.md5(e) == b.replace(/7/ig, ++d).replace(/8/ig, d * 0x2)) {
    
    
    var f = a.substr(0x0 / d, 0x7);
    if (f.substr(0x5, 0x2) == "\x6a\x73" && $.md5(f.substr(0x0 / d, d + 0x3)) == "\x64\x30\x31\x35\x34\x64\x35\x30\x34\x38\x62\x35\x61\x35\x65\x62\x31\x30\x65\x66\x31\x36\x34\x36\x34\x30\x30\x37\x31\x39\x66\x31") {
   
   
        r = a.substr(0xd);
        if (r.charCodeAt(d) - 0x19 == r.charCodeAt(++d) - 0x19 && r.charCodeAt(--d) - 0x19 == r.charCodeAt(--d)) {
   
   
            var g = String.fromCharCode(0x4f);
            g = g.toLowerCase() + g.toLowerCase();
            if (r.substr((++d) * 0x3, 0x6) == g.concat("\x65\x61\x73\x79") && c.test(a)) {
   
   
                d = String(0x1) + String(a.length)
            }
        }
    }
};
if (a.substr(0x4, 0x1) != String.fromCharCode(d) || a.substr(0x4, 0x1) == "\x7a") {
   
   
    alert("\u989d\uff0c\u518d\u53bb\u60f3\u60f3\u3002\u3002")
} else {
   
   
    alert("\u606d<
在ESP-IDF(Espressif IoT Development Framework)环境中,开发者可以通过使用第三方库或自行实现二维码(QR Code)生成与处理功能。虽然 ESP-IDF 官方并未直接提供原生的 QR Code 组件[^1],但可以借助以下方法和开源库实现相关功能: ### 1. 使用第三方开源库 #### **1.1 libqrencode** `libqrencode` 是一个广泛使用的 C 语言库,用于生成 QR Code 图像。它可以被集成到 ESP-IDF 项目中以生成 QR 码数据并渲染为图像格式。 - 支持编码模式:Numeric、Alphanumeric、Byte 及 Kanji。 - 输出格式:支持位图(bitmap)形式的 QR Code。 - 集成方式:将源代码移植至 ESP-IDF 的 components 目录,并通过 `CMakeLists.txt` 进行配置。 示例代码片段如下: ```c #include "qrencode.h" QRcode* qrcode = QRcode_encodeString("https://example.com", 0, QR_ECLEVEL_L, QR_MODE_8, 1); if (qrcode != NULL) { // 处理 qrcode->data 数据 QRcode_free(qrcode); } ``` #### **1.2 zxing-cpp (Zebra Crossing CPP)** `zxing-cpp` 是 ZXing(Zebra Crossing)项目的 C++ 移植版本,可用于解码 QR Code 图像。适用于从摄像头或其他图像源捕获并解析 QR 码内容。 - 支持多种图像格式输入。 - 能够识别 QR Code、Data Matrix、EAN、UPC 等条码类型。 - 需要将该库编译为 ESP-IDF 兼容的组件。 ### 2. 自定义组件开发 若需更精细控制或特定功能(如 SVG 输出、带 Logo 的 QR Code),可基于现有算法实现自定义 QR Code 生成模块。核心步骤包括: - 将输入字符串进行编码(UTF-8 或 GBK 等)。 - 应用 QR 编码规范(ISO/IEC 18004)生成纠错码。 - 构建矩阵图像并绘制黑白像素点。 ### 3. 示例项目与资源 部分社区贡献的 ESP-IDF 示例项目已经实现了 QR Code 功能,例如: - [esp-idf-qr-example](https://github.com/example/esp-idf-qr-example) - 使用 TFT 显示屏实时生成 QR 并显示的项目 这些项目通常依赖于 `libqrencode` 或类似库,并结合 LCD 驱动程序输出图形。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值