捞女游戏 / 情感反诈模拟器 第三章

随着年龄的增长,我已经不怎么正经玩游戏了,不过由于独立日这段时间有两个星期只有我自己在家, 加上最近在 YouTube 上看到了游戏中第三章男女主酒吧对手戏的片段感觉制作相当不错, 所以在 Steam 上买了一份。

情感反诈模拟器(原名「捞女游戏」)是一款真人互动式影游, 其剧情画面是活的演员预先录制而非即时渲染。 这种形式有点类似于九十年代出现的互动式DVD(DVDi), 不过看起来分支可以比那时复杂许多,甚至可以加入一些业务逻辑。 这个游戏本身看起来是用 Electron 实现的,对代码做了少许混淆(bytenode),在运行过程中大部分时间实际上是在播放影像。 早期版本曾经可以直接在游戏启动器(使用的是明文的 JavaScript)中暴力注入一段启用远程调试的代码, 从而用一个单独的浏览器就可以调试游戏了,后来更新的版本中游戏制作者将入口堵住了🤣。 不过,这个游戏吸引我的并不是它采用的技术,所以关于技术的讨论到此为止。

🚨 警告

以下内容可能包含剧透,并且可能涉及不适合未成年人观看的内容,请仔细斟酌是否要继续阅读。

阅读全文…( 本文约 17242 字,阅读大致需要 35 分钟 )

Postmortem: 关于 xzutil 后门事件的一些事后复盘

说明:这是关于北美时间2024年3月28日披露的 xzutil 后门事件的一些事后复盘。 关于漏洞本身的一些更为详细的背景和细节以及其发现过程, 在 Bryan CantrillAndres Freund 的这次 访谈 中有相当详尽的说明。由于漏洞并非我们发现,在此便不再赘述漏洞本身的细节。

值得庆幸的是,我们有足够的理由认为这次事件中 FreeBSD 并没有受到影响,但这里有相当大的运气的成分, 整体而言,我们的流程并非无懈可击,因此有必要进行一些总结。

背景

自称叫「Jia Tan」的开发者花费了两年的时间逐渐取得了上游社区的信任,并最终成为了 xzutils 的维护者。

攻击者在 2024 年 2 月 23 日在源代码中的一处二进制文件中放置了后门,并随后发布了 xz 5.6.0。 攻击者发布的源代码包中,以巧妙地方式增加了激活后门的脚本。值得注意的是,这些脚本从未进入过 xzutils 的 Git 代码库,因此躲过了包括 FreeBSD 在内的开发者进行的日常代码审计(值得说明的是,由于这些脚本通常是自动生成的, 体积庞大且随 autoconf 等工具的版本变化很大,因此其内容审计难度较大。比较稳妥的做法是从人类易读的 autoconf 文件中重新生成这些脚本)。

由于后门代码最初版本的 bug,攻击者在接下来的两周时间进一步对后门进行了修补以增加其发现的难度。

主要的 Linux 发行版,包括 Debian 和 RedHat,均在其开发版本中跟进了这些变动。 由于 systemd 的插件设计,这些变动导致后门被插入到了这些 Linux 发行版中的 sshd 服务中。 由于后门引入了一系列计算密集的代码,人们逐渐注意到了一些奇怪的性能问题。

最终,PostgreSQL 开发者,就职于微软公司的 Andres Freund 在经过了一段时间的性能追踪之后, 正式确认了 xzutils 后门的存在,并立即通知了主流发行版的安全团队。

我本人也在第一时间收到了通知。当时是太平洋时间的中午,我没有携带解密所需的密钥, 但由于这一讨论相当热烈,加上邮件标题并不加密,因此我大概知道了发生了什么事。

阅读全文…( 本文约 1525 字,阅读大致需要 4 分钟 )

再见, sirius (2010-2025)

| Tribute | #Server | #Homelab | #FreeBSD | #Hardware | #服务器

delphij.net 搬到美国之后,一直是在大河的 FMT-1 的 sirius.delphij.net 上运行的。 这台机器是 iXsystems 组装,于2010年5月20日上线的,采用 Intel Xeon L5630 处理器, Supermicro X8STi 主板,当时配了24GB内存,4块1.5TB硬盘,后将硬盘替换成了3块2TB+ 1个SSD。

