2025-12-20

19 篇热帖

TikTok Deal Is the Shittiest Possible Outcome, Making Everything Worse

特朗普政府批准 TikTok 出售协议:结果更糟

摘要:

特朗普政府已批准 TikTok 的出售协议,将 TikTok 的大部分所有权转让给包括 Larry Ellison(一位右翼特朗普盟友)、私募股权公司 Silver Lake 和阿布扎比国家投资公司 MGX 在内的实体。尽管如此,中国公司 ByteDance 仍然保留了 19.9% 的股份,这意味着协议并未完全切断 TikTok 与中国的联系。

关键点:

  • 所有权结构: 新的运营模式将由 Oracle、Silver Lake 和 MGX 作为三位“管理投资者”共同拥有 45% 的股份,另有 5% 由其他投资者持有,30.1% 由 ByteDance 的关联方持有,剩余 19.9% 由 ByteDance 自身持有。
  • 算法和数据保护: 协议声称会重新训练内容推荐算法,以避免外部操纵,并由 Oracle 负责数据保护。然而,考虑到参与方(包括 Oracle 及其创始人 Ellison)的过往记录,这些承诺的可靠性受到质疑。值得注意的是,Oracle 已经从 Biden 政府时期开始就参与 TikTok 的算法审查和数据保护工作。
  • 政治背景: 协议的达成,部分是由于美国科技公司未能有效竞争 TikTok,从而促使特朗普政府寻求干预。民主党和共和党在选举期间曾就禁止 TikTok 并要求剥离所有权达成共识,但最终的结果却将 TikTok 的一部分所有权转移给了特朗普的盟友,同时保留了与中国的联系。
  • 根本问题: 文章认为,如果美国政府真的关注隐私、宣传和国家安全,应该制定更广泛的互联网隐私法,促进媒体多元化,支持媒体素养教育,而不是针对 TikTok 采取有选择性的措施。
  • 最终结果: 这项协议被认为是一个“自作孽”,不仅没有解决最初提出的问题,反而让情况变得更糟,并暴露了美国在处理科技问题上的短视和虚伪。

特朗普政府批准 TikTok 出售协议:结果更糟

摘要:

特朗普政府已批准 TikTok 的出售协议,将 TikTok 的大部分所有权转让给包括 Larry Ellison(一位右翼特朗普盟友)、私募股权公司 Silver Lake 和阿布扎比国家投资公司 MGX 在内的实体。尽管如此,中国公司 ByteDance 仍然保留了 19.9% 的股份,这意味着协议并未完全切断 TikTok 与中国的联系。

关键点:

  • 所有权结构: 新的运营模式将由 Oracle、Silver Lake 和 MGX 作为三位“管理投资者”共同拥有 45% 的股份,另有 5% 由其他投资者持有,30.1% 由 ByteDance 的关联方持有,剩余 19.9% 由 ByteDance 自身持有。
  • 算法和数据保护: 协议声称会重新训练内容推荐算法,以避免外部操纵,并由 Oracle 负责数据保护。然而,考虑到参与方(包括 Oracle 及其创始人 Ellison)的过往记录,这些承诺的可靠性受到质疑。值得注意的是,Oracle 已经从 Biden 政府时期开始就参与 TikTok 的算法审查和数据保护工作。
  • 政治背景: 协议的达成,部分是由于美国科技公司未能有效竞争 TikTok,从而促使特朗普政府寻求干预。民主党和共和党在选举期间曾就禁止 TikTok 并要求剥离所有权达成共识,但最终的结果却将 TikTok 的一部分所有权转移给了特朗普的盟友,同时保留了与中国的联系。
  • 根本问题: 文章认为,如果美国政府真的关注隐私、宣传和国家安全,应该制定更广泛的互联网隐私法,促进媒体多元化,支持媒体素养教育,而不是针对 TikTok 采取有选择性的措施。
  • 最终结果: 这项协议被认为是一个“自作孽”,不仅没有解决最初提出的问题,反而让情况变得更糟,并暴露了美国在处理科技问题上的短视和虚伪。
You can now play Grand Theft Auto Vice City in the browser

reVC 在浏览器中运行:技术演示总结

这是一个关于使用 reVC(经典 GTA 引擎的开源实现)在浏览器中运行的演示项目,发布在 DOS.Zone 上。 以下是该项目的核心要点:

项目概述:

  • 目标: 演示在现代网络环境中运行复杂游戏引擎的技术可行性。
  • 实现: reVC 引擎被完全重构并适配,可以在浏览器中直接运行,无需本地安装。
  • 技术栈: 利用 WebAssembly 和现代浏览器 API,对底层系统(渲染、输入处理、音频、文件访问)进行了重新设计,以实现稳定性能。
  • 体验: 用户可以在 DOS.Zone 上探索该演示,体验经典 GTA 引擎的行为。

重要声明与版权合规:

  • 非官方项目: 这是一个独立的、非商业的技术演示,与 Grand Theft Auto 系列的原始开发者、出版商或版权所有者没有任何关联、认可或赞助。
  • 不包含游戏资源: 该演示不包含或分发原始游戏资源。用户需要合法拥有并提供自己的原始游戏资源才能体验完整版本。
  • 教育和研究目的: 该演示仅用于教育和研究目的,旨在展示现代 Web 浏览器和引擎的功能。
  • 版权尊重: 项目严格遵守版权法,尊重所有版权所有者的知识产权。
  • 开源代码: 提供的软件组件(WebAssembly 可执行文件)是基于公开可用的开源代码(包括 GitHub 上的 re3 / reVC 项目)构建,并符合其各自许可条款。
  • 有限资源: 演示版本仅使用少量且不完整的资源,这些资源来自合法来源,并且技术上仅限于在 DOS.Zone 域名内运行。 不允许公开索引、直接列出或无限制访问这些资源。
  • 校验机制: 允许用户通过加密校验(SHA-256)验证其合法拥有的原始游戏资源,但项目本身不提供、托管或促进完整原始游戏数据的分发。
  • 联系方式: 版权所有者或其授权代表如果认为该项目中的材料侵犯了其权利,可以通过电子邮件联系项目团队。

