<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>GBK on Timmoc 的技术小屋</title>
    <link>https://t1mmoc.github.io/tags/gbk/</link>
    <description>Recent content in GBK on Timmoc 的技术小屋</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 17 Oct 2026 12:47:00 +0800</lastBuildDate>
    <atom:link href="https://t1mmoc.github.io/tags/gbk/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>【AIGC】没有易语言 IDE 也能读 .e 工程：把自己 2014–2018 的聊天器从二进制里挖出来</title>
      <link>https://t1mmoc.github.io/posts/2026-10-17-epl-e-container-reading/</link>
      <pubDate>Sat, 17 Oct 2026 12:47:00 +0800</pubDate>
      <guid>https://t1mmoc.github.io/posts/2026-10-17-epl-e-container-reading/</guid>
      <description>给社团讲的逆向入门课之外的另一篇：清理一批学生时代的旧归档时发现一个现实问题——26 个 .e 工程全是专有二进制容器，而我不想为了读旧代码重装易语言。这篇讲怎么把 .e 当成「明文 GBK 串 &#43; 长度前缀 &#43; 二进制记录」交错的容器来扫：为什么 strings 一定漏掉最有价值的那部分、为什么必须按 GBK 双字节规则逐字节走、长度前缀为什么不能拟合出一条统一规则、扫出来的东西一大半是假阳性该怎么分三类筛。然后给出了这套方法的量化边界：26 个工程约 27 万条扫描串里，能确认是亲手写的源码语句只有 2 行。最后用它还原了 LP 聊天器四个年头的演进——命令名怎么变的、为什么身份字段叫「马甲」、文号取件式文件传输、以及 878 KB 的客户端里真正属于我的代码其实只占前面一小段。</description>
    </item>
    <item>
      <title>【AIGC】五个版本的音乐播放器，和一个连作者名都还没想好的工程</title>
      <link>https://t1mmoc.github.io/posts/2026-10-17-epl-music-player/</link>
      <pubDate>Sat, 17 Oct 2026 12:23:00 +0800</pubDate>
      <guid>https://t1mmoc.github.io/posts/2026-10-17-epl-music-player/</guid>
      <description>lp-music-player 收了 2014-10 到 2016-04 的五个工程，是这批归档里迭代最勤的一个。这篇有两个方法点：一是「看串的偏移分布，比看串本身更有信息量」——音乐播放器内测.e 扫出 1066 条串，其中 7518 到 30000 这一整段全是嵌入位图的像素和调色板，真正有用的东西只挤在两个不到 800 字节的窗口里；二是这套筛选怎么做到的。内容上有几个我自己忘了的东西：lrc 歌词制作器比播放器早一年半、对照.e 里那个带广告语的「惜缘音乐盒子」、LOL 专用版只有 3 条串但重写了窗口关闭事件，以及一个备注里写着「作者：神马？？？」的工程。</description>
    </item>
  </channel>
</rss>
