<?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>PE on Timmoc 的技术小屋</title>
    <link>https://t1mmoc.github.io/tags/pe/</link>
    <description>Recent content in PE on Timmoc 的技术小屋</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 17 Oct 2026 15:46:00 +0800</lastBuildDate>
    <atom:link href="https://t1mmoc.github.io/tags/pe/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>【AIGC】12 行的关机程序，重编 11 次滚到 7.4 MB：靠量长度重建自我携带链，再让反编译器对一遍答案</title>
      <link>https://t1mmoc.github.io/posts/2026-10-17-epl-self-hosting-shutdown/</link>
      <pubDate>Sat, 17 Oct 2026 15:46:00 +0800</pubDate>
      <guid>https://t1mmoc.github.io/posts/2026-10-17-epl-self-hosting-shutdown/</guid>
      <description>学生时代写过一对互保的关机程序，主程序 12 行、看守进程 10 行，可编译产物一个 7.4 MB、一个 7.9 MB。这篇先不运行任何东西，只靠量长度和比哈希就重建出它的 11 代家谱：两个工程容器里各检出 10 / 11 个合法 PE 头，按构建时间戳排序后从第三代起每代正好大 557,056 字节，而且每代都完整含住上一代、字节全等；资源名「图片1」和它后面那个 PE 头只差 11 字节。之后用 e-packager 把源码真解出来做交叉验证——它吐出的两个载荷文件，字节数和 md5 与我预测的第 10、11 代逐位相同。可迁移的点：等差数列怎么当嵌套深度的免费线索、PE 时间戳怎么反过来当构建日志、双进程守护为什么只能靠一个死循环批处理来解，以及「我这套方法扫不出来」和「这个格式读不了」是两件事。</description>
    </item>
    <item>
      <title>【AIGC】1.75 MB 的阳光修改器里，我写的代码不到 1500 字节：一次容器考古，外加我读错又改回来的一次</title>
      <link>https://t1mmoc.github.io/posts/2026-10-17-epl-pvz-sun-trainer/</link>
      <pubDate>Sat, 17 Oct 2026 12:05:00 +0800</pubDate>
      <guid>https://t1mmoc.github.io/posts/2026-10-17-epl-pvz-sun-trainer/</guid>
      <description>植物大战僵尸阳光修改器.e，1,755,148 字节、75,198 条扫描串，而属于我自己的窗体定义只占文件最前面 1,520 字节（一个标题、七个控件、一个默认值 100000）。剩下的是一整套第三方内存/驱动模块：内存_多条件搜索类（作者署名 sttacckz）、驱动级保护进程、驱动级模拟按键，加上 Cheat Engine 那套「不变/变大/变小/改变」的数值变化搜索，和 读内存整数型/写内存整数型/读内存代码 全套带类型的读写命令。这一篇还有两个硬结论：我在容器里找到了两个真的内嵌 PE（i386、PE32、56 KB，带一个非标准段 mysechx，前面紧挨着「输入法文件(SouGou)搜狗拼音」的说明），以及我第一次读的时候把它误判成「只是参数文档、里面没有二进制」，这次靠按结构扫 MZ 头改了回来。</description>
    </item>
    <item>
      <title>【AIGC】逆向入门第一课：先把字节数记死，再学会只看两件事</title>
      <link>https://t1mmoc.github.io/posts/2026-10-17-reverse-lecture-1-binary/</link>
      <pubDate>Sat, 17 Oct 2026 10:05:00 +0800</pubDate>
      <guid>https://t1mmoc.github.io/posts/2026-10-17-reverse-lecture-1-binary/</guid>
      <description>给社团讲的逆向第一课的文字版。前半是把「字节 / 位 / 十六进制」这套东西钉死：为什么按空格数长度一定会翻车、为什么 64 位下栈和寄存器会一起变长而堆不会、127&#43;1 怎么变成 -128、为什么病毒分析偏爱 32 位程序。后半是拿到一个文件的第一步：其实只需要看两件事——它是几位的、它有没有壳，然后才是 PE 头里那个 0x10B/0x20B、静态基址与 ASLR 为什么会让你每次打开偏移都不一样、.text/.data/.rdata/.reloc 各装什么。</description>
    </item>
  </channel>
</rss>