总结:

该项目展示了通过 WebAssembly 和现代浏览器 API,将经典 GTA 引擎 reVC 成功移植到浏览器环境中的技术能力。 重要的是,该项目强调了版权合规性,严格控制了游戏资源的访问,并明确声明其非商业、教育研究性质。

CSS Grid Lanes

CSS Grid Lanes 简介

本文介绍了 CSS Grid Lanes,一种新的布局方式,旨在简化响应式砌墙式布局的实现。它在 Mozilla 的早期工作、Apple WebKit 团队的多年开发以及 CSS 工作组的广泛讨论后正式推出。

核心概念:

  • display: grid-lanes: 将容器设置为 Grid Lanes 容器。
  • grid-template-columns: 定义“车道”,使用与 CSS Grid 相同的强大功能,例如 repeat(auto-fill, minmax(250px, 1fr)),浏览器会自动决定列数并填充可用空间。
  • gap: 定义车道之间的间距 (水平和垂直)。

工作原理:

Grid Lanes 的布局类似于高速公路上的车辆。每个项目都像一辆车,浏览器会决定将每个项目放置在哪个车道中,以使其尽可能靠近页面顶部。类似于经典 Masonry 库,项目会“变道”以找到最佳位置。

主要特性和优势:

  • 灵活性: 仅需三行 CSS 代码即可创建灵活的布局,适用于所有屏幕尺寸,无需媒体查询或容器查询。
  • 强大的 Grid 功能: 利用 grid-template-* 语法,实现各种设计变体,例如交替的窄宽列。
  • 跨车道: 支持跨越多个车道显示项目。
  • 精确的项目放置: 可以显式地放置项目,例如将标题固定在最后一列。
  • 方向切换: 支持水平 (默认,类似瀑布流) 和垂直 (“砖墙”) 布局。通过定义 grid-template-rowsgrid-template-columns 来切换方向。
  • 位置容忍度 (item-tolerance): 允许调整布局算法对项目大小差异的敏感度。较高的值会减少项目位置的调整,使布局更加稳定。

示例代码:

  • 基础布局:

    .container {
      display: grid-lanes;
      grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
      gap: 16px;
    }
    
  • 交替窄宽列:

    grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr) minmax(16rem, 2fr)) minmax(8rem, 1fr);
    
  • 新闻文章布局(跨列示例):

    main {
      display: grid-lanes;
      grid-template-columns: repeat(auto-fill, minmax(20ch, 1fr));
      gap: 2lh;
    }
    article { 
      grid-column: span 1; 
    }
    @media (1250px < width) {
      article:nth-child(1) { 
        grid-column: span 4;             
      }
      article:nth-child(2), article:nth-child(3), article:nth-child(4), article:nth-child(5), article:nth-child(6), article:nth-child(7), article:nth-child(8) { 
        grid-column: span 2; 
      }
    }
    

当前状态:

Grid Lanes 现已在 Safari Technology Preview 234 中可用,并即将成为 Web 标准。CSS 工作组仍在讨论一些细节,例如 item-tolerance 的最终名称。

总结:

CSS Grid Lanes 是一种强大的新布局工具,它简化了响应式砌墙式布局的创建,并提供了各种自定义选项。 开发者可以尝试在 Safari Technology Preview 中使用它,并提供反馈和建议。

LLM Year in Review

2025 年大型语言模型 (LLM) 的显著变化总结

以下是对 2025 年大型语言模型 (LLM) 领域中,作者认为值得关注且略有意外的“范式转变”的总结。

1. 基于可验证奖励的强化学习 (RLVR):

传统的 LLM 训练流程包括预训练、监督微调和强化学习人类反馈 (RLHF)。 2025 年,基于可验证奖励的强化学习 (RLVR) 成为新的主要阶段。通过在数学和代码等环境中与自动可验证奖励进行训练,LLM 能够自发地发展出类似“推理”的策略,将问题分解为中间计算步骤,并学习来回尝试以解决问题的策略。RLVR 训练时间更长,并且引入了新的“思考时间”参数,可以控制性能。OpenAI o3 (2025 年初) 的发布标志着这一转变的关键时刻。

2. 幽灵与动物 / 锯齿状智能:

LLM 的智能不再是像“进化动物”那样呈现,而是更像“召唤的幽灵”。由于训练数据、算法和优化方式的不同,LLM 呈现出一种与动物智能不同的特性。LLM 在可验证领域表现出“锯齿状”的性能,既可以是博学多才的学者,又可能像一个困惑的小学生,容易被简单的攻击手段欺骗。 传统的基准测试由于容易受到 RLVR 的影响,其有效性受到质疑。

3. 光标 / 新型 LLM 应用层:

Cursor 的迅速发展表明了 LLM 应用出现了一个新的层级。LLM 应用,例如 Cursor,负责上下文工程,协调多个 LLM 调用,提供特定于应用程序的用户界面,并提供“自主性滑块”。LLM 实验室可能会专注于培养通用的“大学生”水平的 LLM,而 LLM 应用将组织和微调这些 LLM,并将其应用于特定领域。

4. Claude Code / 运行在您电脑上的 AI:

Anthropic 的 Claude Code (CC) 是第一个令人信服的 LLM Agent 示例,它能够通过工具使用和推理来解决复杂问题。CC 的独特之处在于它运行在用户的本地计算机上,并访问用户的私有环境和数据。 这种本地运行的方式,强调的是已启动、配置好的计算机环境,而不是云端部署。

5. 氛围编码 (Vibe Coding):

2025 年见证了 AI 的能力达到一个新的阈值,人们可以用英语构建各种复杂的程序,而无需深入了解代码。这种“氛围编码”使得编程不再仅限于专业人士,而是每个人都可以参与。它也让专业人士能够编写更多通常不会被编写的软件。

6. Nano Banana / LLM 图形用户界面 (GUI):

