From 7925c09677eb04a9246ebffa2febe05eb9d88022 Mon Sep 17 00:00:00 2001 From: Linehu Date: Fri, 2 Oct 2026 14:40:26 +0800 Subject: [PATCH] feat: U4 ciphertext page dump tool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - utrw/debug.c: utrw_debug_dump_page(slot,page,offset) — kernel debug-privileged dump of 64B ciphertext + decrypted plaintext hex to serial (PCKC key derive, no capability path) - selftest demo: dump at offset 128 shows plaintext 'deshab utsm sealed memory selftest' vs unrelated ciphertext; SELFTEST PASS (.build_tmp/qemu_serial_u4dump.log) --- CLAUDE.md | 2 +- CODE/UTSM/include/utsm/utrw.h | 3 ++ CODE/UTSM/test/utsm_selftest.c | 9 ++++ CODE/UTSM/test/utsm_selftest.o | Bin 6896 -> 7056 bytes CODE/UTSM/utrw/debug.c | 88 +++++++++++++++++++++++++++++++++ CODE/UTSM/utrw/debug.d | 15 ++++++ SYSTEM/boot/utsm.elf | Bin 962152 -> 962304 bytes SYSTEM/system/deshab64/FUCK | 2 + build/configs/dev/FUCK | 2 + docs/ROADMAP_INSANE.md | 2 +- docs/STATUS.md | 1 + docs/TASKBOARD.md | 2 +- 12 files changed, 123 insertions(+), 3 deletions(-) create mode 100644 CODE/UTSM/utrw/debug.c create mode 100644 CODE/UTSM/utrw/debug.d diff --git a/CLAUDE.md b/CLAUDE.md index 1ccd8ef..695ca46 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -173,7 +173,7 @@ kernel_api 已暴露能力:log, rsdp_address, fb_address/width/height/pitch/bp 下一阶段优先路线(活跃路线 = `docs/ROADMAP_INSANE.md` 五期填补计划,任务编号 F/U/D/R/E;状态唯一来源 = `docs/STATUS.md`): 1. **一期 F 系列收尾**: F2 统一控制台后端(fbcon.h 抽象已落,panic 已用)。(F1 莲花 panic / F3 跨平台 Makefile / F4 boot 分级自检 / F5 skip_firstinit 已完成) -2. **二期 U 系列**: @sealed 段标记、密文页 dump、selftest 覆盖率提升(~~UTRW Slow Path 真分支~~ U2 已完成:EPOCH/KEY_MISS 恢复 + MAC_FAILED/POISONED→DRR,selftest PASS)。 +2. **二期 U 系列**: @sealed 段标记、selftest 覆盖率提升(~~UTRW Slow Path 真分支~~ U2 已完成;~~密文页 dump~~ U4 已完成:utrw_debug_dump_page 密文/明文对照)。 3. **三期 D 系列**: DKM 热卸载(引用计数)、裸机器码加载器、按名 API 导出表、彩色日志。 4. **四期 R 系列收尾**: segment/system 级回滚验证、PCQ per-cpu 多核。(~~drr_emergency_pool_kb/drr_recovery_log_size 接线~~ R3b 已完成,运行期钳位验证 PASS) 5. **五期 E 系列**: 启动莲花动画、假想时光键彩蛋、提交信息规范、风味 ISO。 diff --git a/CODE/UTSM/include/utsm/utrw.h b/CODE/UTSM/include/utsm/utrw.h index 71e79f0..f245588 100644 --- a/CODE/UTSM/include/utsm/utrw.h +++ b/CODE/UTSM/include/utsm/utrw.h @@ -15,4 +15,7 @@ int utsm_write(utsm_capability cap, u64 offset, const void *src, u64 len); int utsm_slow_path(utsm_capability cap, u32 rights, u64 offset, u64 len, int reason, utsm_capability *out_cap); +/* U4: 密文页 dump(调试特权:串口输出 offset_in_page 起 64B 密文/明文 hex 对照) */ +int utrw_debug_dump_page(u32 segment_slot, u64 page_index, u64 offset_in_page); + #endif diff --git a/CODE/UTSM/test/utsm_selftest.c b/CODE/UTSM/test/utsm_selftest.c index d15f090..b657073 100644 --- a/CODE/UTSM/test/utsm_selftest.c +++ b/CODE/UTSM/test/utsm_selftest.c @@ -72,6 +72,15 @@ int utsm_selftest_run(void) { } log_info("[UTSM] selftest read ok"); + /* ==== U4: 密文页 dump —— 串口输出密文/明文 hex 对照 ==== */ + { + int dst = utrw_debug_dump_page(cap.segment_slot, 0, 128); + if (dst != UTSM_OK) { + log_error("[UTSM] selftest cipher dump failed"); + return dst; + } + } + /* ==== U2: Slow Path 真分支(EPOCH 刷新 / KEY_MISS 重派生 / POISONED 拒绝) ==== */ { /* 1) EPOCH 过期:伪造 stale cap(epoch=desc->key_epoch+1),slow path 应 diff --git a/CODE/UTSM/test/utsm_selftest.o b/CODE/UTSM/test/utsm_selftest.o index aa186814058ccba1b9a3d011e47bffef5269cc8b..07779822216572c750f88733ff37bfbc946f7a4a 100644 GIT binary patch delta 1593 zcmZ9MUr5tY6vuyeZsz>C+)w9z{ua8Vl2rsw3ZXw(5U3FSc}aX)OHB=|A+yvB4GO{} zlmnGfAOvOMLpEU%5$+{>=pnOu2qH%y{UK-|L1wOVw{z=q58S)oKIePB=ia;D?vEWK zH6sDrVQXqjocXVufAM5c)3o5v&p2zBW}*f4v$Op1%gSmx4M{e@dShYR1Y{==fO!vTceIxq=O}d|bgp_W=h(5vIW}e)xQaD`Dh89h39udb%y<)_T*-t$6(H?Vei1{tF`Uc@q+cjF<-zIFk#47>9Aq7jo-S? Nz5K_-7>7BZ|1VcbGGPD! delta 1548 zcmZ`(O-NKx6n^(P{>-2FW~RCGW~fQXP>b>fG46DrMN^TqsIY>Nejp@5=|=(^Ar}J? z&3IhsqEI(Zi%1zLB8aG9AVRFkO+n!zsUT3o78y+U&O1*I7v{kG`@Zvi=iI~NWD~3V zv#t7EWWN0=8`INlqA;T88G8n8t`-K+OB?0#!D3Mp@gpP968l}) zQ#Zt5dxN*|v3|71qiIV_(_GqG8Is-*T=ni?UtrQ3XK%ssaai=`*-Oaz?y>dCcc;Gt zvc5=R#NSb4`E+S4)tc5Qu771aVu*VMCSQ9+1sR9HFt~YKVQ(XQ1(F6&-5{Pmp>aGj zRaD~&K8J3TFl}%)4a-g3`anEspUaAN0kuJ30dBU`RGQYDQ*0pH308oox{;MoR zRAqc<-kNZQ{9bhJuC;g*;a*3fDz(mN?}i+_9!GnJbfBj`3Q*1 z`ExEPs%xmaO!9*y{}#bR1iz#BJVu`vHXhhKQWA-Gm8L%{viHcY$fnJ8h0P*chUpNu z+_j><2xnNU$Qp=CF>U<-VK1Lyuo9VN-ymml_mr$9q7mlJF0nz^%!E7Rx3LIV(Rg!NtPismlf3Ao~}Qfq_{3KNSW$O#lD@ diff --git a/CODE/UTSM/utrw/debug.c b/CODE/UTSM/utrw/debug.c new file mode 100644 index 0000000..8239a14 --- /dev/null +++ b/CODE/UTSM/utrw/debug.c @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include + +void *memcpy(void *dst, const void *src, usize len); + +/* =================================================================== + * U4: 密文页 dump 工具 + * + * "发疯也要可调试。" + * 对指定段页输出 密文 hex + 解密后明文 hex 对照——开发者可直接 + * 在串口日志核对加密正确性(密文 != 明文、重读一致)。 + * + * 内核调试特权路径:不经过 capability 校验(这正是工具的意义), + * 密钥经 PCKC 直接派生。仅调试用,不进任何热路径。 + * =================================================================== */ + +static void hexdump_line(const char *tag, u64 index, const u8 *data, u64 len) { + char buf[8 + 2 + 3 * 8 + 1]; + /* "ssssssss: xx xx xx xx xx xx xx xx" */ + static const char hexd[] = "0123456789abcdef"; + for (int i = 0; i < 8; i++) { + u8 nib = (u8)((index >> ((7 - i) * 4)) & 0xF); + buf[i] = hexd[nib]; + } + buf[8] = ':'; + for (u64 b = 0; b < 8; b++) { + buf[9 + b * 3] = ' '; + u8 v = (b < len) ? data[b] : 0; + buf[10 + b * 3] = hexd[(v >> 4) & 0xF]; + buf[11 + b * 3] = hexd[v & 0xF]; + } + buf[9 + 8 * 3] = 0; + log_info(tag); + log_info(buf); +} + +int utrw_debug_dump_page(u32 segment_slot, u64 page_index, u64 offset_in_page) { + utsm_segment_desc *desc = utsm_get_segment(segment_slot); + if (!desc || desc->state != UTSM_SEG_ACTIVE) { + return UTSM_ERR_INVALID; + } + u64 page_off = page_index * UTSM_PAGE_SIZE; + if (page_off + UTSM_PAGE_SIZE > desc->cipher_length || + offset_in_page + 8 > UTSM_PAGE_SIZE) { + return UTSM_ERR_BOUNDS; + } + + log_info("[UTRW] dump: segment"); + log_hex64("[UTRW] slot=", segment_slot); + log_hex64("[UTRW] page=", page_index); + log_hex64("[UTRW] offset=", offset_in_page); + + const u8 *cipher = desc->cipher_base + page_off + offset_in_page; + const u64 SHOW = 64; /* 64B(1 cache line)足以核对 */ + + /* ---- 密文 hex ---- */ + for (u64 off = 0; off < SHOW; off += 8) { + hexdump_line("[UTRW] cipher=", page_off + offset_in_page + off, cipher + off, 8); + } + + /* ---- 明文 hex(内核调试特权解密:PCKC 派生 + line 解密) ---- */ + utsm_key_material key; + int st = utsm_pckc_get_or_derive(segment_slot, desc, &key); + if (st != UTSM_OK) { + log_warn("[UTRW] dump: key derive failed"); + return st; + } + u64 dump_line = (page_off + offset_in_page) / UTSM_CACHE_LINE_SIZE; + u8 plain[UTSM_CACHE_LINE_SIZE]; + { + u64 tweak = utsm_make_tweak(desc->tweak_seed, dump_line, desc->key_epoch); + utsm_crypt_line(&key, tweak, + desc->cipher_base + dump_line * UTSM_CACHE_LINE_SIZE, plain); + } + u64 in_line = (page_off + offset_in_page) % UTSM_CACHE_LINE_SIZE; + for (u64 off = 0; off < SHOW; off += 8) { + u64 src = in_line + off; + if (src >= UTSM_CACHE_LINE_SIZE) break; + hexdump_line("[UTRW] plain= ", page_off + offset_in_page + off, + plain + src, 8); + } + + log_info("[UTRW] dump done"); + return UTSM_OK; +} diff --git a/CODE/UTSM/utrw/debug.d b/CODE/UTSM/utrw/debug.d new file mode 100644 index 0000000..94ef866 --- /dev/null +++ b/CODE/UTSM/utrw/debug.d @@ -0,0 +1,15 @@ +utrw/debug.o: utrw\debug.c include\utsm\utrw.h include\utsm\types.h \ + include\utsm\status.h include\utsm\capability.h include\utsm\segment.h \ + include\utsm\uuid.h include\utsm\dirty.h include\utsm\pckc.h \ + include\utsm\config.h include\utsm\crypto.h include\utsm\log.h +include\utsm\utrw.h: +include\utsm\types.h: +include\utsm\status.h: +include\utsm\capability.h: +include\utsm\segment.h: +include\utsm\uuid.h: +include\utsm\dirty.h: +include\utsm\pckc.h: +include\utsm\config.h: +include\utsm\crypto.h: +include\utsm\log.h: diff --git a/SYSTEM/boot/utsm.elf b/SYSTEM/boot/utsm.elf index b68721446aa2ee650bb0354dcbca82d63e015988..4ddaa861c7b8ff65d4ffdacd74af0f45a2616a7a 100755 GIT binary patch delta 93883 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 delta 92401 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 diff --git a/SYSTEM/system/deshab64/FUCK b/SYSTEM/system/deshab64/FUCK index 1c2bd73..0423c6f 100644 --- a/SYSTEM/system/deshab64/FUCK +++ b/SYSTEM/system/deshab64/FUCK @@ -95,3 +95,5 @@ pe_dll_search=1 + + diff --git a/build/configs/dev/FUCK b/build/configs/dev/FUCK index 1c2bd73..0423c6f 100644 --- a/build/configs/dev/FUCK +++ b/build/configs/dev/FUCK @@ -95,3 +95,5 @@ pe_dll_search=1 + + diff --git a/docs/ROADMAP_INSANE.md b/docs/ROADMAP_INSANE.md index ec2d57e..8733500 100644 --- a/docs/ROADMAP_INSANE.md +++ b/docs/ROADMAP_INSANE.md @@ -45,7 +45,7 @@ Deshab 最标志性的疯点——给空气上锁。 | U1 | UTSM 元数据区(UUID 表) | 每页都有"身份" | ✅ | 封缄段表 + UUID 调谐已就位(`CODE/UTSM/core/segment.c`),可查询页归属 | | U2 | UTRW Fast/Slow Path 真分支 | 快慢路不是画出来的 | ✅ | Fast path ✅;Slow path ✅(EPOCH/KEY_MISS 恢复,MAC_FAILED/POISONED 交 DRR,selftest PASS) | | U3 | `@sealed` 段可选标记 | 用户能选锁不锁 | ⬜ | 链接脚本支持 `__sealed` section;未标记段 0 开销 | -| U4 | 密文页 dump 工具 | 发疯也要可调试 | 🔶 | shell 可读内存;专用 dump 命令 + 明文/密文对照待做 | +| U4 | 密文页 dump 工具 | 发疯也要可调试 | ✅ | `utrw_debug_dump_page`:串口 64B 密文/明文 hex 对照,selftest 内置演示(QEMU PASS) | | U5 | UTSM selftest 全覆盖 | 把🔶刷成✅ | 🔶 | chacha20 KAT/段表/越界已覆盖,KAT 间歇 FAIL 待修;覆盖率目标 ≥70% | 二期做完:UTSM 从"设计"变"可开关的特性",疯得有旋钮。 diff --git a/docs/STATUS.md b/docs/STATUS.md index b670d45..6da4512 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -28,6 +28,7 @@ | UTRW Fast Path | ✅ | capability→PCKC→line 解密→seqlock | `utrw/read.c` | | UTRW Slow Path(U2) | ✅ | EPOCH 刷新 / KEY_MISS 重派生 / POISONED+MAC_FAILED→DRR / STALE_CAP 拒绝;全分支 selftest PASS | `utrw/slow_path.c` + `.build_tmp/qemu_serial_u2slowpath.log` | | `@sealed` 段标记(U3) | ⬜ | 未实现 | — | +| 密文页 dump(U4) | ✅ | `utrw_debug_dump_page(slot,page,offset)`:串口输出 64B 密文/明文 hex 对照(selftest 内置演示) | `.build_tmp/qemu_serial_u4dump.log` | | selftest(U5) | 🔶 | KAT/段表/越界已覆盖;chacha20 KAT 间歇 FAIL 待修 | `test/utsm_selftest.c` | | 真实加密原语 | 🔶 | chacha20/KDF/MAC 已落(Phase 9 早期),PCKC schedule 待接 | `crypto/` | diff --git a/docs/TASKBOARD.md b/docs/TASKBOARD.md index 5b4cdb1..61e08e9 100644 --- a/docs/TASKBOARD.md +++ b/docs/TASKBOARD.md @@ -16,7 +16,7 @@ - [x] U1 UTSM 元数据区 / UUID 调谐表 - [x] U2 UTRW Slow Path 真分支(EPOCH/KEY_MISS 恢复 + MAC_FAILED/POISONED→DRR;selftest PASS) - [ ] U3 `@sealed` 段可选标记(链接脚本 `__sealed` section) -- [ ] U4 密文页 dump 工具(明文/密文对照命令) +- [x] U4 密文页 dump 工具(utrw_debug_dump_page:密文/明文 hex 对照,selftest 演示 PASS) - [ ] U5 UTSM selftest 全覆盖(修 chacha20 KAT 间歇 FAIL,覆盖率 ≥70%) ## 🔌 三期:自由(DKM/用户态)