关于我
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 提交记录来看,两者通常没有区别。
关于这个博客
这里主要存放我的技术笔记、开发记录、问题排查过程,以及一些音游相关内容。
写博客主要是为了防止以下情况再次发生:
- 遇到一个 Bug。
- 花六个小时修好了。
- 三个月后再次遇到。
- 完全不记得当初怎么修的。
- Bing 搜索。
- 搜到了三个月前自己发的求助帖。
- 底下只有一句“已解决”。
- 我操。
所以这里不保证所有文章都是完整教程。有些只是当时解决某个问题时留下的记录,也可能包含已经过时的实现和结论。
如果一篇文章出现了很多次“理论上应该可以”,那么它大概率就是字面意思。
理论上。
至于实际上……
你看,理论物理学家也不能保证每次实验都成功,对吧?
内容会根据实际情况更新。发现错误的话,我会尽量修正。
如果某篇教程把你的系统搞到无法启动,请先确认你有没有跳过什么步骤。
如果没有,那我们可能发现了一个新的问题。
恭喜。
链接
Inverted World
这是我的个人博客,使用 Astro 和 Firefly 构建。
主要用于整理技术资料、记录开发过程,以及保存一些不想让它们消失在聊天记录和终端历史里的东西。
也有可能单纯发癫。
至于为什么叫 Inverted World……
只是喜欢这个名字而已。
你不会真的以为每个博客名字背后都有一套复杂的世界观、哲学隐喻和长达三页的命名设计文档吧?
……虽然我确实考虑过。
不过比起研究博客名字的含义,现在更严重的问题是:
bur我只是想写一篇 Markdown,最后却开始调试 CSS?
沙溢似。?
Inverted World