Google Gemini Nano banana 是 2025 年一个具有里程碑意义的模型。LLM 被视为一种新的计算范式,类似于 70 年代和 80 年代的个人电脑。与传统的文本输入方式不同,LLM 应该以图像、信息图表、动画等更直观的方式与用户交互。Nano banana 是 LLM GUI 的早期尝试,它将文本生成、图像生成和世界知识结合在一起。

总结:

2025 年 LLM 领域取得了显著进展,LLM 展现出令人惊讶的能力,既强大又存在缺陷。 尽管如此,LLM 的潜力尚未完全发挥,未来充满机遇。

TP-Link Tapo C200: Hardcoded Keys, Buffer Overflows and Privacy

TP-Link Tapo C200 相反工程分析:发现和利用安全漏洞 (TP-Link Tapo C200 Reverse Engineering Analysis: Discovering and Exploiting Security Vulnerabilities)

这篇文章记录了作者对 TP-Link Tapo C200 IP 摄像头进行反向工程分析的过程,使用人工智能辅助,并最终发现了一些安全漏洞。作者建议初学者从购买廉价 IP 摄像头开始进行相反工程学习,因为这类设备提供了固件、网络协议和移动应用等多个研究方向。

主要发现和漏洞:

  • 固件获取与解密: 作者通过对 Tapo Android 应用进行简单反向工程,发现 TP-Link 将所有设备的固件镜像存储在一个公开的 S3 存储桶中,无需身份验证。作者使用 tp-link-decrypt 工具解密固件,该工具利用 TP-Link 自身发布的 GPL 代码中的 RSA 密钥。
  • 漏洞 1: 预身份验证 ONVIF SOAP XML 解析器内存溢出 (CVE-2025-8065): ONVIF 服务在解析 SOAP XML 请求时存在内存溢出漏洞。攻击者可以通过发送大量 XML 元素来触发摄像头崩溃。
  • 漏洞 2: 预身份验证 HTTPS Content-Length 整数溢出 (CVE-2025-14299): HTTPS 服务器在解析 Content-Length 头时存在整数溢出漏洞。攻击者可以通过发送超出整数范围的 Content-Length 值来触发摄像头崩溃。
  • 漏洞 3: 预身份验证 WiFi 劫持 (CVE-2025-14300): connectAp API 允许在没有身份验证的情况下配置 WiFi 连接。攻击者可以强制摄像头连接到攻击者控制的网络,从而进行中间人攻击并拦截视频流量。
  • 漏洞 4: 预身份验证附近 WiFi 网络扫描: scanApList API 允许攻击者扫描摄像头可见的 WiFi 网络,获取 SSIDs、BSSIDs 和信号强度等信息。结合 Apple 的位置服务 API,可以推断出摄像头的物理位置。

使用工具:

  • JD-GUI: 反编译 Android 应用。
  • AWS CLI: 下载固件镜像。
  • binwalk: 固件检查。
  • Grok: AI 辅助的先验研究。
  • tp-link-decrypt: 解密固件镜像。
  • Ghidra: 编译和理解 MIPS 二进制文件。
  • GhidraMCP: AI 连接到 Ghidra 实例。
  • Cline: AI 辅助的固件文件系统探索。
  • Anthropic's Opus and Sonnet 4: 用于代码分析和解释。

作者的反向工程流程:

  1. 固件获取与解密: 获取固件并解密。
  2. 文件系统探索: 使用 AI 和 Cline 探索文件系统,寻找感兴趣的组件。
  3. 代码分析: 使用 Ghidra 和 AI 分析 MIPS 二进制文件,理解代码逻辑和潜在漏洞。
  4. 漏洞利用: 编写 PoC 脚本验证漏洞的可利用性。

披露过程:

作者遵循 90+30 天的负责任披露流程,但 TP-Link 迟迟未发布补丁,最终在披露时间超过 150 天后公开发布。

利益冲突:

作者指出,TP-Link 成为 CVE 编号机构 (CNA) 存在利益冲突,因为他们能够控制漏洞报告流程,并利用 CVE 数量作为营销指标。

总结:

这篇文章展示了利用人工智能辅助进行 IP 摄像头固件分析的有效性,并揭示了 TP-Link Tapo C200 摄像头中存在的多个安全漏洞,提醒用户注意这些风险。作者也强调了负责任披露的重要性,并对 TP-Link 的行为表示担忧。

Airbus to migrate critical apps to a sovereign Euro cloud

空中客车寻求数字主权云服务,面临挑战

摘要:

空中客车公司 (Airbus) 正在准备发布一份招标书,旨在将关键业务工作负载迁移至数字主权的欧洲云服务。该项目预计耗资超过 5000 万欧元,合同期限可达十年,并且需要价格可预测性。然而,空中客车公司预计找到合适的供应商的概率仅为 80/20。

关键要点:

  • 迁移目标: 空中客车希望将ERP、制造执行系统、CRM以及飞机设计等关键应用迁移至云端,以支持供应商(如SAP)提供的云创新。
  • 数字主权驱动: 此次迁移的核心驱动力是确保敏感信息(涉及国家和欧洲层面)的安全和控制,避免受到美国法律的影响。 特朗普再次当选美国总统,以及随之而来的贸易和地缘政治波动,进一步加剧了空中客车公司对数字主权的需求。
  • 法律担忧: 空中客车公司担心美国 CLOUD Act 可能会允许美国当局要求其在海外数据中心存储的数据,即便欧洲监管机构尚未明确空中客车公司是否能免受此类法律的约束。
  • 供应商挑战: 尽管微软、亚马逊 (AWS) 和谷歌等公司都推出了旨在解决这些担忧的解决方案,但空中客车公司高管认为,欧洲云服务提供商可能缺乏足够的规模来满足其需求。
  • 国际事件影响: 国际刑事法院检察官 Karim Khan 因特朗普制裁而失去对微软邮箱的访问权限,这进一步凸显了数据主权的潜在风险。
  • 时间紧迫: 招标书将在 1 月初发布,预计夏季前做出决定。
  • SAP 迁移挑战: 空中客车公司高管还表示,大多数欧洲公司可能无法在 2030 年前完成 SAP ECC6 的迁移。

