tomasgz7/project-spectre

GitHub: tomasgz7/project-spectre

一个基于计算机视觉和 DirectInput 的 Electron 桌面应用黑盒自动化引擎,解决无 API、无源码应用的自动操作问题。

Stars: 0 | Forks: 0

👾 Project Spectre

Electron UI 自动化引擎


RPA · 计算机视觉 · 逆向工程 · DirectInput · WebSocket 拦截
构建于第三方 Electron 应用之上。无源代码访问权限。100% 外部操作。


[![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white)](https://python.org) [![OpenCV](https://img.shields.io/badge/OpenCV-Computer%20Vision-5C3EE8?style=flat-square&logo=opencv&logoColor=white)](https://opencv.org) [![DirectInput](https://img.shields.io/badge/DirectInput-Low%20Level%20Input-555?style=flat-square&logo=windows&logoColor=white)](https://chromedevtools.github.io/devtools-protocol/) [![CDP](https://img.shields.io/badge/CDP-WebSocket%20Intercept-4285F4?style=flat-square&logo=googlechrome&logoColor=white)](https://chromedevtools.github.io/devtools-protocol/)
## 问题背景 有一个基于 Electron 的桌面应用程序,其操作流程全靠手动,既重复又缓慢。没有公开的 API。没有内部文档。也无法访问源代码。 显而易见的解决方案是将其自动化。而有趣的解决方案则是从外部进行操作,将其视为一个黑盒,仅利用系统暴露出来的信息:屏幕上的像素、输入事件以及内部网络流量。 **Project Spectre** 就是这个解决方案。 ## 它能做什么? - 实时捕获并分析屏幕,通过颜色和形状检测对象(HSV + 轮廓) - 根据每一帧画面中视觉检测到的内容,做出自主决策 - 通过 DirectInput 在硬件层级注入移动和点击指令,绕过操作系统的抽象层 - 反序列化专有的二进制文件(`.XYF`),以读取并遵循动态的导航路径 - 通过 Chrome DevTools Protocol 拦截应用的内部 WebSocket 流量,以实时审计数据 ## 架构 ### 1. 计算机视觉 - OpenCV + HSV 引擎使用 `mss` 以尽可能高的速度捕获每一帧。它将其转换为 HSV 颜色空间,以便通过颜色范围精确隔离出感兴趣的元素,应用形态学掩码来清理视觉噪点,并计算轮廓和矩,从而对屏幕上的目标进行地理定位。 ``` hsv = cv2.cvtColor(bgr, cv2.COLOR_BGR2HSV) mask = cv2.inRange(hsv, BLANCO_MIN, BLANCO_MAX) mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel) cnts, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) ``` 检测过程会在质心周围 30px 的半径范围内,使用第二层颜色(橙色)掩码来验证每个候选对象,从而精确消除误检。 ### 2. .XYF 解析器 - 二进制反序列化 该应用程序使用专有的 `.XYF` 格式来存储导航坐标。通过对该格式进行逆向工程,解析器使用 `struct` 以 Little-Endian 方式读取坐标对,并验证范围以丢弃损坏的数据。 ``` def cargar_coords(path): data = open(path, 'rb').read() coords = [] for i in range(0, len(data), 8): if i + 8 <= len(data): x, y = struct.unpack(' *[Tomas Guzman](https://github.com/tomasgz7)*
标签:Electron, OpenCV, RPA, UI自动化, WebSocket拦截, 云资产清单, 计算机视觉, 逆向工具, 逆向工程