最近在用 Antigravity 反代,使用的 Proxifier 让 Antigravity 可用(代理的 Tun 模式不太方便),然后注册 10 多个 gemini pro 账号,通过 Antigravity-Manager 来反代出 Claude Code 4.5 opus 轮流使用
https://i. imgur .com/k9e6oLi.png
一周几乎写了以前几周的东西,这些全部都是改用 C++ TUI/QT 做得,弃用了 python
分布式打板器
https://i. imgur .com/ZDVVuVF.png
新闻自动找相关股并预测龙头
https://i. imgur .com/1PiQTj7.png
龙头选股和智能体解答
https://i. imgur .com/fVuFffa.png
网格交易工具
https://i. imgur .com/0IVCt82.png
除了睡觉就是和 CC 聊天,等待过程就是看 x ,无意中在 x 中看到一篇文章: https://x.com/mntruell/status/2011562190286045552
大概意思是几天手搓了一个浏览器内核,包括:HTML 解析、CSS 级联、布局、文本整形、绘制和自定义 JS 虚拟机
这 tm 太酷了,其实现在有了 coding 大模型,什么都可以敢做了,而且没必要经常用 python 了,所以决定用 C++ QT 来复现 Proxifier 来作一些更深入的尝试,100% AI 来开发一个以前不敢碰的更深层的东西,于是有了下面 2 天搓出来的开源项目: https://github.com/4111y80y/OpenProxifier
https://i. imgur .com/v8ugfu9.gif
大家好,最近为了给自研的反代工具 Antigravity 做配套的透明代理功能,突发奇想撸了一个 Windows 下的进程级代理工具。虽然市面上已经有 Proxifier 这样成熟的神器,但为了更轻量、可控(只针对特定进程),且能深度集成到我们自己的生态中,决定自己造个轮子。
项目取名 OpenProxifier,目前核心功能( TCP/UDP )均已实现,特来 V2EX 分享一下开发过程中的技术选型和踩坑经历。
目标很明确:实现一个“迷你版”Proxifier ,指定任意 exe (比如我们的 Antigravity ),让它所有的 TCP/UDP 流量自动走 SOCKS5 代理,且对目标程序完全透明。
项目地址: https://github.com/4111y80y/OpenProxifier
起初考虑过 WinDivert (内核层拦截),但因为驱动签名太贵且调试蓝屏风险大,最终选择了 用户层 DLL 注入 + API Hook 的方案。
CreateProcess (Suspended) -> 注入 DLL -> Resume Thread为了确保不漏掉任何流量,我们不使用“附加到运行中进程”的方式,而是接管启动过程:
使用 CREATE_SUSPENDED 标志启动目标进程,此时进程的主线程是挂起的。然后通过 Remote Thread 注入我们的 ProxyDLL,最后再 Resume 进程。
我们在 DLL 加载时(DllMain)初始化 Detours ,Hook 了以下关键 API:
connect, WSAConnect —— 在这里拦截连接请求,与 SOCKS5 服务器建立握手。send, recv, WSASend, WSARecv —— 拦截应用层数据,通过 SOCKS5 隧道转发。sendto, recvfrom, WSASendTo, WSARecvFrom —— 实现了完整的 SOCKS5 UDP Associate 流程,支持 UDP 转发。select, WSAPoll 等 IO 复用函数也做了相应处理。为了验证代理效果,我们专门编写了一个配套的 Antigravity 程序。它会强制忽略系统代理设置( System Proxy ),直接发起 HTTP 请求。
注入器是 64 位的,但目标程序可能是 32 位。64 位进程无法加载 32 位 DLL ,反之亦然。
解决方案: 编译了两套 DLL (MiniProxifierHook_x64.dll 和 MiniProxifierHook_x86.dll)。注入器通过解析目标 PE 头 (Machine 字段) 判断架构,自动选择对应的 DLL 进行注入。
Hook 普通 Win32 程序很稳,但一碰到 Electron 应用(如 VS Code, Discord )就崩。
原因: Chromium 的网络栈极其复杂,对 WSASend 的参数检查非常严格,且使用了特殊的缓冲区布局。
解决: 深入调试崩溃堆栈,修正了 Hook 函数中对 lpBuffers 的处理逻辑,确保内存访问越界检查比系统更严格。
开发时经常需要修改 DLL 代码,但如果测试进程没关,DLL 就被锁死无法编译。 解决: 写了自动化脚本,编译前自动查找并 Kill 掉所有加载了该 DLL 的进程。
本项目约 90% 的代码由 Claude Code opus 4.5 辅助完成。
1
sbsummer OP 更新了一个版本,CPU 占用下降非常多
|
2
waynevan 20 小时 55 分钟前
感谢分享,mstsc 应该可以用上代理了
|