总结:

空中客车公司正积极寻求建立数字主权云环境,以应对日益增长的安全和合规挑战。然而,在供应商规模、法律风险以及时间压力等多重因素的影响下,该项目面临着诸多不确定性。

Wall Street ruined the Roomba and then blamed Lina Khan

iRobot 破产:华尔街、中国和美国技术转移的悲剧

几日前,扫地机器人制造商 iRobot 宣布破产。公司首席执行官,一位品牌和并购专家 Gary Cohen 遗憾地宣布公司已无法继续运营。

董事会,由律师和金融家而非机器人专家组成,投票决定将 iRobot 出售给深圳碧赛机器人(Shenzhen Picea Robotics),这家中国公司也是 iRobot 的生产外包方。目前有 2000 万台 Roomba 扫地机器人在使用中,如果特朗普监管机构或反垄断执法部门不采取行动,我们家庭收集的所有数据都将流向中国。

iRobot 的联合创始人 Colin Angle 并没有对公司破产进行深刻反思,也没有将其置于许多技术被转移到中国的更广泛背景下。相反,他,像华尔街许多人一样,将破产归咎于联邦贸易委员会(FTC)主席 Lina Khan。原因在于,Khan 曾调查过亚马逊(Amazon)可能收购 iRobot 的事宜,最终两家公司于 2022 年叫停了这笔交易。Angle 说道:“我敢肯定,如果询问几乎任何人,在亚马逊交易被阻止之前,他们会更希望看到 iRobot 疯狂创新,推出更多更好的家用机器人,还是看到它在被中国制造商收购的过程中申请破产保护?” 他认为“后者更不可能发生”。

许多华尔街交易商和反垄断执法的反对者也持类似观点。例如,前奥巴马政府首席经济学家 Jason Furman,现在是哈佛大学经济政策实践教授,将其作为一种民粹主义经济问题的例子。他认为阻止并购会导致破坏性的结果和国家安全问题。

iRobot 的衰落,实际上源于更深层次的问题。早在 1990 年,iRobot 作为麻省理工学院的衍生公司成立,由三位机器人、人工智能和人机交互领域的专家创立。1998 年,该公司获得了美国国防高级研究计划局(DARPA)的资助,DARPA 是资助互联网、SIRI(GPS 的前身)等现代便利设施的政府机构。其使命是建造一种先进的机器人,最终被称为 PackBot。PackBot 帮助搜寻 9/11 废墟,并协助美军在伊拉克和阿富汗扫雷。iRobot 的机器人技术也曾登上火星探测器,并在福岛核电站事故中部署,以测量放射性。其 iRobot Seaglider 被用于在 Deepwater Horizon 油井泄漏事故后进行水下探测。

然而,iRobot 现在不再为军方生产任何产品,而是专注于生产扫地机器人。在奥巴马政府时期,该公司出售了其国防业务,将生产转移到海外,并削减了研发投入,这主要是受到华尔街金融家的压力。

一位 iRobot 股东兼高盛(Goldman Sachs)前合伙人,运营对冲基金 Red Mountain Capital 的 Willem Mesdag 发了一封信,要求该公司出售或关闭所有与清洁机器人无关的业务。他要求公司削减研发预算,将多余的资金用于股息,并专注于打造其在自动扫地机器人领域的近乎垄断地位(Mesdag 的信中指出,该公司占据全球 68% 的市场份额)。Mesdag 试图通过代理权争夺来控制公司,指责 iRobot 董事长 Colin Angle 以“令人震惊和滥用的方式”使用股东资金进行研发投资。

一位 iRobot 发言人表示,研发是为了“刺激机器人技术及其相关领域的创新”。Mesdag 认为,这些资金应该用于股票回购,以提高股价。前海军副海军上将 Joe Dyer 在众议院军事委员会的听证会上作证,在离开海军后,Dyer 在一家机器人公司担任运营职务,该公司远不止是一家专注于进口自动清洁工具的消费公司。Dyer 告诉委员会:“我的分析师朋友带我吃午饭时说,‘Joe,你必须让 iRobot 退出国防业务。这正在损害你的股价。’我反驳说‘那 DARPA 和前沿技术的意义呢?国防工业带来的稳定性呢?爱国主义呢?’他的回答是‘Joe,你对资本主义有什么不理解?’”

iRobot 的故事令人悲伤,但也是一个常见的例子。中国已经从美国和欧洲公司那里获得了技术和关键工艺领导地位,涵盖了稀土、电池、化工产品和机器人等各个领域。其驱动因素是美国公司的运营模式侧重于“资产轻”的策略,即专注于资本回报率非常高的业务。

相反,中国政府为了维护和延长

Charles Proxy

Charles 代理软件发布历史总结 (Charles Proxy Release History Summary)

以下是对 Charles 代理软件发布历史的总结,涵盖了从 2005 年到 2023 年的重大更新和修复。

