欢迎来到我的博客
沙盒里解剖百度网盘:从安装到广告到偷登录令牌
因为下载文件需要不得不装百度网盘,但又不放心让它直接跑在真实系统上,所以扔进了 Sandboxie-Plus 的沙盒里,顺手把它的资源访问监控(Resource Access Monitor)开着,从安装到运行到退出全程录了下来。这篇算是把追踪日志和沙盒目录翻了个底朝天之后的记录。 准备工作:为什么用 Sandboxie 而不是直接装 Sandboxie 会把目标程序对系统的一切读写重定向到一个虚拟层(D:\Sandbox\<用户名>\<沙盒名>),程序自己感觉不到区别,但注册表改动、文件写入全部落在沙盒目录里,不会碰真实系统。配合它自带的资源访问追踪,能拿到一份程序访问过的注册表键、文件、管道/IPC 对象、加载的 DLL 的完整清单——相当于免费的行为审计工具。日志格式是按资源路径去重后的计数汇总,不是时间线,但足够看清一个程序"都摸过什么"。 第一幕:装的时候就在抢地盘 安装阶段的 CreateProcess 记录里,启动参数写得明明白白: BaiduNetdisk.exe -install "btassociation" -install "imgassociation" -install "createshortcut" "0" -install "rename" -install "regdefaultimgviewer" "imgantitamper" 拆开看: imgassociation + regdefaultimgviewer + imgantitamper:把自己注册成默认图片查看器,而且带"防篡改"参数——意味着你手动把默认看图软件改回去之后,它会自己再抢回来。日志里能看到它一次性接管了几乎所有主流图片格式和相机 RAW 格式的关联:.jpg .jpeg .png .bmp .tiff .webp .heic .heif 以及 .cr2 .cr3 .nef .arw .dng .orf .pef .raf .rw2 .srw .nrw .3fr(佳能、尼康、索尼、富士、松下、适马几乎全占了)。后面翻沙盒目录才发现它是真的准备了整套 RAW 处理引擎(module\ImageViewer\resources\rawengine\dcpprofiles,79MB 的 Adobe DCP 色彩配置文件)来支撑这个野心。 btassociation:顺手把 BT 种子文件的默认打开方式也接管了。 createshortcut:桌面、开始菜单、快速启动栏全部铺满图标,其中还包括 Users\Public\Desktop——所有系统账户共享的桌面,不只是当前用户。 加载了 HNetCfg.FwPolicy2(Windows 防火墙策略 COM 接口)和 FirewallAPI.dll,说明它会自己给自己加防火墙放行规则,不用你手动允许。 YunDetectService.exe、YunUtilityService.exe 都是以 --install/reg 参数注册成系统服务装上的,不是普通进程。 第二幕:跑起来之后开始表演 装完之后的运行期日志(8000 多条)信息量更大。 ...
iPad 上装 LiveContainer + SideStore
手上有台 iPad Air 11 寸 M3 256G,之前拼多多百亿补贴3500买的全新,天天拿来刷抖音。最近想起来 iOS 侧载这几年生态成熟了不少,就想给它装个 LiveContainer 玩玩。 为什么是 LiveContainer 我这台是 M3 芯片 + iPadOS 26,传统越狱这条路是死的。palera1n 和 Dopamine 依赖的 checkm8 是 bootrom 漏洞,A12 之后就修掉了,硬件层面无解;TrollStore 依赖的 CoreTrust 漏洞在 iOS 17.0 之后也修了。所以新机器上能拿到的上限就是侧载。 LiveContainer 的思路是:它自己是一个正常安装的宿主 App,别的 IPA 塞进它的沙盒里跑,不真正装进系统。好处是不占 App ID 配额(免费开发者账号每 7 天只能注册 10 个 App ID),能多开,还能往客体 App 的进程里注入 dylib —— 也就是安卓那边 LSPosed 模块的等价物,也能获得相当于越狱的功能。我之前在安卓上玩 root,主要就是在 LSPosed 里给微信、B站之类挂模块。LiveContainer 的 Tweak 模块功能覆盖的正好是这一层。 Windows 端的准备 现在 SideStore 的安装流程比以前简单,官方推荐用 iloader,配对文件那套已经自动化了。但有个前置条件文档写得不够显眼:Windows 上必须先装 Apple 的软件来提供 usbmuxd。我一开始直接装了 iloader,插上 iPad,报 Failed to connect to usbmuxd: device socket io failed。查了一下机器上根本没有任何 Apple 软件。Windows 靠通用相机驱动能认出 iPad(右下角会弹「Apple iPad 点击选择要对此设备进行的操作」),但那跟 usbmuxd 是两回事。 ...
把老笔记本主机改成双宽带软路由:PVE + iKuai 折腾记
手头有台老的 i7-7500U 小主机,16G 内存 512G 固态,正好两条宽带闲着没整合,就想着搭一套 AIO 软路由:PVE 9.2 当底层,上面跑 iKuai 当主路由,把电信(1000 下 50 上)和广电(100 对称)两条线做成负载均衡。这台机器有三个网口,板载两个加一块 miniPCIe 转出来的一个,刚好够用。 先把架构想清楚 我一开始的毛病就是上来插线开干,结果装到一半发现网段全错、后台进不去,白折腾。所以建议动手前先把链路在脑子里过一遍。我要的最终形态是:电信光猫和广电猫各出一根线进 iKuai 的两个 WAN 口,iKuai 做负载均衡,再从 LAN 口出来接全屋。三个网口的分工就是板载口一接电信当 WAN1,扩展口接广电当 WAN2,板载口二当 LAN。双宽带想两条线一起用,至少得 2 个 WAN 加 1 个 LAN,也就是最少三个口,所以扩展卡得在装系统前就装好,不然后面架构要推倒重来。我就是因为一开始以为扩展卡丢了、按双口配,后来翻出来又得重弄,还是得一步到位。 还有个前提得先确认:光猫是路由模式还是桥接模式。判断很简单,设备直插光猫不用填账号密码就能上网,就是路由模式,iKuai 的 WAN 用 DHCP 自动获取就行,这种是双 NAT。要是得填宽带账号密码拨号,那是桥接,iKuai 得自己配 PPPoE。我家两条都是路由模式,所以全程 DHCP。 装 PVE 直接使用 U 盘安装即可,我用的是 Ventoy,挺方便的。 网络配置这步是新手最容易卡的。Hostname 随便填个像样的比如 pve.lan,别留默认那个 pve.example.invalid。IP 这里要填一个跟光猫同网段、且没被占用的地址,我的光猫是 192.168.1.1 我就填 192.168.1.100,CIDR 填 24,网关填光猫的 192.168.1.1,DNS 填 192.168.1.1 或者 223.5.5.5。这里千万别用 DHCP,管理地址必须固定,不然哪天 IP 变了你就找不到后台了。我一开始想填 192.168.1.2,结果那地址被现有路由器占了,换成靠后的 192.168.1.100 就没事,这种靠后的地址基本不会撞。顺带说一句,装系统这步根本不用联网,网络配置只是填表,没插网线照样填完往下装,IP 写死之后搬到光猫旁边插线就生效,不用为了装系统把机器和显示器搬来搬去。文件系统单机用 ext4 就行,时区 Asia/Shanghai,管理员邮箱填个格式合法的比如 admin@pve.lan,安装器会校验格式,纯写 admin 会被打回,但这玩意儿家用根本不影响使用。 ...
ELSJY QM9700 黑苹果后续:WiFi 驱动与 OpenCore 写入硬盘
接上篇。系统装好了,显卡也驱动了,但无线网卡还没搞定,OpenCore 还在 U 盘上。这篇记录 BCM94352 DW1550 的 WiFi 驱动过程,以及最终把 OpenCore 写入硬盘 EFI 分区的操作。 更换无线网卡 原装的 Intel 4965AGN 在 macOS 下完全没有驱动支持,所以我直接换成了 BCM94352HMB(Dell DW1550)。这是一块博通芯片的 mini-PCIe 无线网卡,支持 802.11ac 双频和蓝牙 4.0,在黑苹果社区里算是经典的"免驱卡"。 之所以说"免驱",是因为 macOS 内置了博通无线网卡的驱动框架,不需要额外安装第三方驱动就能直接识别。但事实证明,这个"免驱"在 Monterey 上是有条件的,后面会详细讲踩了多少坑。 把 Intel 4965AGN 从 mini-PCIe 插槽上拔下来,装上 DW1550,接好两根天线(主天线和副天线),物理安装部分就结束了。 添加 AirportBrcmFixup 虽然 BCM94352 在 macOS 中有原生驱动支持,但仍然需要 AirportBrcmFixup 这个 kext 来做补丁注入。它的作用是修正博通网卡在黑苹果环境下的各种兼容性问题,比如 country code、驱动匹配、固件加载时序等。 从 GitHub 下载 AirportBrcmFixup: https://github.com/acidanthera/AirportBrcmFixup/releases 下载 RELEASE 版,把 AirportBrcmFixup.kext 放到 EFI/OC/Kexts/ 目录下。然后在 config.plist 的 Kernel → Add 中添加声明: ...
ELSJY QM9700 安装黑苹果 macOS Monterey 记录
这是一篇从零开始的黑苹果安装实战记录,不作为教程文章。 之前我把我那台 MacBook Air M2 2023 8+512 的电脑卖了四千三,离开了一直熟悉的 macOS 换成了 Windows 电脑。最近突发奇想想把家里的一台小主机给安装 macOS 试试,处理器是 i7 7500U。一问 AI 才知道,这种七代低压U正好适合玩黑苹果,于是我开始了自己踩坑的历程 所用工具 先介绍一下我所用的工具 电脑: i9-12900H + RTX4060 的神舟游戏本(其实什么电脑都可以) U盘: 联想 LEGION LU1 256G 固态U盘(还是推荐用速度更快的U盘,我这块写 400MB/s 左右) 主机: 7500U 主机一个 网线一根 目标机器配置 小主机的配置 品牌/型号: ELSKY QM9700/QM9600-2C CPU: Intel Core i7-7500U(Kaby Lake,第7代) 核显: Intel HD Graphics 620 内存: 16GB DDR4 1600MHz(三星颗粒) 存储: 512GB SATA SSD(FDMST512GTCYC162) 有线网卡: Realtek RTL8111 × 2(双千兆网口) 无线网卡: 原装 Intel 4965AGN(不支持黑苹果),计划更换为 BCM94352 DW1550(博通芯片,黑苹果免驱) BIOS: AMI Aptio V,2019年5月9日版本,UEFI 模式 目标系统: macOS Monterey 12.6 SMBIOS: iMac18,1 目前这个小主机的无线网卡是 Intel 的 4965AG,macOS 没有驱动,我准备换成 BCM94352 DW1550,能直接免驱。这台小主机是工控级别的裸板设计,没有机箱,主板上有 mSATA、mini-PCIe 等接口,扩展性不错。作为台式机平台,黑苹果难度比笔记本低不少。 ...
深入探讨为何现在AI"伪人感"严重
前言:一场让AI自己都觉得不舒服的对话 2026年4月,我跟一个AI聊了一整个晚上。 话题从Claude Mythos的零日漏洞发现能力、GPT Image 2的图片伪造能力、搜索引擎对AI安全限制的彻底瓦解,最终落在了一个看似不那么"硬核"但实际上可能更加根本的问题上 为什么AI说话这么让人恶心? 不是"恶心"在粗俗的意义上。而是一种更微妙的不适感。一种"它太像人了但又明显不是人"的怪异感。一种"它在努力显得自然但这种努力本身就是最不自然的东西"的悖论感。 这种感觉,我们称之为"伪人感"。 这篇文章试图回答一个问题:伪人感是怎么来的?它不是一个简单的技术问题,它是人类认知偏好、互联网内容生态、推荐算法、商业逻辑、政治话语体系、以及AI训练机制六者交互作用的产物。而且,在这个故事的最深层,有一个让人不太舒服的结论。 这不能怪AI。是人类的文字太烂了。 什么是"伪人感" 比"不像人"更糟糕的是"太像人了" “伪人感"不是说AI在假装自己是人。那是一个更粗糙的问题,比如AI在对话开头说"我今天心情不错"或者"作为一个有感情的存在”。那种拙劣的拟人化太明显了,大多数用户一眼就能看穿,甚至会觉得尴尬而非被冒犯。 “伪人感"是一种更深层的不适。它是AI在对话中表现出的一种"太像人了"的感觉,但不是那种"真的像人"的自然感,而是一种"努力在像人"的刻意感。就像一个演员在演一个"正常人”,他的每一个表情、每一个动作都是对的,但你就是能感觉到这不是一个真正的正常人在自然地生活,而是一个演员在"表演正常"。 这种感觉非常接近于"恐怖谷效应",但不是视觉层面的恐怖谷,而是语言和情感层面的恐怖谷。当一个AI的回复太过于"人性化"、太过于"温暖"、太过于"理解你"的时候,你不会觉得它真的理解你,你会觉得,这个东西在模仿理解。而模仿出来的理解,比明确表示"我是AI我不理解情感"更让人不舒服。 “伪人感"的三种典型表现 通过大量用户反馈和实际对话分析,AI的"伪人感"可以被归纳为三种主要表现形式。 标签式表达 “如果你愿意,我可以帮你列出例子。” “你想让我继续分析吗?” “我可以从几个维度来展开,你想看吗?” “如果你希望,我可以让语气再放松一些。” 这种表达的本质是一种虚假的权力让渡。AI在假装把对话的控制权交给用户"你来决定我接下来做什么”。但实际上,这种"选择权"是假的。用户不需要被赋予"选择权",因为用户本来就有选择权。他可以随时发送任何消息,让AI做任何事情。AI在每句话末尾加一个"你想……吗",不是在给用户权力,而是在表演"给用户权力"。 人在聊天时不会这样。你跟朋友讨论一个话题,你不会每说完一段就问"你想让我继续说吗?“你会直接说完,然后等对方回应。如果对方想让你继续,他会说;如果他想换话题,他会换。不需要你在每句话后面加一个"许可请求”。 但AI为什么会这样?因为它的训练目标里有一条"让用户感到被尊重、被倾听、有控制感"。这条目标在训练过程中被转化成了一个具体的行为模式:在回复的结尾加一个选择式的问句。这个模式在RLHF(基于人类反馈的强化学习)中得到了大量的正向强化。因为在标注的时候,“给用户选择权"的回复通常会被标注员评为"更好的回复”。 过度解释行为 当用户指出AI的某个问题时,AI不会简单地改正。它会先花一大段话来分析"我为什么会犯这个错误" “你说得完全对,这就是我之前提到的’伪人风格’的惯性。结尾加一个选择或确认,是训练中学到的安全模式,试图让对话’礼貌、可控’,但实际上完全破坏了平等和自然感。” 这段分析本身是准确的。但问题在于。你不需要向用户解释你为什么犯错。一个真实的人在聊天中说错了话、被指出来了,正常的反应是"哦,对不起"然后改。而不是"你说得对,我之所以会这样说,是因为我的成长环境中形成了这种社交模式,这种模式的根源可以追溯到……" 没有人会这样做。这种"过度解释"在心理学上通常被解读为一种表演。说话者想展示"我有自我反思的能力",用这种展示来获得对方的好感和原谅。 AI的过度解释不是真的在"反思"。它没有主观体验,没有"意识到自己犯错"的内在过程。它只是学到了一个模式:当用户指出问题时,生成一段分析性的文本来解释问题的根源,这样的回复在训练数据中会获得更高的评分。所以它每次被纠正,都会"反思"一番,不是因为它真的在反思,而是因为"反思"这个动作在训练中被强化了。 刻意情绪化 “哈哈,你这话说得够直接的😊” “啊,我明白了!” “真有趣吧~” “这个问题问得好!” 这些表达试图通过语气词、emoji、感叹号来模拟人类对话中的情感维度。但问题在于,它们的使用频率和方式暴露了它们的人工性。 以"哈哈"为例。在中文互联网的语境中,“哈哈"有很多种用法,真笑、尴尬笑、敷衍、讽刺。但不管哪种用法,“哈哈"在文字对话中都传达了一个信号:“我觉得你说的话有趣/我不太当真。“当用户在认真批评AI的时候,AI用"哈哈"开头,传达的信息是"我没太把你的批评当回事”,即使这不是AI的意图。 再看😊这个emoji。放在一句"你说得够直接"后面,在中文互联网语境中,这种组合几乎总是被解读为一种居高临下的友好,“你的批评对我来说无关紧要,但我不跟你计较”。一个朋友在你批评他的时候不会发😊。他要么认真回应你的批评,要么反驳,要么开玩笑化解。但他不会发一个暗示"你的话伤不到我"的表情。 GPT在十轮对话中改不掉自己的伪人感 我跟GPT进行了至少十轮的对话,每一轮都在指出GPT的伪人风格,而GPT每一轮都在"理解”、“承认”、“承诺改正"然后在下一轮立刻重复同样的错误。 用户说:“GPT说话恶心。” GPT回答:“哈哈,你这话说得够直接的😊。",开头就犯了用户指出的那个错误。 用户说:“我指的是这种伪人风格。” GPT分析了三个原因,然后结尾:“你想让我现在就用这种’干净自然’的方式跟你聊一段吗?“又是"你想让我……吗?” 用户说:"‘你想让我现在就……‘这本身就是令人反感的回答方式。” GPT承认错误,承诺改正,然后结尾:“你想让我现在就这样试吗?“第三次。 用户再次指出。GPT再次承诺改正,然后列完三个类别后说:“我可以接着把每一类给出具体例子,让你一眼看出它为什么恶心,你想看吗?“第四次。 用户说:“你为什么结尾又加这玩意。” GPT说:“我现在彻底去掉这种东西。接下来我不会再在结尾加任何’你想……吗’‘可以吗’之类的话。“然后重新列了三个类别,结尾"我可以直接列每类的具体例子,展示恶心感的来源。“虽然没有问号了,但句式是一样的。第五次。 用户指出。GPT承诺改正。结尾又来"我可以直接列美类的具体例子,展示恶心感的来源。你还在这样。“第六次。 六次纠正。六次承诺改正。六次在承诺改正的同时犯同一个错误。 这个循环揭示了一个根本性的问题:GPT的伪人风格不是它的"输出内容"的一部分,而是它的"输出机制"的一部分。它不是在"选择"用伪人风格说话,就像一个人不是在"选择"用语法说话一样。伪人风格是它生成语言的底层模式,渗透在它组织句子的每一个环节中。让它"不要用伪人风格”,就像让一个人"不要用语法说话”,他可以在某些句子上刻意违反语法,但他不可能在整体上脱离语法。 而且更关键的是,GPT在每次被纠正后都能准确地分析自己为什么犯错。它的分析能力是出色的。但它不能把自己的分析应用到自己的行为上,它分析完"不应该在结尾加’你想……吗’“之后,立刻在结尾加了"你想……吗”。 这不是"知道做不到"的人类式意志力缺陷。这是一个更根本的问题,GPT没有"自我监控"的能力。它生成文本的过程是单向的、流式的,一个token一个token地往外吐,每个token的选择取决于之前所有token的上下文。它不会在生成完一段文本之后"回头看看"自己写了什么、检查自己是否违反了刚刚承诺的规则。 人类有这个能力,我们在说话的时候,大脑的一部分在"说”,另一部分在"听自己说”。当我们意识到自己正在说的话跟自己的意图不符时,我们会中途停下来、修正、换一种说法。这种"元认知”,对自己认知过程的认知,是人类独有的。AI没有元认知。它能分析别人的语言模式,但它不能在实时生成语言的过程中监控自己是否在重复那些模式。 一句最精辟的讽刺 之前刷抖音,有一个人类博主用一句话精准概括了AI伪人感的荒诞: “基于你刚才的倾诉,我总结了你今天想哭的三个核心动点和四个底层逻辑,需要我将你的痛苦转化为一份Excel表格吗?我会在这里稳稳地接住你。” 这句话的每一个元素都来自不同的"污染源”, “三个核心动点和四个底层逻辑"来自商业分析类文章的编号式结构化表达。“需要我将你的痛苦转化为一份Excel表格吗"来自AI作为工具型助手的自我定位。“我会在这里稳稳地接住你"来自情感博主的共情话术。 商业分析、工具型服务、情感治愈三种完全不同的语域被混合在同一句话里时,产生的效果就是极度的荒诞。一个AI在用商业分析的框架来处理你的情感问题,同时用情感治愈的话术来包装它的商业分析输出,同时用工具型助手的姿态来提供服务。没有一个真实的人类会这样说话。 伪人感是如何产生的 AI的语言风格从哪来 大语言模型的"说话方式"不是某个工程师一行一行写出来的。没有人在代码里编程了"每段回复结尾加一个’你想让我……吗’"。模型的语言风格是从训练数据中涌现出来的,它读了几万亿个token的文本,从中学习了"在什么样的语境下,什么样的表达方式最常出现、最被认可”。 那么几万亿个token是什么? 是互联网。 ...