========================= Reverse - Box 解题思路 不是标准可执行文件,无法按 PE/ELF 逆向套路处理。 from pathlib import Path from collections import Counter from math import log2 import hashlib data = Path(‘Box.bin’).read_bytes() cnt = Counter(data) n = len(data) entropy = sum(-(c/n) * log2(c/n) for c in cnt.values()) print(f’Size:...

ISCC2026 WriteUp Reverse——Conway’s trap 解题思路 1. 程序整体观察 运行附件中的 PE 程序后,终端先提示 “Enter seed:", 等待输入 32 位 hex 字符串;通过后显示 “Correct Seed.", 接着提示 “Enter flag:"。 输入格式 `ISCC{…}` 后若花括号匹配则给出 “Correct format! But wrong content."。注意到这里有两类不同反馈——格式正确但内容错误——暗示 flag 校验阶段存在不止一条代码路径。 使用 IDA 定位到这些字符串的交叉引用,找到 main 函数的核心逻辑。main 大致分为两段:前半段处理...

Dual Protection WP 题目信息 题目文件:Dual Protection.exe flag 格式:ISCC{} 一、程序基本行为 程序运行后会提示输入: Input Flag: 输入后只会输出两种结果: Correct. Wrong. 通过字符串可以直接看到: Input Flag: %36s Correct. Wrong. 其中 %36s 已经暗示输入长度和 36 很相关。 二、主逻辑分析 主逻辑位于 0x401100 附近,核心流程可以还原为: memset(buf, 0, 0x63); printf("Input Flag: "); scanf("%36s", buf); if (strlen(buf) !=...

========================= Reverse+l11nk 解题思路 文件是一个 4.1 MB 的 32 位 MIPS 大端序可重定位目标文件,未 strip。 1.1 节区概览 ┌──────────────┬──────────────┬─────────────┐ │ 节区 │ 类型 │ 大小 │ ├──────────────┼──────────────┼─────────────┤ │ .comment │ SHT_PROGBITS │ 319 B │ ├──────────────┼──────────────┼─────────────┤ │ .ai.guard │ SHT_PROGBITS │...

逆向 + QuorumGlyph 解题思路(必须包含文字说明+截图) 1. 基础信息 题目提示为 One witness lies. Two are incomplete. Three agree. 附件为 stripped 的 Linux x86_64 ELF,输入 flag 后输出 Yes??? / No???。 通过 strings 可以直接看到前缀 ISCC{QRM_ 和自定义字母表 ABCDEFGHJKLMNPQRSTUVWXYZ23456789。 基础校验 main 中先做长度和格式检查:输入长度必须为 42,前缀必须是 ISCC{QRM_,第 14 个字符必须为 _,最后一个字符必须为 },并且所有字符都要落在...

在字符串里可以直接看到目标比较值: 000A9CD32B9E4D0D563A190E6B2DC2923ADA53F5BEF22A7A 主逻辑里一共用了 4 个数字: 344, 21, 89, 233 对 {} 内的内容依次进行: RC4(key="344") 与 "21" 循环异或 与 "89" 循环逐字节相加 用 SHA256("233") 的前 16 字节作为 TEA key 加密 转大写十六进制后与目标常量比较 因此只需要逆向还原: 目标 hex 转字节 TEA 解密 去填充 循环减去 "89" 循环异或 "21" RC4 解密,key="344" 还原后得到明文: deaIoihuwuasyIleolyclrt 所以最终...

Reverse +像素迷宫 解题思路: 题目给出的文件是一个 64 位 Windows 控制台程序,运行后会提示输入 flag。通过字符串信息可以先确定程序会校验 `ISCC{}` 格式,并且程序中还出现了 `PixelMaze1.cpp`、`Correct!`、`Incorrect!` 等关键字,说明题目没有做额外混淆,核心就是分析内部路径验证逻辑。 主函数流程比较直接,程序先读取用户输入,然后调用 `extractPath()` 提取花括号中的内容。如果输入不满足 `ISCC{…}` 格式,或者中间内容为空,就直接判错。进一步分析 `extractPath()` 可以发现,它会逐字符过滤,只保留 `E`、`N`、`S`、`W`...

ISCC2026 WriteUp Reverse-北极星混淆 解题思路 ### 1. 文件基础分析 拿到题目压缩包,解压得到一个 ELF 文件: 64-bit ELF,开 PIE,符号表已去除。用 `pyelftools` 解析内部结构: | 段名 | 起始 VA | 大小 | | —— | ———- | ———- | | .text | `0x40e0` | `0x14954b` | | .rodata| `0x14e000` | `0x33a64` | | .data | `0x184000` | `0xc40` | | .bss | `0x184c40` | `0x33770` | 导入表很小,总共 12 个外部符号,说明大...

ISCC2026 WriteUp 题目类型:Reverse 题目名称:手忙脚乱(新附件 attachment-62.exe) 解题思路 ### 1. 初步信息收集 拿到附件 `attachment-62.exe`,首先确认文件类型: 这是一个 64 位 Windows 控制台程序。通过 strings 提取关键字符串: input 24 char plaintext: len error PASS FAIL transpose: length mismatch 以及关键函数符号: decrypt_blob columnarTransposeEncrypt encryptPart2 makeTable hdb3 这表明程序内部包含列...

Reverse + 拆弹专家 解题思路: 这道题是一个 Windows 逆向题,整体形式类似“三关拆弹”,需要依次通过三个验证阶段,全部通过后程序会拼接输出最终 flag。程序逻辑比较清晰,核心在于分别逆向每一关的校验方式,然后将三段正确输入组合起来。 第一关是一个 8 字符输入验证。程序要求输入为可打印 ASCII 字符,随后会经过一个类似 2x2x2 魔方变换的自定义加密流程,包含位置置换、字节加法、PKCS#7 填充和 Base64 编码,最后对结果做 FNV1a 哈希并与目标值比较。不过在分析对应函数时,可以直接从代码注释中看到第一关明文已经被写出,即 `HYXHJTME`,因此这一关不需要额外爆破,直接可得答案。 第二关...

Reverse + 毛毛虫的逆袭 解题思路: 题目给出的是一个 64 位 Windows 可执行文件,初步分析可以看到其节表中存在 `UPX0`、`UPX1`、`UPX2` 等特征,导入函数也非常少,只有 `LoadLibraryA`、`ExitProcess`、`GetProcAddress`、`VirtualProtect` 等典型壳程序接口,因此可以判断该程序使用了 UPX 进行加壳。首先使用 `upx -d` 对样本进行脱壳,脱壳后文件体积明显增大,导入表恢复正常,便于后续静态分析。 在脱壳后的程序中,可以从字符串区直接看到输入提示和校验失败提示,确定 flag 格式为 `ISCC{}`,其中花括号内部长度为 20 个字符...

Live2D: unsignedzhang/luotianyi-live2d