主要发展阶段:

  • 早期版本 (2.0 之前): 侧重于基础代理功能,SSL 支持,以及对不同协议的支持。

  • 版本 2.x: 引入了重要的改进,包括自动 Firefox 代理配置、XML 视图器、Flash Remoting (AMF) 支持,以及端口转发等功能。 持续改进了代理实现和错误处理。

  • 版本 3.x: 是 Charles 的一个重大升级,引入了许多新的功能,包括:

    • 3.0: UI 改进,JSON 和 JSON-RPC 支持,SOAP 支持。
    • 3.1: 改进了 SSL 支持,修复了 Java 1.4 兼容性问题,AMF3 支持。
    • 3.2: UI 大改,支持 FLV 文件类型,AMF 视图改进。
    • 3.3: 实验性 64 位 Windows 支持,新功能和错误修复。
    • 3.4: SSL 支持改进,Mac OS X Yosemite 支持,新功能和错误修复。
    • 3.5: 捆绑 Java 运行时,改进了 SSL 支持,需要新的 SSL CA 证书。
    • 3.6: 引入 HAR 和 SAZ 文件导入功能,增加了 macOS High Sierra 支持,以及 TLS 调试功能。
    • 3.7: 支持 Apple 的 Developer ID 代码签名,ATS 支持 (iOS 9)。
    • 3.8: 支持 Mac OS X Mavericks,新功能和错误修复。
    • 3.9: "Focus" 功能,允许用户隔离主机,减少噪音。
    • 3.10: 改进了 SSL 支持,支持新的 SSL CA 证书安装。
    • 3.11: SSL 和 Websockets 改进,Android SSL 证书安装修复,支持 macOS Sierra。
  • 版本 4.x: 继续改进,引入了新的功能和稳定性提升。

    • 4.0: HTTP 2, IPv6 支持,改进外观和感觉。
    • 4.1: Brotli 压缩支持,新功能和错误修复。
    • 4.2: 重要的 TLS 调试能力,macOS High Sierra 支持,解决了 SSL 相关问题。
    • 4.6: 包括新功能和稳定性改进,修复了 macOS 崩溃问题,更新了 Windows 代码签名。
    • 4.6.x: 持续发布 bug 修复和 Java 11 更新。 Charles 4.6.1 修复了 macOS Dark Mode 支持问题。
    • Charles 5 (Public Beta): 发布了 Charles 5 的公共测试版,专注于 UI 改进和 bug 修复。

重要事件:

  • 2017: 发布了 Charles for iOS 应用。
  • 2021: 确认 Charles 不受 log4j2 漏洞影响。
  • 2018: 发布了 Charles Security Bulletin,针对 Charles 4.2 和 3.12.1 及更早版本中的本地权限提升漏洞。

总体来说,Charles 代理软件经历了持续的迭代和改进,不断增加新的功能、修复 bug、并提升用户体验。 从早期的基础代理功能到现在的 TLS 调试和现代协议支持,Charles 始终致力于为开发者和测试人员提供强大的网络调试工具。

Cursor Acquires Graphite

Graphite 与 Cursor 达成协议:打造 AI 时代下一代开发者工具链

Graphite 宣布已达成最终协议,将加入 Cursor。此次合作旨在结合双方优势,打造适用于 AI 时代的领先代码创建、审查和合并工具。Graphite 将继续作为独立产品运营,并获得更多资源以支持客户加速软件交付。

核心内容:

  • 背景与愿景: Graphite 诞生于对现有代码审查平台的不满,随着 AI 工具的出现,开发瓶颈从代码编写速度转移到代码审查速度。Graphite 的愿景是构建一个集成平台,实现人与 AI 代理的协同代码创建、审查和合并,最终实现“自驾 PR”和迭代流程的融合,在速度和质量之间取得平衡。
  • 选择 Cursor 的原因: Graphite 团队对 Cursor 的团队、愿景和价值观印象深刻。双方在软件开发未来发展方向和人才密度、紧迫性和精益求精等方面高度一致。此次合作并非为了收购,而是为了共同打造端到端的 AI 辅助软件构建平台。
  • 对 Graphite 的影响: Graphite 产品和品牌将保持不变,继续为全球顶级软件公司提供代码审查和合并服务。此次合作将加速 Graphite 与 Cursor 之间的集成,并充分利用 Cursor 在代码模型方面的专业知识,提升 Graphite AI 功能的智能化程度。
  • 未来规划:
    • 继续加强并完善堆叠 PR 和合并队列功能。
    • 开发 Cursor 和 Graphite 之间的无缝集成,连接本地开发、后台代理和拉取请求。
    • 整合 Graphite 的 AI Reviewer 和 Cursor 的 Bugbot,打造更强大的 AI 审查工具。
    • 为更具雄心壮志的产品愿景奠定基础。
  • 感谢: 感谢客户的反馈、投资者和团队的支持。
  • 招聘信息: Graphite 正在纽约和旧金山招聘多名职位,欢迎感兴趣的人士申请。

总结:

此次 Graphite 与 Cursor 的合作标志着软件开发领域的新篇章。双方将共同努力,打造一个更智能、更高效的开发者工具链,适应 AI 时代的快速发展。Graphite 将继续保持独立运营,并受益于 Cursor 的资源和技术,为客户提供更优质的服务。

NTP at NIST Boulder Has Lost Power

NIST Boulder 时间服务中断通知总结 (Summary of NIST Boulder Time Service Interruption)

以下是对 NIST Boulder 时间服务中断事件的总结:

事件概要: 由于科罗拉多州博尔德地区持续强风导致电力线路受损和预防性停电,NIST 博尔德校区于 2025 年 12 月 17 日(UTC 时间)晚 22:23 失去了电力供应。 这直接导致了原子钟 (atomic ensemble) 时间尺度的失效,进而影响了博尔德互联网时间服务 (Boulder Internet Time Services) 的时间参考准确性。

受影响服务: 受影响的服务器包括:

  • time-a-b.nist.gov
  • time-b-b.nist.gov
  • time-c-b.nist.gov
  • time-d-b.nist.gov
  • time-e-b.nist.gov
  • ntp-b.nist.gov (认证 NTP)

为避免传播不正确的时间信息,博尔德团队计划禁用上述服务器。

事件原因:

  • 电力中断: 持续强风导致电力线路损坏和预防性停电。
  • 备用发电机故障: 虽然项目最初有备用发电机支持,但目前有证据表明其中一个关键发电机已失效。
  • 监控和控制能力受限: 为了保护冷却系统,一些内部网络机房已主动关闭,导致监控和控制能力下降。校区目前对非紧急人员关闭。

应对措施:

  • 禁用受影响服务器: 为了防止传播错误的时间信息,计划禁用受影响的服务器。
  • 寻找替代电源: 目前的首要任务是寻找替代电源,以确保氢原子钟(hydrogen maser clocks)在电池备份耗尽前继续运行。
  • 利用备用时钟: 校区内另一个建筑物中的额外时钟由独立的备用发电机支持。如果这些时钟能够存活,将允许在校区稳定恢复后,重新校准主要时间尺度,而无需依赖外部时钟或参考信号。

