<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>Erzbir</title><link>https://erzbir.com/</link><atom:link href="https://erzbir.com/feed.xml" rel="self" type="application/rss+xml"/><description>Erzbir's Blog</description><generator>Halo v2.26.0</generator><language>zh-cn</language><image><url>https://erzbir.com/upload/avatar_5.jpeg</url><title>Erzbir</title><link>https://erzbir.com/</link></image><lastBuildDate>Fri, 9 Oct 2026 11:09:57 GMT</lastBuildDate><item><title><![CDATA[Halo Pro 许可证激活缺陷导致无效许可证仍可激活]]></title><link>https://erzbir.com/archives/halo-pro-activation-flaw-zh</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=Halo%20Pro%20%E8%AE%B8%E5%8F%AF%E8%AF%81%E6%BF%80%E6%B4%BB%E7%BC%BA%E9%99%B7%E5%AF%BC%E8%87%B4%E6%97%A0%E6%95%88%E8%AE%B8%E5%8F%AF%E8%AF%81%E4%BB%8D%E5%8F%AF%E6%BF%80%E6%B4%BB&amp;url=/archives/halo-pro-activation-flaw-zh" width="1" height="1" alt="" style="opacity:0;">分析了 Halo Pro 的许可证激活机制, 并发现了一个激活状态没有被正确回滚的问题, 导致许可证验证失败后仍然可能保持激活状态.]]></description><guid isPermaLink="false">/archives/halo-pro-activation-flaw-zh</guid><dc:creator>Erzbir</dc:creator><category>Security</category><pubDate>Sun, 9 Aug 2026 12:48:09 GMT</pubDate></item><item><title><![CDATA[Halo Pro License Activation Flaw Allows Invalid Licenses to Remain Active]]></title><link>https://erzbir.com/archives/halo-pro-activation-flaw</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=Halo%20Pro%20License%20Activation%20Flaw%20Allows%20Invalid%20Licenses%20to%20Remain%20Active&amp;url=/archives/halo-pro-activation-flaw" width="1" height="1" alt="" style="opacity:0;">I analyzed Halo Pro's license activation mechanism and found an issue where the activation state was not properly rolled back, allowing it to remain active even when license verification failed.]]></description><guid isPermaLink="false">/archives/halo-pro-activation-flaw</guid><dc:creator>Erzbir</dc:creator><category>Security</category><pubDate>Fri, 7 Aug 2026 18:22:46 GMT</pubDate></item><item><title><![CDATA[Hotel California Solo - Flute 楽譜]]></title><link>https://erzbir.com/archives/hotel-california-solo-flute-sheet-music</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=Hotel%20California%20Solo%20-%20Flute%20%E6%A5%BD%E8%AD%9C&amp;url=/archives/hotel-california-solo-flute-sheet-music" width="1" height="1" alt="" style="opacity:0;">最近, 中学生のころからずっと好きな曲 Hotel California の尾奏の楽譜を作成した 前奏の楽譜は沢山見かけるが, 尾奏の楽譜はあまり見かけないね... そこで, 自分で作成した. ここでは尾奏部分のみである 注意点として, この楽譜は Flute 用に作ったものだが, ここでは ♯♯]]></description><guid isPermaLink="false">/archives/hotel-california-solo-flute-sheet-music</guid><dc:creator>Erzbir</dc:creator><category>Music</category><pubDate>Sun, 12 Jul 2026 13:58:51 GMT</pubDate></item><item><title><![CDATA[HHKB Professional HYBRID 购入]]></title><link>https://erzbir.com/archives/hhkb-purchase</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=HHKB%20Professional%20HYBRID%20%E8%B4%AD%E5%85%A5&amp;url=/archives/hhkb-purchase" width="1" height="1" alt="" style="opacity:0;">这次去东京, 计划买一把 HHKB 键盘 购买渠道有线下和官网, 能买到的地方不止东京 最近日元汇率非常低, 于是在日本买大概能比国内能便宜 700 块钱 能买到 HHKB 的线下店似乎并不好找. 在 HHKB 官网有个页面专门列出了一下可以体验和购买的线下店 在这里可以找到线下店: https:/]]></description><guid isPermaLink="false">/archives/hhkb-purchase</guid><dc:creator>Erzbir</dc:creator><category>Productivity</category><pubDate>Sun, 14 Jun 2026 15:43:07 GMT</pubDate></item><item><title><![CDATA[怪物猎人冰原 前線拠点 セリエナのテーマ 曲谱分享]]></title><link>https://erzbir.com/archives/monster-hunter-world-iceborne-seliana-sheet-music</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E6%80%AA%E7%89%A9%E7%8C%8E%E4%BA%BA%E5%86%B0%E5%8E%9F%20%E5%89%8D%E7%B7%9A%E6%8B%A0%E7%82%B9%20%E3%82%BB%E3%83%AA%E3%82%A8%E3%83%8A%E3%81%AE%E3%83%86%E3%83%BC%E3%83%9E%20%E6%9B%B2%E8%B0%B1%E5%88%86%E4%BA%AB&amp;url=/archives/monster-hunter-world-iceborne-seliana-sheet-music" width="1" height="1" alt="" style="opacity:0;">曲名为: 前線拠点 セリエナのテーマ, 也叫 Theme of Seliana. 曲子分为两部分: 白天, 夜晚 所有主旋律部分, 包括钢琴前奏, 哨笛, 风笛, 和提琴等都扒了. 前半段是白天, 后半段是夜晚, 夜晚的部分还在调整中 这个谱是给 D Flute 扒的, 笛子部分原调是 ♭♭♭♭♭,]]></description><guid isPermaLink="false">/archives/monster-hunter-world-iceborne-seliana-sheet-music</guid><dc:creator>Erzbir</dc:creator><category>Music</category><pubDate>Fri, 13 Feb 2026 12:55:05 GMT</pubDate></item><item><title><![CDATA[Leaving Brittany and  The Pernod Waltz 曲谱分享]]></title><link>https://erzbir.com/archives/leaving-brittany-and-the-pernod-waltz-sheet-music</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=Leaving%20Brittany%20and%20%20The%20Pernod%20Waltz%20%E6%9B%B2%E8%B0%B1%E5%88%86%E4%BA%AB&amp;url=/archives/leaving-brittany-and-the-pernod-waltz-sheet-music" width="1" height="1" alt="" style="opacity:0;">最近扒了一首鸽了非常久的曲子 Leaving Brittany and The Pernod Waltz. 这首曲子由两首华尔兹舞曲组成: Leaving Brittany 和 The Pernod 我扒的这个版本是由 Brian Finnegan 用 Eb 哨笛演的, 音源来自其专辑 Toward]]></description><guid isPermaLink="false">/archives/leaving-brittany-and-the-pernod-waltz-sheet-music</guid><dc:creator>Erzbir</dc:creator><category>Music</category><pubDate>Tue, 27 Jan 2026 15:22:04 GMT</pubDate></item><item><title><![CDATA[游戏开发学习-01-搭建项目]]></title><link>https://erzbir.com/archives/game-dev-learning-01-project-setup</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0-01-%E6%90%AD%E5%BB%BA%E9%A1%B9%E7%9B%AE&amp;url=/archives/game-dev-learning-01-project-setup" width="1" height="1" alt="" style="opacity:0;">最近想学游戏开发... 说起来很早以前就想做游戏的, 但是误入歧途了(也许吧). 最近利用空余时间尝试写一下游戏, 目标是先做一个 demo, 熟悉之后再设计一个自己的游戏 技术栈与工具链 此前没有接触过游戏开发, 只在大学的时候学过一点点 OpenGL. 我打算从较为原始的方式开始, 先不用游戏引]]></description><guid isPermaLink="false">/archives/game-dev-learning-01-project-setup</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Mon, 26 Jan 2026 17:34:42 GMT</pubDate></item><item><title><![CDATA[侵入式链表实现]]></title><link>https://erzbir.com/archives/Intrusive-linked-list-implement</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E4%BE%B5%E5%85%A5%E5%BC%8F%E9%93%BE%E8%A1%A8%E5%AE%9E%E7%8E%B0&amp;url=/archives/Intrusive-linked-list-implement" width="1" height="1" alt="" style="opacity:0;">这是 Linux 内核中使用的一种链表. 通过将链表节点插入到结构体当中, 来让结构体获得链表的能力 比如下面这个结构体: struct ipaddr { char address[45]; } 假设有一个链表节点: struct list { struct list *next;]]></description><guid isPermaLink="false">/archives/Intrusive-linked-list-implement</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Sun, 28 Dec 2025 08:28:41 GMT</pubDate></item><item><title><![CDATA[MacOS 全键盘控制方案]]></title><link>https://erzbir.com/archives/macos-full-keyboard-control</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=MacOS%20%E5%85%A8%E9%94%AE%E7%9B%98%E6%8E%A7%E5%88%B6%E6%96%B9%E6%A1%88&amp;url=/archives/macos-full-keyboard-control" width="1" height="1" alt="" style="opacity:0;">由于使用触摸板的时候, 我喜欢用中指重按, 高强度使用下来, 目前手已经发炎, 并且现在握鼠标也很痛. 由于平时都是使用 Mac, 就想在 Mac 上配置一套脱离鼠标的方案, 不过我是高强度指针用户, 快捷键用得极少, 正在摸索中 窗口平铺 窗口平铺或许不是非必须的, 主要看工作类型 使用的方案是]]></description><guid isPermaLink="false">/archives/macos-full-keyboard-control</guid><dc:creator>Erzbir</dc:creator><category>Productivity</category><pubDate>Fri, 5 Dec 2025 13:01:52 GMT</pubDate></item><item><title><![CDATA[通过 Hook 添加 Dialect 访问 Halo HTML Template]]></title><link>https://erzbir.com/archives/hook-halo-to-add-dialect-access-html-template-zh</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E9%80%9A%E8%BF%87%20Hook%20%E6%B7%BB%E5%8A%A0%20Dialect%20%E8%AE%BF%E9%97%AE%20Halo%20HTML%20Template&amp;url=/archives/hook-halo-to-add-dialect-access-html-template-zh" width="1" height="1" alt="" style="opacity:0;">在开发插件的时候想获取到整个 HTML 页面, 发现只能用 AdditionalWebFilter, 这已经进入了响应阶段. 我想在更早的时候比如渲染页面的时候获取整个 HTML 页面, 但 Halo 没有开放这样的接口 虽然我不懂 Spring 和 Thymeleaf, 通过不断看代码和不断调试,]]></description><guid isPermaLink="false">/archives/hook-halo-to-add-dialect-access-html-template-zh</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Sat, 15 Nov 2025 19:50:00 GMT</pubDate></item><item><title><![CDATA[Injecting a Custom Dialect into Halo to Access HTML Templates]]></title><link>https://erzbir.com/archives/hook-halo-to-add-dialect-access-html-template</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=Injecting%20a%20Custom%20Dialect%20into%20Halo%20to%20Access%20HTML%20Templates&amp;url=/archives/hook-halo-to-add-dialect-access-html-template" width="1" height="1" alt="" style="opacity:0;">While developing a plugin, I wanted to obtain the entire HTML page, but found that the only available option was AdditionalWebFilter, by which point p]]></description><guid isPermaLink="false">/archives/hook-halo-to-add-dialect-access-html-template</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Sat, 15 Nov 2025 19:20:25 GMT</pubDate></item><item><title><![CDATA[使用符号链接实现 Halo 主题的热更新]]></title><link>https://erzbir.com/archives/symlink-halo-theme-hot-reload</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E4%BD%BF%E7%94%A8%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E5%AE%9E%E7%8E%B0%20Halo%20%E4%B8%BB%E9%A2%98%E7%9A%84%E7%83%AD%E6%9B%B4%E6%96%B0&amp;url=/archives/symlink-halo-theme-hot-reload" width="1" height="1" alt="" style="opacity:0;">介绍 在开发插件的时候有 Devtools 可以很方便的调试和重载插件, 但是找了一下之后没发现主题有类似的开发工具, 每次更新了代码都需要把新的主题重新上传安装再测试. 虽然可以用 Vite 启动开发服务器, 不过我想更偷懒一点, 而且也不想引入其他依赖和过多代码 可以用符号连接的方式实现热更新]]></description><guid isPermaLink="false">/archives/symlink-halo-theme-hot-reload</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Fri, 14 Nov 2025 16:40:46 GMT</pubDate></item><item><title><![CDATA[博客优化 (折腾) 记录]]></title><link>https://erzbir.com/archives/blog-optimization-log</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E5%8D%9A%E5%AE%A2%E4%BC%98%E5%8C%96%20%28%E6%8A%98%E8%85%BE%29%20%E8%AE%B0%E5%BD%95&amp;url=/archives/blog-optimization-log" width="1" height="1" alt="" style="opacity:0;">虽然什么也没写 (很多东西都懒得写), 但是还是喜欢折腾这个博客...... 最开始使用的是静态博客 Hexo, 主题使用的是 Fluid, 那时直接挂在 GitHub 进行托管. Github Pages 非常适合静态博客, 但问题是稍微慢了一点并且非常不方便使用, 页不好扩展 从创建博客以来没事]]></description><guid isPermaLink="false">/archives/blog-optimization-log</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Thu, 7 Aug 2025 16:08:59 GMT</pubDate></item><item><title><![CDATA[从最短的 HelloWorld 到 ShellCode]]></title><link>https://erzbir.com/archives/form-shortest-helloworld-to-shellcode</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E4%BB%8E%E6%9C%80%E7%9F%AD%E7%9A%84%20HelloWorld%20%E5%88%B0%20ShellCode&amp;url=/archives/form-shortest-helloworld-to-shellcode" width="1" height="1" alt="" style="opacity:0;">环境为 Linux x86_64 如果用 C 语言打印 hello world 会是这样: #include &lt;stdio.h&gt; int main() { printf("hello world\n"); return 0; } 将他编译后用 strace 跟踪就会发现调用了非常]]></description><guid isPermaLink="false">/archives/form-shortest-helloworld-to-shellcode</guid><dc:creator>Erzbir</dc:creator><category>Binary</category><pubDate>Tue, 5 Aug 2025 14:17:20 GMT</pubDate></item><item><title><![CDATA[Halo 主题适配 PJAX 的问题]]></title><link>https://erzbir.com/archives/halo-theme-pjax-issues</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=Halo%20%E4%B8%BB%E9%A2%98%E9%80%82%E9%85%8D%20PJAX%20%E7%9A%84%E9%97%AE%E9%A2%98&amp;url=/archives/halo-theme-pjax-issues" width="1" height="1" alt="" style="opacity:0;">最近在给 Halo 的主题 Terminal 上 PJAX, 遇到了一些问题 PJAX 是一种 PushState + Ajax 来实现的一种局部刷新技术, 原理是拦截 a 标签, 用 fetch 去访问页面, 将获取到的页面替换进旧的页面 Halo 作为一个传统 CMS, 采用的是服务端渲染的模式]]></description><guid isPermaLink="false">/archives/halo-theme-pjax-issues</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Thu, 31 Jul 2025 01:35:23 GMT</pubDate></item><item><title><![CDATA[Makefile Usage]]></title><link>https://erzbir.com/archives/makefile-usage</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=Makefile%20Usage&amp;url=/archives/makefile-usage" width="1" height="1" alt="" style="opacity:0;">语法 targets: prerequisites command command command prerequisites 是先决条件, 类似依赖 定义 target hello: echo "Hello, World" 运行 make 后执行 echo 可以在 : 后写这个 tar]]></description><guid isPermaLink="false">/archives/makefile-usage</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Fri, 18 Jul 2025 03:24:08 GMT</pubDate></item><item><title><![CDATA[使用 Java 写一个简易插件框架]]></title><link>https://erzbir.com/archives/building-plugin-framework-demo-in-java</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E4%BD%BF%E7%94%A8%20Java%20%E5%86%99%E4%B8%80%E4%B8%AA%E7%AE%80%E6%98%93%E6%8F%92%E4%BB%B6%E6%A1%86%E6%9E%B6&amp;url=/archives/building-plugin-framework-demo-in-java" width="1" height="1" alt="" style="opacity:0;">很久之前折腾的插件框架. 下面介绍一个简易实现 这个 Demo 使用 JDK 21, 用 Java Platform Module System 和 IntelliJ IDEA Build System 构建. 如果用 IDEA 以外的工具打开, 需要自行配置模块. 不用工具的话也可以自己打命令 代]]></description><guid isPermaLink="false">/archives/building-plugin-framework-demo-in-java</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Fri, 25 Apr 2025 19:06:42 GMT</pubDate></item><item><title><![CDATA[Wi-Fi 近源钓鱼实践]]></title><link>https://erzbir.com/archives/evil-twin-wifi-phishing</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=Wi-Fi%20%E8%BF%91%E6%BA%90%E9%92%93%E9%B1%BC%E5%AE%9E%E8%B7%B5&amp;url=/archives/evil-twin-wifi-phishing" width="1" height="1" alt="" style="opacity:0;">Wi-Fi 近源钓鱼实践 本人是得到合法授权的项目, 分享技术仅作学习使用 合法授权在公司做的攻防演练, 比较有趣稍微记一下 使用的设备 这次没有用多少设备, 主要是 Pineapple 和一些网卡等等, 没有全部拍下来 这个 FlipperZero 还是比较有趣的, 专项肯定不如那些特化的产品,]]></description><guid isPermaLink="false">/archives/evil-twin-wifi-phishing</guid><dc:creator>Erzbir</dc:creator><category>Penetration</category><category>Social Engineering</category><pubDate>Thu, 27 Mar 2025 16:12:24 GMT</pubDate></item><item><title><![CDATA[终端的 Raw Mode]]></title><link>https://erzbir.com/archives/terminal-raw-mode</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E7%BB%88%E7%AB%AF%E7%9A%84%20Raw%20Mode&amp;url=/archives/terminal-raw-mode" width="1" height="1" alt="" style="opacity:0;">Raw Mode 在启动 Terminal 时, 默认是以 canonical mode 或者叫 cooked mode 启动的. 这种模式下, 用户按键产生的字符会由终端驱动存入内部缓冲区, 期间可以自动处理 Backspace , Ctrl-C 等特殊字符, 需要等待用户在按下 Enter 后才]]></description><guid isPermaLink="false">/archives/terminal-raw-mode</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Mon, 10 Feb 2025 11:09:00 GMT</pubDate></item><item><title><![CDATA[事件驱动模型实现]]></title><link>https://erzbir.com/archives/event-driver-impl</link><description><![CDATA[<img src="https://erzbir.com/plugins/feed/assets/telemetry.gif?title=%E4%BA%8B%E4%BB%B6%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%AE%9E%E7%8E%B0&amp;url=/archives/event-driver-impl" width="1" height="1" alt="" style="opacity:0;">介绍 事件通过 EventDispatcher 将事件分发到各个 EventChannel 中, 再由 EventProcessor 进行处理 概念 Event 事件 EventQueue 事件队列 EventChannel 事件通道 EventDispatcher 事件分发器 EventHandl]]></description><guid isPermaLink="false">/archives/event-driver-impl</guid><dc:creator>Erzbir</dc:creator><category>Development</category><pubDate>Wed, 21 Feb 2024 19:51:22 GMT</pubDate></item></channel></rss>