关于我

Bennett#

你好,我是 Bennett。

一个经常写工具、研究软件内部实现,然后产生一堆Bug的入。

主要使用 C#、Rust、C++ 和 Python,偶尔也会接触 Go、JavaScript,以及其他因为项目需要而被迫学习的东西。

我原本以为学会更多编程语言就能解决更多问题。

现在好了,报错信息也会说更多语言了。

兴趣比较杂,包括但不限于:

  • 软件开发:桌面应用、跨平台工具、后端服务,以及一些开发到一半突然发现根本没必要存在的项目。来都来了,写完吧。
  • 逆向工程:二进制分析、调试、兼容性研究。通常从“这玩意怎么实现的”开始,到“这玩意居然真的能运行?”结束。
  • 音游:maimai、CHUNITHM、Arcaea、vivid/stasis、Phigros 等。打歌时追求精度,写音游工具时也追求精度。区别在于后者掉一个字节真的可能会死人。(应该不会。)(其实并非。)
  • 系统与硬件:Windows、Linux、macOS、Android。包括给不应该运行某个系统的设备安装某个系统,然后花三天研究它为什么不运行。

我喜欢研究那些不太符合预期的行为。

比如程序为什么崩溃、驱动为什么不工作、明明什么都没改为什么昨天还能编译。

当然,很多时候最后发现问题出在自己写的代码上。

哈哈。

不好笑。

一些项目#

  • KuroakiGimmick:vivid/stasis 谱面特效编辑与预览工具,涉及 C#、Rust 和 SDL3。这一开始不只是个ast网页还原吗。?
  • ScyllaX:基于 x64dbg / x32dbg 插件桥接的 PE Dump 与导入表重建工具。既然程序不愿意主动解释,那就只能采取一些比较直接的沟通方式了。

其他项目、实验性代码,以及一些可能已经被我遗忘的东西,可以在 GitHub 上找到。

部分仓库可能长期没有更新。

请不要直接认定它们已经死了。

也有可能只是开发者还在思考怎么把它们救活。

虽然从 Git 提交记录来看,两者通常没有区别。

关于这个博客#

这里主要存放我的技术笔记、开发记录、问题排查过程,以及一些音游相关内容。

写博客主要是为了防止以下情况再次发生:

  1. 遇到一个 Bug。
  2. 花六个小时修好了。
  3. 三个月后再次遇到。
  4. 完全不记得当初怎么修的。
  5. Bing 搜索。
  6. 搜到了三个月前自己发的求助帖。
  7. 底下只有一句“已解决”。
  8. 我操。

所以这里不保证所有文章都是完整教程。有些只是当时解决某个问题时留下的记录,也可能包含已经过时的实现和结论。

如果一篇文章出现了很多次“理论上应该可以”,那么它大概率就是字面意思。

理论上。

至于实际上……

你看,理论物理学家也不能保证每次实验都成功,对吧?

内容会根据实际情况更新。发现错误的话,我会尽量修正。

如果某篇教程把你的系统搞到无法启动,请先确认你有没有跳过什么步骤。

如果没有,那我们可能发现了一个新的问题。

恭喜。

链接#

Inverted World#

这是我的个人博客,使用 Astro 和 Firefly 构建。

主要用于整理技术资料、记录开发过程,以及保存一些不想让它们消失在聊天记录和终端历史里的东西。

也有可能单纯发癫。

至于为什么叫 Inverted World……

只是喜欢这个名字而已。

你不会真的以为每个博客名字背后都有一套复杂的世界观、哲学隐喻和长达三页的命名设计文档吧?

……虽然我确实考虑过。

不过比起研究博客名字的含义,现在更严重的问题是:

bur我只是想写一篇 Markdown,最后却开始调试 CSS?

沙溢似。?

当前页面没有目录

文章目录

当前页面没有目录