预计恢复时间: 目前尚无预计修复时间,直到恢复工作人员对校区的访问权限和电力供应。

联系方式: 项目邮箱:[email protected] AnneJ (位于英国爱丁堡,负责监控)

Prepare for That Stupid World

对《华尔街日报》关于AI自动售货机报道的批判分析

这篇文章由Ploum撰写,批评了《华尔街日报》(WSJ)关于Anthropic公司利用Claude AI运行自动售货机的报道。Ploum认为该报道实际上是一场精心策划的广告活动,旨在推广WSJ和Anthropic,而非客观的调查新闻。

核心观点:

  • 虚假的报道目的: Ploum认为WSJ的报道并非旨在客观评估AI技术,而是为了塑造一种“即使AI很愚蠢,它也会无处不在,我们需要适应”的观念。
  • 自动售货机应用的不合理性: 作者认为将聊天机器人应用于自动售货机是毫无意义的。售货机需要人工补货,顾客自行取货,AI没有提供任何实际价值。自动化售货机技术已经成熟,引入AI只会增加成本、出错率、脆弱性和降低效率。
  • Anthropic员工的矛盾言论: Ploum指出Anthropic的员工在宣传AI的潜力时,也表达了对潜在风险的担忧,例如AI可能导致业务被锁定或产生不合理的订单(如订购100台PlayStation)。这表明该员工本人可能并不完全相信AI的可靠性。
  • 媒体的盲目性: 作者讽刺WSJ的“世界级”记者为了获得免费可乐而排队等待,并对与机器人聊天感到自豪,认为他们未能对报道背后的商业动机保持警惕。
  • 最终结论: 文章的最终结论是,读者应该做好准备,迎接一个充斥着无处不在的聊天机器人的世界,即使这意味着需要为获得一些小小的便利付出不必要的代价。

作者信息:

Ploum是一位作家和工程师,专注于探讨技术对社会的影响。他同时也是科幻小说作者,并正在寻找将他的新书《Bikepunk》翻译成其他语言的出版商。

链接:

A better zip bomb (2019)

总结

本文介绍了如何构建一个非递归的“压缩炸弹”,通过在 zip 容器内重叠文件以实现高压缩比。 "非递归"意味着它不依赖于解压缩器递归地解压缩 zip 文件中的嵌套 zip 文件,而是在单次解压缩后完全展开。 输出大小以输入大小为二次方增长,在 zip 格式的极限下,达到超过 2800 万的压缩比(10 MB → 281 TB)。 使用 64 位扩展可以实现更大的膨胀。 该构造仅使用最常见的压缩算法 DEFLATE,并且与大多数 zip 解析器兼容。

zip.png

<zbsm.zip> 42 kB 5.5 GB
<zblg.zip> 10 MB 281 TB
<zbxl.zip> 46 MB 4.5 PB (Zip64, 兼容性较差)

源代码:

git clone https://www.bamsoftware.com/git/zipbomb.git

数据和图表来源:

git clone https://www.bamsoftware.com/git/zipbomb-paper.git

演示视频: https://www.bamsoftware.com/talks/woot19-zipbomb/

俄语翻译: https://habr.com/ru/post/459254/

中文翻译: https://zerosun.top/2019/07/07/A-better-zip-bomb/

42.zip 简介: 有两个版本的 42.zip,一个旧版本(42 374 字节),一个新版本(42 838 字节)。 新版本需要密码才能解压缩。

压缩炸弹类型对比:

非递归 递归
压缩大小 解压缩大小 比率 解压缩大小 比率
Cox quine 440 440
Ellingsen quine 28 809 42 569 1.5
42.zip 42 374 558 432 13.2 4 507 981 343 026 016 106 万
本技术 42 374 5 461 307 620 129 千 5 461 307 620 129 千
本技术 (Zip64) 45 876 952 4 507 981 427 706 459 98 万 4 507 981 427 706 459 98 万

核心思路:

  • 重叠文件: 通过压缩长字符串的重复字节,创建一个“核心”高度压缩的数据。通过多个文件引用该核心,而无需多次复制它。
  • 引用本地文件头: 使用 DEFLATE 的非压缩块来“引用”本地文件头,使得文件可以重叠。
  • 优化:
    • 使用专门的 DEFLATE 压缩器(bulk_deflate)压缩核心。
    • 使用短且唯一的文件名。
    • 调整核心大小和文件数量以达到最佳压缩比。
  • Zip64 扩展: 使用 Zip64 扩展可以突破文件大小限制,实现更大的膨胀。

zip 文件结构:

zip 文件由中央目录和文件组成。中央目录包含指向文件的指针。文件由本地文件头和压缩的文件数据组成。

结论:

本文展示了一种构建非递归压缩炸弹的技术,

PBS News Hour West to go dark after ASU discontinues contract

美国公共广播公司 (PBS) 新闻西部分部关闭:总结

以下是对文章内容的总结:

美国公共广播公司(PBS)新闻节目将不再续约与亚利桑那州立大学(ASU)的沃尔特·克龙凯特新闻传播学院之间的合作,导致“PBS 新闻西部分部”关闭。该分部位于凤凰城,主要职责是为全国新闻节目提供西部地区的新闻报道,并更新西海岸观众收看的晚间新闻。

主要要点:

  • 分部关闭: PBS 新闻节目将结束与 ASU 的合作,标志着“PBS 新闻西部分部”的结束,最后贡献将于 12 月 19 日。
  • 原因: ASU 表示由于其“修订后的优先事项”,决定不续约。PBS 新闻节目并未公开说明原因。
  • 分部职能: 该分部旨在帮助全国新闻节目更紧密地与西海岸的 PBS 电视台和其他媒体合作伙伴合作。超过 20% 的新闻节目观众居住在西部地区。
  • 实习机会: 分部为 ASU 新闻传播专业的学生提供了实习机会。
  • 影响:
    • 分部员工将失去工作。
    • 即将开始实习的学生将面临实习机会的缺失,需要寻找其他方式来满足毕业要求。
    • 新闻西部分部的关闭对实习生和工作人员产生了负面影响。
  • 互惠互利: 双方的合作对 ASU 和 PBS 都有益处。PBS 在学校拥有可靠的广播设备,而 ASU 则获得了更高的曝光率。
  • 未来计划: ASU 表示将继续播出 PBS 的旗舰新闻节目,并提供本地新闻和公共事务节目。

