【AIGC】没有易语言 IDE 也能读 .e 工程:把自己 2014–2018 的聊天器从二进制里挖出来

起点:一堆积木,但积木盒是锁着的 手上有 26 个易语言(EPL)工程文件,时间从 2014-10 到 2019-08。都是学生时代的东西:聊天器、音乐播放器、QQ 机器人、端口映射、ARP 工具、远程控制、两个小整人程序、一个 PvZ 阳光修改器。 想归档发出来,卡在一个很实际的问题上:.e 是专有二进制容器,没有易语言 IDE 就"打不开"。而我不想为了读一堆旧代码去装 IDE,更不想为了发博客把源码先重写成别的语言。 但"打不开"和"读不了"是两件事。这篇讲怎么把 .e 读出来,以及读出来以后发现的、连我自己都不记得的东西。仓库地址在最后。 第一步:判断它是"存起来"还是"锁起来" 拿到一个陌生的二进制容器,第一个问题不是"格式规范在哪",而是: ...

【AIGC】两个 2 KB 的「端口映射」工程:一个空壳,以及它教会我的两件事

两个文件,各一千多字节,同一天改的: 服务端.源码.e 1,729 字节 2016-10-02 客户端.源码.e 2,115 字节 2016-10-02 这一对我几乎可以肯定就是用来搞清楚格式的那两个文件 —— 因为在旗舰篇里,我推导长度前缀、窗体记录形状、支持库表项结构,用的全是它俩。 但也是这一对,让我推翻了自己几天前刚写下的话。 一、研究格式要找最小的标本 服务端.源码.e 1,729 字节,扫描产出 20 条串。全部列出来: 0 CNWTEPRG ← 容器魔数 20 嫉溪E突盼 ← 伪影 180 犆壕E位盼 ← 伪影 368 捞噪な协盼 ← 伪影 408 (无意义) 480 _启动窗口 ← 窗体名 493 在程序启动后自动调入本窗口 ← 窗体说明 678 服务器1 ← 控件:监听 796 捞与盼 ← 伪影 924 d09f2340818511d396f6aaf844c7e325 ← krnln 的 GUID 961 系统核心支持库 ← 唯一一个支持库 1015 窗口程序集1 1114 栗楼罚佛盼 ← 伪影 1220 躺吵恭墩r匙s ← 伪影 1324 测试端口映射.exe ← 容器里存的是带目录的全路径 1408 客户1 ← 控件:连接 1414 __启动窗口_创建完毕 ← 唯一的事件 1434 服务器1 1442 __启动窗口_创建完毕 1462 客户1 1500 锣荡E苹盼; ← 伪影 20 条里有 8 条是伪影 —— 这个比例(40%)正好也是旗舰篇里那套统计筛法要解决的问题。在小样本上,伪影不是噪音,它就是主要产出,所以你被迫把每一条都查到字节级才算读完。 ...