<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>苏晓晴</title>
    <link>https://blog.toubiec.cn/</link>
    <description>一个关于技术、设计与思考的个人博客</description>
    <language>zh-CN</language>
    <atom:link href="https://blog.toubiec.cn/rss.xml" rel="self" type="application/rss+xml"/>
    
  <item>
    <title>RuntimeHost.exe 恶意软件深度逆向分析报告</title>
    <link>https://blog.toubiec.cn/posts/runtime-host-reverse-analysis/</link>
    <guid isPermaLink="true">https://blog.toubiec.cn/posts/runtime-host-reverse-analysis/</guid>
    <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    <description>伪装成微软系统组件的高危 .NET 木马：ConfuserEx 混淆对抗、RunPE 进程镂空、挖矿与多类凭据窃取，含 C2 基础设施还原与 IOC 处置建议。 威胁等级：高危 ｜ 分析日期：2026-09-02 ｜ 静态分析，未执行样本 一句话结论： 伪装成微软系统组件，实为 ConfuserEx 高强度混淆的多功能 .NET 木马——集 RunPE 加载器 + 挖矿 + 多类凭据窃取 + 多重持久化 于一身。 | 算法 | 值 | |---|---| | SHA256 | | | MD5 | | | 文件大小 | 1,197,112 字节 | 分析方式：静态侦查 + PE 元数据分析 + ILSpy 反编译 + 补丁真实类型构造器 + 真实 .NET 运行时受控模拟。所有结论均来自代码级证据与受控沙箱解密结果。 一、样本总览 样本是 PE32 可执行程序（纯 .NET 托管程序集，仅导入 ）。PE 头显示 GUI 子系统、时间戳被伪造指向未来、含数字签名目录但实际未签名。 程序集元数据完整伪装为微软产品，但内部文件名 直接暴露了它的 RunPE 加载器本质。 | 项目 | 值 | 分析结论 | |---|---|---| | 文件名 | RuntimeHost.exe | 伪装系统缓存进程名 | | 伪装身份 | Windows Syste</description>
  </item>
  <item>
    <title>从 Typecho 迁移到 Astro：我的静态博客重构记</title>
    <link>https://blog.toubiec.cn/posts/from-typecho-to-astro/</link>
    <guid isPermaLink="true">https://blog.toubiec.cn/posts/from-typecho-to-astro/</guid>
    <pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate>
    <description>记录把博客从 PHP 的 Typecho 迁移到 Astro 静态框架的全过程，包括内容导出、数据映射、主题重建和踩过的坑。 用了好几年的 Typecho 博客，前阵子终于下定决心迁移到 Astro。整个过程不算轻松，但回头看是值得的。这篇文章记录一下迁移的思路、过程和踩过的坑，给有同样想法的朋友一个参考。 为什么要离开 Typecho Typecho 本身是个很优秀的轻量博客系统——PHP 编写、体积小、插件生态也算丰富。但用得越久，几个问题就越明显： 动态渲染的性能天花板。每次访问都要走一遍 PHP + 数据库查询，虽然 Typecho 已经很轻，但在高并发或低配服务器上还是捉襟见肘。 对服务器有硬依赖。必须有一台跑 PHP 和 MySQL 的机器，还得操心环境升级、安全补丁、数据备份。 写作和版本管理割裂。文章存在数据库里，改内容要登录后台，没法用 Git 管理历史、没法在本地编辑器里舒舒服服地写。 主题定制成本高。想深度定制主题得啃 PHP 模板，前后端逻辑缠在一起。 这些痛点积累到一定程度，我就开始寻找替代方案。 为什么是 Astro 调研了一圈静态站点生成器（Hugo、Hexo、Next.js、Nuxt...），最后选了 Astro，理由很实在： 默认零 JS。对内容型博客来说，页面就该是纯静态 </description>
  </item>
  <item>
    <title>你好,Shaggy Singularity</title>
    <link>https://blog.toubiec.cn/posts/hello-world/</link>
    <guid isPermaLink="true">https://blog.toubiec.cn/posts/hello-world/</guid>
    <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
    <description>这是一篇置顶的示例文章,用来展示这个 Astro 博客主题的排版、目录、阅读进度与深浅色切换能力。 欢迎来到 Shaggy Singularity —— 一个追求极简、专注阅读的 Astro 博客主题。它没有花哨的动效,没有臃肿的依赖,只保留写作与阅读最需要的东西。 这个主题有什么 主题开箱即用,但每个细节都可以按你的喜好调整: 内容集合驱动:文章通过 下的 Markdown 文件管理,frontmatter 支持标签、封面、置顶、草稿等字段 原生性能:没有引入任何前端框架,页面体积以 KB 计 极简排版:衬线标题 + 无衬线正文,中西文混排都舒服 阅读体验:阅读进度条、侧边目录、深色模式、预估阅读时长 好博客的核心不是功能多,而是让人愿意把一篇文章读完。 怎么开始写文章 在 下新建一个 Markdown 文件即可: 保存后,开发服务器会自动热更新,文章会出现在首页列表、归档和标签页中。 自定义站点信息 站点标题、导航、社交链接都集中在 里: | 配置 | 说明 | | --- | --- | | | 站点名称,显示在页头与页脚 | | | 部署后的站点地址,用于 RSS 与 SEO | | | 顶部导航项,增删改都在这 | | | 页脚社交链接 | 改完配置,再换上 和你的头像,博</description>
  </item>
  <item>
    <title>用 Astro 内容集合管理你的博客</title>
    <link>https://blog.toubiec.cn/posts/astro-content-collections/</link>
    <guid isPermaLink="true">https://blog.toubiec.cn/posts/astro-content-collections/</guid>
    <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
    <description>从 glob loader 到 schema 校验,一步步理解 Astro 内容集合的运作方式,并学会用它组织文章、标签与归档。 内容集合(Content Collections)是 Astro 组织内容的核心方式。它把&quot;内容&quot;和&quot;渲染&quot;分离:你只管写 Markdown,剩下的类型检查、查询、排序都交给框架。 集合与 Loader 在 中,一个集合由 和 构成: loader 会把目录下所有匹配的文件变成集合条目,每个条目的 就是相对路径(不含扩展名),这也是文章 URL 的一部分。 为什么需要 Schema Schema 的价值在写作时就能体现出来: 默认值: 缺省为空字符串,不必每篇都写 类型推导: 是 ,排序时可以直接比较 错误反馈:漏字段、写错类型,构建时立刻报错,而不是上线后才发现 渲染与标题提取 拿到集合条目后,用 得到渲染后的内容和标题结构: 是 ,目录组件就是靠它生成的。注意 slug 由 Astro 根据标题自动生成,所以要保证标题唯一。 常见模式 | 需求 | 做法 | | --- | --- | | 标签页 | 遍历所有文章, 聚合 | | 归档 | 按 的年份 分组 | | 上下篇导航 | 排序后取当前文章的前后邻居 | | 搜索索引 | 对 建立关键词索引 | 这些都是本主题已经实现的功</description>
  </item>
  <item>
    <title>极简设计的思考:少一点,再少一点</title>
    <link>https://blog.toubiec.cn/posts/minimal-design-notes/</link>
    <guid isPermaLink="true">https://blog.toubiec.cn/posts/minimal-design-notes/</guid>
    <pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate>
    <description>极简不是把东西拿掉,而是把不重要的东西拿掉之后,剩下的东西变得重要。聊聊减法背后的取舍逻辑。 极简设计常被误解为&quot;简陋&quot;。真正的极简,是在充分理解问题之后,克制地留下必要之物。 减法的前提是加法 一个连内容都没有的界面,谈不上极简。好的减法发生在&quot;什么都有&quot;之后: 先完整实现功能,再问每个元素是否值得保留 保留判断标准:它是否帮助用户理解或行动? 拿掉之后,剩余元素是否变得更清晰? 极简不是把东西拿掉,而是把不重要的东西拿掉之后,剩下的东西变得重要。—— 蒂姆·库克转述乔布斯的设计观 三个可以立刻执行的检查 减少颜色 先黑白,再按需引入强调色。每多一种颜色,都需要一个理由:状态、层级、品牌,还是纯粹的装饰? 减少对齐方式 左对齐、居中、右对齐并存,是视觉杂乱的常见来源。统一对齐,间距自然产生节奏。 减少字体层级 标题、正文、说明文字,三级足够。更多的字号只是把&quot;不知道怎么组织&quot;包装成了&quot;丰富&quot;。 留白是设计的一部分 留白不是浪费空间,而是给内容呼吸。排版中的空白与文字同样参与表达: 行高至少 1.7,中文需要更宽松的行距 段间距大于行间距,层级才不会模糊 重要的东西,给它周围留出更大的空白 极简的边界 极简服务于内容,而不是反过来。博客用白底黑字、标准字体,不是因为没有创意,而</description>
  </item>
  <item>
    <title>清晨的一杯拿铁</title>
    <link>https://blog.toubiec.cn/posts/morning-coffee-latte/</link>
    <guid isPermaLink="true">https://blog.toubiec.cn/posts/morning-coffee-latte/</guid>
    <pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate>
    <description>阳光洒在窗台，咖啡香气弥漫，美好的一天从一杯拿铁开始。 清晨的阳光透过窗帘的缝隙，慵懒地洒在床头。闹钟还没响，但咖啡的香气似乎已经提前唤醒了我的感官。 唤醒仪式 对于我来说，早起的第一件事不是刷牙洗脸，而是走向厨房，打开那台熟悉的咖啡机。 听着咖啡豆在研磨机里破碎的声音，那是清晨最悦耳的乐章。随着热水流过咖啡粉，萃取出深褐色的浓缩液（Espresso），整个厨房瞬间被浓郁的焦糖香气填满。 拿铁的艺术 拿铁（Latte）在意大利语中是“牛奶”的意思。一杯完美的拿铁，主角其实是牛奶。 我从冰箱里拿出冰牛奶，倒入拉花缸。蒸汽棒发出“滋滋”的声音，将牛奶打发成绵密的奶泡。温度控制在60-65度之间，这时候的牛奶最甜，口感最顺滑。 将打发好的热牛奶缓缓注入浓缩咖啡中，看着白色和褐色在杯中交融，最后在表面形成一个简单的心形拉花。虽然我的拉花技术还算不上大师级别，但这份心意足以温暖自己。 享受当下 端着这杯热腾腾的拿铁，走到阳台，看着城市慢慢苏醒。 抿一口，先是奶泡的绵密，接着是牛奶的香甜，最后是咖啡的醇厚。三种口感在口腔中层层递进，完美融合。 这就是我的一天开始的方式。 不慌不忙，在咖啡香中整理思绪，为即将到来的工作和挑战充满电。 你呢？你的早晨通常是</description>
  </item>
  <item>
    <title>写给十年后的自己</title>
    <link>https://blog.toubiec.cn/posts/letter-to-future-self/</link>
    <guid isPermaLink="true">https://blog.toubiec.cn/posts/letter-to-future-self/</guid>
    <pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate>
    <description>一些关于时间、选择和坚持的话,留给十年后的我。如果那时这个博客还在,希望你还记得为什么出发。 亲爱的十年后的我: 现在是 2025 年的最后一天,窗外很安静。我写这些字的时候,并不知道你会在哪里读它。 关于选择 这些年我做的选择,没有一次是&quot;稳赢&quot;的。学编程、换工作、开博客、删掉重写……每一次回头看,当时纠结得要死的事,大多没那么重要。所以想提醒你: 如果又遇到抉择,选那个让你更兴奋、更难一点的方向 别用&quot;安全&quot;当借口,安全往往只是平庸的别名 犯错没关系,重复犯同样的错才值得警惕 关于坚持 这个博客已经改了三版。第一版用了半年,第二版用了一年,现在是第三版,但愿它能陪你更久。坚持一件事的意义,不在于它有没有用,而在于它让你成为什么样的人。 种一棵树最好的时间是十年前,其次是现在。 写作是树,十年后回头看,叶子应该已经够多了。 关于此刻的愿望 希望你还在写,不管有没有人看 希望你依然对世界好奇,对新技术保有热情 希望你身边的人还在,身体健康 希望你没有变成一个&quot;算了&quot;的人 最后,如果十年后的你过得还不错,记得回来把这篇文章的 改掉,告诉 2025 年的我一声。那就先这样,保重。 —— 2025 年 12 月 31 日</description>
  </item>
  <item>
    <title>Astro 主题开发速查:从配置到部署</title>
    <link>https://blog.toubiec.cn/posts/astro-theme-dev-cheatsheet/</link>
    <guid isPermaLink="true">https://blog.toubiec.cn/posts/astro-theme-dev-cheatsheet/</guid>
    <pubDate>Mon, 15 Sep 2025 00:00:00 GMT</pubDate>
    <description>一篇文章带你过完 Astro 主题开发的完整链路:配置文件、路由约定、集合 schema、全局样式与构建部署,附常用命令与坑位提醒。 开发一个 Astro 主题,核心是理解四个约定:配置文件、页面路由、内容集合和样式入口。本文以本主题为例,做一个速查。 一、配置文件 是主题的总开关: :部署域名,决定 canonical、RSS、sitemap 的绝对地址,务必改掉 :代码高亮主题, 在深色模式下会偏亮,可以换成 配合 切换 :Markdown 渲染后的处理插件,这里给 h2-h4 添加锚点链接 二、路由约定 下的文件路径就是 URL: 动态路由用 命名,配合 在构建时生成静态页面。 三、动态路由的写法 文章页是理解动态路由最好的例子: 要点: 返回的 会注入当前页面 返回 ,前者渲染正文,后者给目录用 文章 ID 即 下的相对路径,如 四、全局样式 通过 引入。设计令牌(design tokens)集中在 : 深色模式通过 覆盖变量实现, 里的内联脚本在首帧前读取 或系统偏好,避免闪烁。 五、常用命令 | 命令 | 作用 | | --- | --- | | | 启动开发服务器, | | | 构建到 ,输出静态站点 | | | 本地预览构建产物 | | | 类型与语法检查 | 六、部署 构建产物是纯静态文件,任何静态</description>
  </item>
  </channel>
</rss>