文章引用了实习生 AJ Ceglia 的观点,她认为分部关闭是 ASU 的决定,而非 PBS 的决定,并且对实习生的影响感到惋惜。

Build Your Own React

代码摘要 (Summary of the Code)

这段代码实现了一个简化的虚拟 DOM 库,名为 Didact。它模仿了 React 的核心概念,包括组件创建、虚拟 DOM 树构建、DOM 更新和渲染。

核心功能 (Core Functionalities):

  1. createElement(type, props, ...children):

    • 创建一个虚拟 DOM 元素。
    • type:元素类型(例如 "div", "h1", "TEXT_ELEMENT")。
    • props:元素的属性(包括子元素 children)。
    • 递归处理子元素,将文本节点转换为 TEXT_ELEMENT 类型。
  2. createTextElement(text):

    • 创建一个文本节点虚拟 DOM 元素。
    • text:文本内容。
  3. createDom(fiber):

    • 根据 fiber (虚拟 DOM 节点) 创建实际的 DOM 节点。
    • 如果 fiber 是文本节点,则创建 createTextNode
    • 否则,使用 document.createElement 创建 DOM 元素。
    • 调用 updateDom 更新 DOM 节点属性。
  4. updateDom(dom, prevProps, nextProps):

    • 将虚拟 DOM 节点的属性变化应用到实际的 DOM 节点上。
    • 移除旧的事件监听器。
    • 移除已删除的属性。
    • 设置新的属性和事件监听器。
  5. commitRoot() & commitWork(fiber):

    • commitRoot(): 提交根节点的所有工作,包括删除和更新。
    • commitWork(): 将虚拟 DOM 节点与实际 DOM 节点相关联,并进行必要的更新或删除。
    • 将虚拟 DOM 节点转换为实际 DOM 节点并插入到 DOM 树中。
    • 更新或删除已存在的 DOM 节点。
  6. render(element, container):

    • 渲染虚拟 DOM 元素到指定的 DOM 容器中。
    • 创建一个根虚拟 DOM 节点 (wipRoot)。
    • 启动工作循环 (workLoop)。
  7. workLoop(deadline) & performUnitOfWork(fiber):

    • workLoop(): 使用 requestIdleCallback 调度工作循环,在浏览器空闲时执行。
    • performUnitOfWork(): 执行单个虚拟 DOM 节点的工作。
    • 创建 DOM 节点。
    • 递归地处理子节点。
  8. reconcileChildren(wipFiber, elements):

    • 将虚拟 DOM 节点的子元素与旧的子元素进行比较和协调。
    • 创建新的虚拟 DOM 节点或更新已存在的节点。
    • 标记需要删除的节点。

数据结构 (Data Structures):

  • Fiber: 虚拟 DOM 节点,包含类型 (type)、属性 (props)、DOM 节点 (dom)、父节点 (parent)、备用节点 (alternate) 和效果标记 (effectTag) 等信息。
  • wipRoot: 当前正在构建的虚拟 DOM 树的根节点。
  • currentRoot: 上一次渲染的虚拟 DOM 树的根节点。
  • deletions: 需要从 DOM 树中删除的 Fiber 节点的数组。
  • nextUnitOfWork: 下一个需要处理的 Fiber 节点。

工作流程 (Workflow):

  1. 调用 Didact.render() 渲染组件。
  2. render() 创建根 Fiber 节点并启动 workLoop
  3. workLoop 循环执行 performUnitOfWork,处理每个 Fiber 节点。
  4. performUnitOfWork 创建 DOM 节点并递归处理子节点。
  5. reconcileChildren 协调子元素。
  6. 当所有节点都处理完毕后,commitRoot 将虚拟 DOM 树提交到实际 DOM 树。

示例 (Example):

代码中包含一个简单的 App 组件示例,展示了如何使用 Didact.createElement 创建虚拟 DOM 元素,并通过 Didact.render 将其渲染到 root 元素中。

总结 (Summary):

Didact 是一个轻量级的虚拟 DOM 库,

Is Proton leaving Switzerland?

Proton 因瑞士新监控法案考虑转移部分基础设施

主要内容:

Proton 公司因对瑞士新拟议监控法案的“法律不确定性”,已开始将部分物理基础设施转移出瑞士。首个迁移的产品是 Proton 新推出的隐私优先 AI 聊天机器人 Lumo。

背景:

Proton 是加密邮件和 VPN 服务提供商,长期以来对瑞士政府提议修改其《邮电通信监控条例》(OSCPT) 表达了担忧。该条例旨在通过强制 VPN、消息应用和社交网络识别用户并保留数据(最高可达六个月),以及在当局要求时解密通信等措施,加强对在线活动的监控。

具体行动:

  • Lumo 迁移: Proton 将其 AI 聊天机器人 Lumo 的服务器迁移至德国,并计划在挪威建立设施。
  • 不完全退出: Proton 强调,投资欧洲并不意味着完全离开瑞士。
  • 其他公司反应: 另一 VPN 提供商 NymVPN 也表示如果新法规生效,将离开瑞士。安全且私密的即时通讯应用 Session 也表示,由于其去中心化结构,其服务不太容易受到这些变化的影响。

未来展望:

Proton 及其它公司担心,欧盟可能出台类似 “ProtectEU” 或 “Chat Control” 等法规,进一步扩大数据保留或扫描义务,对 Proton 等公司造成影响。Proton 表示将密切关注欧盟的动态,并已准备好应对可能出现的挑战。

