最近在奥克尼的布罗德加尔遗址进行的考古工作,挑战了人们对新石器时代建筑追求永久性的假设。考古学家尼克·埃德蒙兹认为,像布罗德加尔这样的遗址是“表演性空间”——通过增加和移除石头不断演变,反映的是创造的*过程*,而非持久的稳定性。 证据表明,这些建筑并非总是深 foundation,并且会经历重建和最终的 deliberate “退役”仪式,例如在公元前 2400 年左右用大规模的牛祭祀封印 10 号建筑。即使是像 27 号建筑这样更稳定的结构,也显示出灰烬、骨骼和腐烂陶器的层层堆积,证明了使用和废弃的循环。 随着发掘的结束和遗址回归农田,人们的关注点转移到想象新石器时代生活的动态和短暂性上。持久的斯滕尼斯石阵,虽然看似永恒,现在被视为连接生者和死者的 portal,突出了个体存在于漫长时光背景下的短暂性。
## 使用 CodeQL 进行 JavaScriptCore 漏洞挖掘:总结
本文详细介绍了使用代码分析工具 CodeQL 探索和发现 JavaScriptCore (JSC) 漏洞的过程。JSC 是 Safari 和其他 macOS 应用程序的 JavaScript 引擎。作者最初对浏览器漏洞利用感到畏惧,但利用 CodeQL 调查了 JSC 的内部结构,并发现了潜在的安全漏洞。
JSC 通过以下阶段执行 JavaScript 代码:词法分析、语法分析,以及通过 LLInt 和 JIT 编译进行解释(编译层级越高,性能越好)。一个关键的关注点是**错误的副作用建模**——JSC 错误地假设某个操作*不会*导致意外后果的情况,这可能导致远程代码执行 (RCE)。
作者开发了一个自定义的 CodeQL 查询来识别这些漏洞,重点关注在应该调用 `clobberWorld`(一个指示潜在副作用的函数)时未调用的操作。这导致重新发现了已修补的漏洞 (CVE-2018-4233),该漏洞与 `InstanceOf` 相关,并识别了 `operationCreateThis` 中的*第二个*漏洞 (CVE-2018-4233),该漏洞曾在 2018 年 Pwn2Own 中被利用。
成功表明 CodeQL 在复杂的漏洞研究中的有效性,但最大的挑战在于深入理解目标代码库——在这种情况下,是 JSC 错综复杂的工作原理。作者强调了有组织的查询开发的重要性,并提供了进一步探索 CodeQL 和 JSC 的资源。
## zmx:终端会话持久化
zmx 是一个轻量级工具,用于持久化终端会话,为 tmux 等功能齐全的终端复用器提供替代方案。它允许您分离并重新连接到 shell 会话,而不会丢失其状态——包括滚动和输出——*仅*关注持久性,并将窗口管理委托给您操作系统的窗口管理器。
**主要特性:**
* **持久性:** 即使断开连接后也能保持 shell 会话的存活。
* **连接/分离:** 无缝重新连接到现有会话。
* **原生特性:** 利用您的终端模拟器的原生滚动和复制/粘贴功能。
* **SSH 集成:** 与 SSH 配合良好,通过 SSH 配置和 autossh 等工具实现持久的远程会话。
* **简单命令:** `zmx attach <name>`, `zmx detach`, `zmx list`, `zmx kill`。
zmx 利用 `libghostty-vt` 来恢复终端状态,确保流畅的重新连接体验。它通过 Unix 套接字进行通信,并将活动记录到 `/tmp/zmx`。目前,配置选项有限,优先考虑可维护性。
项目和源代码地址:[https://github.com/shell-pool/shpool](https://github.com/shell-pool/shpool)