阅读全文…( 本文约 279 字,阅读大致需要 1 分钟 )

购买二手硬件的一些人生经验

以往我是不直接在 eBay 上购买二手硬件(这不包括美国比较常见的「翻新refurbished」硬件, 这类卖家往往是比较专业的回收处理机构)的,原因是购买此类硬件多少有点像拆盲盒: 二手硬件的质量往往缺乏统一且一致的标准,并且通常只提供较短的退货窗口。

不过 上回书 说到我收了一台二手的 Dell R640 服务器,既然选择了消费降级索性一降到底试试看买二手内存和存储。

阅读全文…( 本文约 1668 字,阅读大致需要 4 分钟 )

Debrand Dell Vxrail E560

| Hardware | #Dell | #R640 | #E560 | #Vxrail | #Server | #Firmware | #iDRAC | #DIY

最近从张师傅那里获得了一台来自政府换新时拍卖的二手 Dell VxRail E560, 这是 Dell/EMC 「超融合」概念的机器,实际硬件和 Dell PowerEdge R640 是一样的。

由于我并不需要使用 VxRail E560 系列增加的一系列 VMWare 功能, 将其变回 PowerEdge R640 可以让管理员获得更多的对于固件的控制。 这里记录一下过程。

阅读全文…( 本文约 231 字,阅读大致需要 1 分钟 )

C++ 中的 main 定义

| Development | #C++ | #C | #Programming | #Linkage | #GCC | #LLVM

新的 C++ 标准中 不允许给 main 指定 linkage-specification 了。

当然,考虑到原本 main() 也是 C 运行环境在开始运行程序的时候调用的, 而 C 运行环境自然也预期 C linkage,即不按照 C++ 的习惯对符号根据参数增加名字前缀, 因此大部分编译器在遇到 C++ 程序定义全局 main() 的时候也会按照习惯采取 C linkage 方式去翻译。这一规则首先被 GCC 采纳,随后 LLVM 也跟进了。

阅读全文…( 本文约 389 字,阅读大致需要 1 分钟 )

【公告】关于 woodpecker.org.cn 网站已经停止维护的说明

转载自 khsing 今天在 python-cn 发表的公告。

我本人早年也曾经参与过啄木鸟社区的维护,在此特别声明,我与现在的这个 woodpecker.org.cn 没有任何关系。

除此之外,本人之前在啄木鸟社区发表的内容采用的是 CC BY-NC-SA 1.0 许可,从未授权商业使用, 本人保留在法律许可范围内向目前域名的所有者,以及在美国境内为其提供网络服务的供应商进行追索的权力。

阅读全文…( 本文约 539 字,阅读大致需要 2 分钟 )

新的 arc4random_uniform 实现

本月初, Robert Clausecker 替换了 FreeBSD 的 arc4random_uniform(3)

arc4random_uniform(3)arc4random(3) 之上封装的一个生成一个较小范围伪随机数的函数。 arc4random(3) 采用密码学安全的伪随机数生成一个在 32-bit 范围,即 [0, 2321][0,\ 2^{32}-1] 内均匀分布的伪随机整数, 此处的随机分布是依靠对称加密算法(目前采用的是 Chacha20)中用于实现加密的伪随机置换(Pseudorandom Permutation)来保证的。

阅读全文…( 本文约 3381 字,阅读大致需要 7 分钟 )

数据的长期保存

我们每个人每天都在产生各种数据。包括个人笔记、照片等等在内的许多数据, 许多可能不太容易再次获得或制造。今年夏天,我整理了一些自己二十年前刻录的光盘, 这里记录一下长期保存数据的一些原则、需要避免的陷阱,以及确保数据在数十年后仍然可用的最佳实践。

阅读全文…( 本文约 1582 字,阅读大致需要 4 分钟 )

统计

| Shared Chaos | #Statistics | #Humor | #Quote | #统计 | #段子

统计,是让不同的专家能够从同样的数据中总结出截然相反结论的不二法门。

在这里也发一遍免得哪天 X上发表的原版 没了。

参与评论