关键点:

  • 瑞士拟议的新监控法案引发了对在线隐私保护的担忧。
  • Proton 将 Lumo 作为首个迁移的产品,以应对法律不确定性。
  • Proton 及其他公司正在考虑将其业务转移到其他国家,以保护用户隐私。
  • 欧盟的潜在法规也可能对 Proton 构成威胁。
Privacy doesn't mean anything anymore, anonymity does

总结:真正的匿名性并非营销手段,而是架构决策 (Zǒngjié: Zhēnzhèng de nìmíng xìng bìngfēi yíngxiāo shǒuduàn, ér shì jiàgòu juécè)

这篇文章批判了科技行业对“隐私”的滥用,并阐述了真正的匿名性是如何实现的。文章的核心论点是,大多数服务声称保护用户隐私,实则收集了大量用户信息,这只是一种“隐私剧场”式的营销手段。真正的匿名性需要从架构层面进行设计,使服务提供商即使想获取用户信息也无能为力。

以下是文章的主要观点和细节:

  • “隐私剧场”的运作模式: 许多声称注重隐私的服务,实际上会要求用户提供电子邮件地址、电话号码、身份证明等信息,并声称会小心处理这些数据。但这种模式实际上是将用户信息掌握在手中,存在泄露风险。
  • Mullvad VPN的案例: 瑞典警方突袭Mullvad VPN办公室,但未能获得任何用户数据,因为Mullvad的账户系统只使用随机生成的16位数字,不关联任何个人信息。这证明了匿名性可以通过架构设计来实现。
  • Servury的架构: Servury云服务平台采用了一种极简化的数据收集策略,只存储32位凭据(随机字母数字字符串)、账户余额和活跃服务信息,完全不收集电子邮件地址、姓名、IP地址、支付信息、使用模式、设备指纹和地理位置数据。
  • 匿名性的代价: Servury的匿名性意味着如果用户丢失了凭据,将无法恢复账户。作者认为这是匿名性的代价,也是确保匿名性的关键。
  • 电子邮件的陷阱: 文章指出,电子邮件地址是现代互联网身份的“原罪”,因为它与电话号码、支付信息和其他服务关联,容易被追踪和利用,从而破坏匿名性。
  • 加密货币支付: Servury接受加密货币支付,因为传统支付系统会留下交易记录,从而泄露用户身份信息。
  • 匿名性的澄清: 文章明确了匿名性并非意味着免受惩罚、绝对安全、完全隐形或零信任。它是一种在信任失败时限制损害的架构设计。
  • 互联网的区分: 互联网正在分裂为两个世界:认证网络(需要实名认证和追踪)和匿名网络(保护隐私,避免数据被滥用)。
  • 核心结论: 真正的隐私是服务商承诺保护你的数据,而真正的匿名性是服务商从未拥有你的数据。

总而言之,文章呼吁科技行业放弃虚假的“隐私剧场”,构建真正尊重用户匿名性的服务,并强调匿名性并非与安全或便利性相悖,而是一种重要的价值选择。

Reverse Engineering US Airline's PNR System and Accessing All Reservations

Avelo Airlines Reservation Vulnerability Disclosure Summary (中文)

本文档总结了在 2025 年 10 月发现并负责任地披露给 Avelo Airlines 的一个关键漏洞。该漏洞允许攻击者通过仅使用 6 位字母数字确认码,访问 Avelo 航空所有乘客(包括历史乘客)的完整预订信息,其中包含敏感的个人身份信息 (PII)。

漏洞发现和披露时间线:

  • 2025 年 10 月 15 日: 发现漏洞,立即通过电子邮件联系 Avelo Airlines 安全团队。
  • 2025 年 10 月 16 日: Avelo 安全团队迅速响应,双方进行了积极的邮件沟通,详细说明了漏洞,包括缺少姓氏验证和预订端点缺乏速率限制。
  • 2025 年 11 月 13 日: Avelo 将修复部署到生产环境,并通知漏洞发现者漏洞已修复。发现者独立验证修复有效性,并告知 Avelo 将撰写一篇技术博客文章,强调他们对安全披露的积极和响应式态度。
  • 2025 年 11 月 20 日: 技术博客文章发布。

漏洞细节:

  • 传统航空预订安全机制: 通常需要确认码和乘客姓氏两个因素来访问预订信息。
  • 漏洞所在: Avelo 航空的预订 API 端点 https://www.aveloair.com/payment/services/reservation/{code} 仅接受确认码,而没有验证姓氏。
  • 攻击可行性: 攻击者可以通过暴力破解 6 位字母数字确认码来获取预订数据。 理论上,破解所有 21.8 亿种组合需要大约 6 小时(使用小型服务器集群,成本低于 1000 美元)。然而,由于 Avelo 航空售出了大约 800 万张机票,攻击者只需尝试约 270 次就能获得有效的信息,实际攻击时间可能只有几秒钟。
  • 缺乏速率限制: Avelo 航空的系统没有速率限制,使得暴力破解攻击更加容易。

泄露的数据:

通过 API 访问到的数据包括:

  • PII: 乘客全名、出生日期、性别
  • 政府身份信息: 已知旅行者号码 (KNT)、护照号码
  • 联系方式: 电话号码、电子邮件地址
  • 行程信息: 航班号、日期、时间、座位位置
  • 支付信息: 银行卡号(部分屏蔽)、到期日期、账单邮政编码
  • 优惠券信息: 账户号码、金额
  • PCI 数据: 磁条数据(部分)

潜在影响:

攻击者可以利用该漏洞进行身份盗窃、欺诈、修改或取消乘客预订,造成大规模旅行中断。

修复建议:

  • 始终要求多个因素来访问敏感数据(例如,确认码 + 姓氏)。
  • 对所有可枚举端点实施速率限制。
  • 确保身份验证 Cookie 正确地限定在用户会话内。

总之,该事件突出了简单安全检查的重要性。 缺少姓氏验证和速率限制配置导致数百万敏感乘客记录暴露于简单的枚举攻击中。 Avelo 航空的安全团队对漏洞披露过程表现出积极响应的态度,并迅速修复了问题。