[开源] 2 天 vibe 了个进程注入代理 Proxifier - 有编程大模型用 Python ,可以做一些以前不敢想的

1 月 16 日
 sbsummer

最近在用 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

下面的记录是让 gemini cli 根据我 claude code 的 jsonl 聊天文件生成的,有兴趣的可以看看这个开发过程

[开源] 用 C++ Qt + Winsock Hook (Detours) 撸了一个 Windows 进程级代理工具 OpenProxifier

大家好,最近为了给自研的反代工具 Antigravity 做配套的透明代理功能,突发奇想撸了一个 Windows 下的进程级代理工具。虽然市面上已经有 Proxifier 这样成熟的神器,但为了更轻量、可控(只针对特定进程),且能深度集成到我们自己的生态中,决定自己造个轮子。

项目取名 OpenProxifier,目前核心功能( TCP/UDP )均已实现,特来 V2EX 分享一下开发过程中的技术选型和踩坑经历。

项目背景与目标

目标很明确:实现一个“迷你版”Proxifier ,指定任意 exe (比如我们的 Antigravity ),让它所有的 TCP/UDP 流量自动走 SOCKS5 代理,且对目标程序完全透明。

项目地址: https://github.com/4111y80y/OpenProxifier

技术架构

起初考虑过 WinDivert (内核层拦截),但因为驱动签名太贵且调试蓝屏风险大,最终选择了 用户层 DLL 注入 + API Hook 的方案。

核心技术实现

1. 启动与注入

为了确保不漏掉任何流量,我们不使用“附加到运行中进程”的方式,而是接管启动过程: 使用 CREATE_SUSPENDED 标志启动目标进程,此时进程的主线程是挂起的。然后通过 Remote Thread 注入我们的 ProxyDLL,最后再 Resume 进程。

2. Winsock Hook (Detours)

我们在 DLL 加载时(DllMain)初始化 Detours ,Hook 了以下关键 API:

3. Antigravity 反代测试

为了验证代理效果,我们专门编写了一个配套的 Antigravity 程序。它会强制忽略系统代理设置( System Proxy ),直接发起 HTTP 请求。

开发踩坑记录

1. 32 位与 64 位的兼容性地狱

注入器是 64 位的,但目标程序可能是 32 位。64 位进程无法加载 32 位 DLL ,反之亦然。 解决方案: 编译了两套 DLL (MiniProxifierHook_x64.dllMiniProxifierHook_x86.dll)。注入器通过解析目标 PE 头 (Machine 字段) 判断架构,自动选择对应的 DLL 进行注入。

2. Electron/Chromium 应用的崩溃

Hook 普通 Win32 程序很稳,但一碰到 Electron 应用(如 VS Code, Discord )就崩。 原因: Chromium 的网络栈极其复杂,对 WSASend 的参数检查非常严格,且使用了特殊的缓冲区布局。 解决: 深入调试崩溃堆栈,修正了 Hook 函数中对 lpBuffers 的处理逻辑,确保内存访问越界检查比系统更严格。

3. DLL 文件占用锁死

开发时经常需要修改 DLL 代码,但如果测试进程没关,DLL 就被锁死无法编译。 解决: 写了自动化脚本,编译前自动查找并 Kill 掉所有加载了该 DLL 的进程。

AI 结对编程体验

本项目约 90% 的代码由 Claude Code opus 4.5 辅助完成。

项目进度

1788 次点击
所在节点    Vibe Coding
3 条回复
sbsummer
1 月 17 日
更新了一个版本,CPU 占用下降非常多
waynevan
1 月 19 日
感谢分享,mstsc 应该可以用上代理了
fenildf
1 月 30 日
赞一个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1186341

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX