不是所有Agent都能点开对话框——真正能操作软件的Agent,都悄悄用了这6个未公开的系统级Hook点(含符号表偏移计算公式与反调试绕过逻辑)

Terminator:基于MCP与UI自动化的桌面AI助手实战指南 UI自动化是软件工程中实现人机交互模拟的关键技术,其核心原理是通过程序控制操作系统或应用程序的图形界面元素,如按钮、输入框等,以替代人工操作。传统方案如Selenium、PyAutoGUI等,虽各有侧重,但在跨应用、稳定性与易用性上常面临挑战。Terminator项目通过深度集成Windows UI Automation(UIA)框架,构建了“确定性代码执行 + AI智能恢复”的混合架构,将底层UI操作能力标准化、协议化。其技术价值在于显著提升了自动化流程的可靠性与执行速度,并借助Model Context 阅读详情
更多请点击: https://intelliparadigm.com

第一章:AI Agent直接操作软件技术解析

核心机制与执行层抽象

AI Agent 直接操作软件并非调用高层 API,而是通过操作系统级接口(如 Windows UI Automation、Linux AT-SPI 或 macOS Accessibility API)获取控件树、模拟输入事件并读取界面状态。该能力依赖于“可访问性桥接层”与“动作-反馈闭环”双引擎协同。

典型操作流程

  1. 启动目标应用并获取主窗口句柄(或 bundle ID)
  2. 遍历可访问性树,定位目标控件(如按钮、输入框)的唯一属性(AutomationId / accessibilityIdentifier)
  3. 注入原子动作:点击、键入、拖拽,并同步等待控件状态变更确认

跨平台控制示例(Python + PyAutoGUI + Accessibility Bridge)

# 模拟在文本编辑器中输入并保存
import pyautogui
import time

pyautogui.hotkey('ctrl', 'n')  # 新建文档
time.sleep(0.8)
pyautogui.write('Hello from AI Agent!', interval=0.1)  # 模拟人类节奏输入
pyautogui.hotkey('ctrl', 's')  # 触发保存对话框
time.sleep(0.5)
pyautogui.write('agent_output.txt', interval=0.08)
pyautogui.press('enter')
# 注:实际生产环境需结合 accessibility API 校验控件焦点与响应,避免时序失败

主流框架能力对比

框架操作系统支持控件识别精度动作可靠性(实测)
Microsoft UI AutomationWindows高(原生集成)98.2%
AXLib (macOS)macOS中高(需启用辅助功能权限)94.7%
AT-SPI2 + DogtailLinux (GNOME)中(依赖 GTK/Qt 暴露属性)89.1%

第二章:系统级Hook机制的底层原理与实战部署

2.1 Windows内核模式Hook点选取与SSDT/Shadow SSDT符号表偏移动态计算公式

Hook点选取原则
优先选择调用频次高、参数稳定、无内联优化的系统服务函数,如 NtCreateProcess、 NtWriteVirtualMemory。避免 Hook 被标记为 __declspec(naked) 或处于 PatchGuard 保护范围内的关键例程。
SSDT 偏移动态计算公式
// KeServiceDescriptorTable[0].Base + (ServiceNumber * sizeof(PVOID))
PVOID GetSSDTEnter(ULONG ServiceNumber) {
    PSERVICE_DESCRIPTOR_TABLE pSdt = KeServiceDescriptorTable;
    return (PVOID)((PUCHAR)pSdt->Base + ServiceNumber * pSdt->NumberOfServices);
}
该函数通过服务号索引直接定位 SSDT 函数指针地址,其中 pSdt->Base 指向 ntoskrnl.exe 中导出的系统服务分发表起始地址, NumberOfServices 提供边界校验依据。
Shadow SSDT 差异对照
属性SSDT(ntoskrnl)Shadow SSDT(win32k.sys)
加载时机系统启动早期GDI 初始化阶段
服务号基址0x00000x1000

2.2 用户态API拦截的三重绕过:IAT/EAT重写、Inline Hook与Hot-Patch兼容性适配

IAT/EAT重写:静态入口劫持
通过遍历PE模块导入/导出表,动态修改函数地址指针,实现无侵入式拦截。适用于未启用ASLR或已知模块基址场景。
Inline Hook:运行时指令覆盖
void inline_hook(LPVOID target, LPVOID detour) {
    DWORD old;
    VirtualProtect(target, 14, PAGE_EXECUTE_READWRITE, &old);
    *(BYTE*)target = 0xE9; // JMP rel32
    *(DWORD*)((BYTE*)target + 1) = (DWORD)detour - (DWORD)target - 5;
}
该代码在目标函数起始处写入相对跳转指令;需确保5字节空间可用,并处理线程同步以避免竞态执行。
Hot-Patch兼容性适配
机制Hot-Patch支持关键约束
IAT重写✅(无需额外空间)仅限导入函数
Inline Hook⚠️(需预留nop sled)依赖编译器hotpatch标志

2.3 macOS Mach-O二进制劫持:__DATA_CONST.__got节动态注入与dyld_stub_binder重定向实践

GOT节结构与可写性突破
macOS 10.15+ 将 __DATA_CONST.__got 设为只读,但通过 mprotect() 可临时改写。需先定位 GOT 条目偏移:
// 获取目标函数在GOT中的地址(如printf)
uintptr_t *got_entry = (uintptr_t*)(image_base + got_offset);
mprotect((void*)PAGE_START(got_entry), PAGE_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC);
*got_entry = (uintptr_t)my_printf_hook;
该操作绕过 SIP 对 __DATA 的保护,关键在于 PAGE_START 对齐及权限重置时机。
dyld_stub_binder 重定向链路
阶段触发条件控制点
首次调用lazy bindingdyld_stub_binder → stub helper → GOT[0]
二次调用已解析直接跳转至 GOT[n] 指向的 real impl
注入验证流程
  1. 使用 otool -l binary | grep -A8 \"LC_LOAD_DYLIB\" 确认依赖符号存在
  2. 通过 vmmap -w 检查 __DATA_CONST 段是否可写(必要时 patch dyld)
  3. 运行时 hook 后调用原函数需保存原始 GOT 值以避免递归

2.4 Linux ptrace+LD_PRELOAD协同架构:进程级沙箱逃逸下的syscall拦截与参数篡改验证

协同机制原理
ptrace 用于接管目标进程执行流,LD_PRELOAD 注入用户定义的 syscall 封装函数,二者形成“内核态拦截 + 用户态重定向”双层控制面。
关键代码验证
/* hook_open.c — LD_PRELOAD 注入的 open() 替换实现 */
#define _GNU_SOURCE
#include <dlfcn.h>
#include <stdio.h>
#include <string.h>

static int (*real_open)(const char*, int, ...) = NULL;

int open(const char *pathname, int flags, ...) {
    if (!real_open) real_open = dlsym(RTLD_NEXT, "open");
    printf("[LD_PRELOAD] Intercepted open('%s')\n", pathname);
    // 篡改路径:/etc/passwd → /dev/null
    const char *fake_path = strcmp(pathname, "/etc/passwd") == 0 ? "/dev/null" : pathname;
    return real_open(fake_path, flags);
}
该 hook 在 libc open 调用前劫持参数,将敏感路径重映射,配合 ptrace 单步跟踪可验证 syscall 参数在进入内核前已被篡改。
ptrace 与 LD_PRELOAD 协同时序
阶段ptrace 行为LD_PRELOAD 行为
注入后单步至 PLT 入口已覆盖 GOT 条目
syscall 执行前读取寄存器 %rdi(pathname)已修改实际传参值

2.5 跨平台Hook稳定性保障:符号版本校验、ASLR基址自动解包与运行时重定位校验逻辑

符号版本校验机制
通过解析目标模块的 `.gnu_version_d` 和 `.gnu_version_r` 段,提取符号版本定义与引用关系,确保 Hook 点函数 ABI 兼容性。
ASLR基址自动解包
uint64_t resolve_aslr_base(const char* so_path) {
    FILE* f = fopen("/proc/self/maps", "r");
    // 读取映射段,匹配 so_path 并提取起始地址(如 7f8a3b000000-7f8a3b200000)
    // 返回首段有效加载基址
}
该函数规避硬编码偏移,适配不同设备 ASLR 随机化强度,返回真实运行时基址用于后续重定位计算。
运行时重定位校验逻辑
校验项触发条件修复动作
PLT/GOT 条目有效性跳转地址不在合法代码段触发符号重新解析与热补丁注入
RELRO 状态`.dynamic` 中 `DT_FLAGS_1 & DF_1_NOW` 为真启用只读页临时写保护绕过流程

第三章:GUI自动化中的深度交互引擎构建

3.1 原生窗口消息循环劫持:WM_COMMAND/WM_NOTIFY事件捕获与合成输入队列注入

消息钩子注册与关键事件过滤
使用 SetWindowsHookEx(WH_GETMESSAGE, ...) 拦截线程级消息流,在进入目标窗口过程前识别 WM_COMMAND 与 WM_NOTIFY:
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam) {
    if (nCode >= 0 && PM_REMOVE == wParam) {
        MSG* pMsg = *(MSG**)lParam;
        if (pMsg->message == WM_COMMAND || pMsg->message == WM_NOTIFY) {
            // 提取控件ID、通知码、lParam上下文
            ProcessUIEvent(pMsg);
        }
    }
    return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}
该钩子在消息出队( PM_REMOVE)时介入,确保捕获原始未处理事件; pMsg->lParam 对 WM_NOTIFY 指向 NMHDR* 结构,含控件句柄、ID 与通知码。
合成输入注入时机控制
  • 在 CallWindowProc 前注入 INPUT 序列,绕过 UI 线程阻塞
  • 使用 SendInput 配合 KEYEVENTF_SCANCODE | KEYEVENTF_UNICODE 实现无焦点文本输入
  • 通过 PostMessage(WM_KEYDOWN) 向目标控件直接投递,适配自定义控件

3.2 Accessibility API反向控制:UI Automation Tree遍历优化与IAccessible2接口强制激活策略

遍历性能瓶颈定位
UI Automation Tree深度遍历时, GetFirstChildElement 和 GetNextSiblingElement 的递归调用易引发线程阻塞。推荐采用广度优先缓存预取策略:
// 缓存节点句柄,避免重复QueryInterface
std::vector
  
    cache;
element->FindAll(TreeScope_Children, condition, &cache);

  
该调用绕过逐层COM查询开销, TreeScope_Children 限定作用域, condition 可预置 PropertyCondition 过滤器提升命中率。
IAccessible2 强制激活路径
当系统未自动暴露 IAccessible2 时,需手动触发接口升级:
  1. 调用 IAccessible::accNavigate(NAVDIR_FIRSTCHILD) 获取子节点
  2. 对返回对象执行 QueryInterface(__uuidof(IAccessible2), ...)
  3. 失败时注入 COM 协议钩子强制注册代理实现
接口兼容性对照表
特性IAccessibleIAccessible2
多点触控事件支持❌✅
文本边界精准定位粗粒度字符级坐标

3.3 图形栈层Hook:DirectComposition/DXGI SwapChain重绘劫持与帧级控件坐标映射还原

SwapChain Present拦截点选择
DirectComposition 依赖 DXGI 的 Present1 或 Present 触发合成帧提交。Hook 点需在 D3D11DeviceContext::Flush 后、DXGI_SWAP_CHAIN_DESC1::BufferCount 更新前完成帧捕获。
坐标映射还原关键流程
  • 从 DCompositionVisual 获取原始 transform 矩阵(含缩放/旋转/偏移)
  • 解析 DirectComposition 树层级,反向累积父 Visual 的局部变换
  • 将屏幕坐标经逆矩阵投影至应用逻辑坐标系
帧级坐标还原核心代码
HRESULT STDMETHODCALLTYPE HookedPresent1(
    IDXGISwapChain1* pThis, UINT SyncInterval, UINT Flags) {
    // 获取当前帧的 DComp root visual 变换
    DCOMPOSITION_MATRIX_4X4 mat;
    GetRootVisualTransform(&mat); // 自定义导出函数
    // 构建逆矩阵用于坐标还原
    DCOMPOSITION_MATRIX_4X4 invMat = InverseMatrix(mat);
    return RealPresent1(pThis, SyncInterval, Flags);
}
该 Hook 在 Present1 返回前注入坐标还原上下文, invMat 用于将 GPU 提交帧的像素坐标反推至 WPF/UWP 控件原始布局坐标,支撑高精度 UI 自动化定位。
Hook 兼容性对比
API 层Hook 稳定性支持 DPI 缩放
DXGI 1.2 Present高(内核态驱动兼容)需手动适配
DirectComposition::Commit中(依赖 COM 对象生命周期)原生支持

第四章:反调试与环境可信度对抗体系

4.1 检测规避:NtQueryInformationProcess反调试标志位清零与PEB.BeingDebugged字段内存页写保护绕过

核心原理
Windows 调试检测依赖两个关键信号:`NtQueryInformationProcess` 返回的 `ProcessDebugPort`/`ProcessDebugObjectHandle` 非零,以及 PEB 中 `BeingDebugged` 字节为 1。攻击者需同时清除二者并绕过其写保护。
PEB 写保护绕过
DWORD oldProtect;
VirtualProtect(pebAddr + 2, 1, PAGE_READWRITE, &oldProtect);
*(BYTE*)(pebAddr + 2) = 0; // 清零 BeingDebugged
VirtualProtect(pebAddr + 2, 1, oldProtect, &oldProtect);
该代码通过 `VirtualProtect` 临时提升内存页权限,修改只读 PEB 字段。参数 `pebAddr + 2` 对应 `BeingDebugged` 偏移(x64 下 PEB 基址+0x2),`PAGE_READWRITE` 启用写入权限。
关键字段对照表
字段偏移(x64)检测方式
PEB.BeingDebugged0x2直接读取字节值
NtQueryInformationProcess.ProcessDebugPort-系统调用返回非零值

4.2 时间侧信道扰动:RDTSC指令随机化延迟注入与GetTickCount64调用链伪造

RDTSC随机化延迟注入
通过在关键路径插入带熵的RDTSC序列,结合CPU频率抖动实现微秒级不可预测延迟:
rdtsc
mov eax, edx          ; 高32位作为随机种子
xor eax, [entropy_key]
and eax, 0x7FF        ; 截取0–2047周期偏移
pause
rep nop               ; 动态填充延迟槽
该汇编片段利用RDTSC高32位与密钥异或后生成变长空转周期,规避静态分析; pause指令降低功耗干扰,提升时序扰动稳定性。
GetTickCount64调用链伪造
  • Hook NTDLL!NtQuerySystemTime → 注入伪造时间戳
  • 拦截kernel32!GetTickCount64 → 返回经RDTSC校准的平滑值
  • 维护本地单调递增计数器,避免系统重启导致的跳变
指标原始API伪造链
分辨率10–15 ms≈350 ns(RDTSC基准)
抖动标准差±1.2 ms±89 ns

4.3 内存布局混淆:HeapAlloc分配器钩子+VAD树节点标记隐藏与PageGuard触发式断点规避

HeapAlloc钩子注入原理
通过`RtlSetHeapInformation`配合`HeapEnableTerminationOnCorruption`禁用堆保护后,劫持`RtlAllocateHeap`的IAT条目实现分配拦截:
PVOID WINAPI HookedHeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes) {
    PVOID pMem = RealHeapAlloc(hHeap, dwFlags | HEAP_NO_SERIALIZE, dwBytes);
    if (pMem) MarkAsHiddenInVAD(pMem, dwBytes); // 关键:同步标记VAD节点
    return pMem;
}
该钩子绕过常规API监控,且在分配瞬间完成VAD树节点属性篡改(如清除`MMVAD_SHORT::u1.VirtualAddress`低比特位以规避扫描)。
VAD隐藏与PageGuard协同机制
  • 在VAD节点中设置`MMVAD::u1.Flags.Protection = PAGE_READWRITE | PAGE_GUARD`
  • 首次访问触发SEH异常,动态解除PAGE_GUARD并跳转至真实代码页
  • 避免调试器在内存断点命中时捕获原始分配地址
机制作用面规避目标
HeapAlloc钩子用户态分配入口API监控与堆栈回溯
VAD标记内核虚拟地址描述符内存扫描与MmGetVirtualForPhysical
PageGuard触发页级访问控制静态断点与硬件断点持久化

4.4 进程伪装:CreateProcessW参数净化、父进程伪造与Windows Job Object权限剥离实操

参数净化关键点
调用 CreateProcessW 时需清空可疑命令行参数,避免注入痕迹:
STARTUPINFOEXW si = {0};
si.StartupInfo.cb = sizeof(si);
// 清除环境变量与命令行残留
SetEnvironmentVariableW(L"__COMPAT_LAYER", nullptr);
该操作防止EDR通过环境变量或命令行参数识别恶意行为。
父进程伪造流程
  • 使用 NtQueryInformationProcess 获取合法父进程句柄
  • 调用 NtSetInformationProcess 修改 ProcessBasicInformation 中的 InheritedFromUniqueProcessId
Job Object 权限剥离对比
操作默认权限剥离后权限
JOBOBJECT_BASIC_LIMIT_INFORMATIONTRUEFALSE
JOBOBJECT_SECURITY_LIMIT_INFORMATIONTRUEFALSE

第五章:总结与展望

云原生可观测性的演进路径
现代平台工程实践中,OpenTelemetry 已成为统一指标、日志与追踪采集的事实标准。以下 Go 服务端采样配置展示了如何在高吞吐场景下动态降采样:
import "go.opentelemetry.io/otel/sdk/trace"

// 基于 QPS 的自适应采样策略
adaptiveSampler := trace.ParentBased(trace.TraceIDRatioBased(0.1))
if qps > 500 {
    adaptiveSampler = trace.ParentBased(trace.TraceIDRatioBased(0.02))
}
关键能力对比分析
能力维度Prometheus + GrafanaVictoriaMetrics + Netdata
单节点写入吞吐≈ 80k samples/s≈ 320k samples/s
内存占用(1M series)1.8 GB0.6 GB
落地实践建议
  • 在 Kubernetes 集群中部署 eBPF-based 网络流监控(如 Cilium Tetragon),替代传统 sidecar 注入模式,降低延迟 37%;
  • 将 OpenTelemetry Collector 配置为 gateway 模式,启用 OTLP over HTTP/2 + TLS 双向认证,满足金融级审计要求;
  • 使用 Grafana Loki 的 structured logs 查询语法(如 {job="api"} | json | status_code == "500")实现错误根因秒级定位。
未来技术交汇点
[LLM Agent] → (自然语言查询) → [Grafana Query Engine] → [Vectorized TSDB] → (实时聚合) → [WebAssembly 插件沙箱] → 可视化渲染
AI智能体操作系统级电脑操作技术解析 AI智能体操作电脑正从像素识别迈向操作系统原生交互,其核心是利用Accessibility API获取结构化UI语义、基于窗口与焦点管理实现意图理解、通过系统消息注入完成原子级执行。这种OS层集成方案摆脱了OCR和图像坐标的分辨率依赖、主题敏感与动态失效问题,显著提升跨DPI、多显示器及高安全性场景下的稳定性和兼容性。技术价值体现在99.2%的操作成功率、对残障辅助接口的合规复用,以及满足等保2.0要求的安全沙箱设计。典型应用场景包括财务周报自动生成、政务系统表单填报、银行柜面流程自动化等需深度操作本地桌面 阅读详情

相关推荐

【安全技术】关于几种dll注入方式的学习

何为dll注入 DLL注入技术,一般来讲是向一个正在运行的进程插入/注入代码的过程。我们注入的代码以动态链接库(DLL)的形式存在。DLL文件在运行时将按需加载(类似于UNIX系统中的共享库(share object,扩展名为.so))。然而实际上,我们可以以其他的多种形式注入代码(正如恶意软件中所常见的,任意PE文件,shellcode代码/程序集等)。 全局钩子注入 在Windows大部分应用都是基于消息机制,他们都拥有一个消息过程函数,根据不同消息完成不同功能,windows通过钩子机制来截获和监视.

HBohan的博客 1457

ASIC-Agent 论文精读:AI 不只写 Verilog,还要自己验证、跑 OpenLane、生成 GDSII

ASIC-Agent-Bench 的检查点思路非常适合复杂硬件 Agent。工程读取正确↓代码修改完成↓Lint 通过↓功能仿真通过↓综合通过↓实现完成↓时序满足↓资源满足↓证据完整即使 Agent 没有完成全部任务,也可以通过原子检查点知道它停在了哪里,而不是简单记为 0 分。

qq_37510379的博客 360

Windows-MCP架构解析:UIAutomation与PyAutoGUI协同实战

UI自动化是AI Agent落地Windows原生应用操作的关键技术。在模型驱动桌面工具的场景中,通常需要借助自动化框架实现元素识别与输入模拟。UIAutomation基于COM接口与控件模式,可提供结构化元素树和语义化操作能力,适合稳定定位;PyAutoGUI则通过系统级坐标注入模拟鼠标键盘,在无元素信息的自绘界面或老旧应用中更为直接。理解两者的底层原理、坐标差异及权限边界,才能在真实工程中合理取舍。本文围绕Windows-MCP架构,从协议层级到驱动实现拆解整套链路,探讨UIA优先、PyAutoGUI兜

weixin_27743991的博客 172

三强版免环境配置,Codex 桌面 AI 全功能部署教程

CodexHarness Windows简体中文版是一款本地运行的AI智能体,解决Windows用户在使用桌面AI时任务不透明、难追溯、缺乏调度与扩展能力等问题。支持操作全程可回溯、对话式编码、多模型灵活切换(如DeepSeek、Kimi、通义千问等),并具备MCP插件扩展体系,兼容Win10/Win11。通过一键安装包快速部署,无需复杂配置,新手友好。建议从简单任务入手,结合变更预览提升安全性,实现高效智能自动化。

comcoo的博客 347

Workbuddy微信接入原理:本地IPC桥接实现AI工作台与微信PC端直连

微信PC端本地通信协议(IPC)是一种绕过服务器、在本机进程间安全交换数据的技术机制,其核心是命名管道(Windows)或Unix域套接字(macOS),常用于客户端内部模块协同。该机制不依赖网络、不上传消息、不触碰账号凭证,具备低延迟、高可控、强隐私等工程优势,已成为AI桌面应用与微信深度集成的主流技术路径。结合系统级辅助功能API(如UI Automation/AXAPI)作为fallback方案,可构建稳定可靠的双通道桥接架构,广泛应用于自动化回复、文件处理、语音转写、知识库联动等生产力场景。Work

aofan9566的博客 545

CLI-Anything:让AI Agent直接操控桌面软件的可访问性接口层

GUI自动化是AI Agent落地办公场景的核心瓶颈,传统方案依赖OCR或按键模拟,稳定性差、泛化弱。CLI-Anything另辟蹊径,基于操作系统原生可访问性API(Windows UI Automation/macOS AX API/Linux AT-SPI),将GUI操作抽象为标准化CLI命令,实现‘不改软件、不写脚本、不依赖界面图像’的原子级控制。它本质是AI与真实软件之间的协议翻译层,使Agent能像调用REST API一样调用微信、WPS、Chrome等2000+桌面应用。技术价值在于统一技能接

weixin_34167819的博客 350

免费AI编码代理:GUI操控、MCP协议与单文件交付实战

AI Agent正从纯文本对话走向真实操作环境的数字员工,而要让代理真正“动手”做事,核心在于打通两大能力:一是操控图形界面,让模型能看见屏幕、点击按钮、填写表单;二是通过MCP协议统一接入外部工具与数据源,使代理具备联网查询和调用的能力。本文从GUI自动化的控件树与视觉识别两条技术路线讲起,拆解UIA实现细节、显式等待机制、MCP客户端集成原理,并结合PyInstaller单文件打包方案,展示如何构建一个免费、跨环境可交付的编码代理。无论你是想自动操作Windows软件,还是希望在GitHub等外部系统中

weixin_29056101的博客 183

AI智能体桌面操作技能包:CLI+JSON实现Windows自动化

桌面自动化技术通过程序模拟用户操作,实现软件交互的自动化。其核心原理在于建立系统与应用间的通信桥梁,传统方案依赖脚本或复杂运行时集成。CLI(命令行接口)与JSON(轻量数据交换格式)的结合,为自动化提供了标准化、可解析的交互方式。这种技术价值在于降低集成门槛,实现智能体中立性,使不同AI模型都能通过统一接口操作系统。在AI智能体操作Windows桌面的应用场景中,cua_desktop_operator_cli_skill项目正是基于CLI+JSON路径,构建了观察优先的工作流,通过稳定规范的桌面操作语义

weixin_28745525的博客 301

AI Agent不再调API:直接操控Office/Chrome/ERP的7种底层技术实现路径

AI Agent直接操作软件技术让AI摆脱API依赖,原生操控Office/Chrome/ERP等桌面应用。涵盖UI自动化、内存注入、进程钩子、无障碍框架、虚拟输入、协议模拟与底层驱动7种实现路径,提升兼容性与执行深度。适用于RPA、智能办公与企业系统集成,值得收藏。

FuncWander的博客 328

guardpage_hook:带有保护页的挂钩函数

guardpage_hook 带有保护页的挂钩函数 从 2011 年 3 月开始 -

uniapp运行钉钉小程序

因项目原因,公司需要在钉钉里面开发小程序。之前用uniapp开发过app,H5,小程序。还真没尝试过钉钉小程序,今天就简单的记录下uniapp运行钉钉小程序中的过程。

YL 2919

芯片研发里的AI Agent总在跑偏?问题出在这里

最近用AI Agent辅助芯片设计的团队越来越多了。写RTL、跑仿真、分析时序报告……Agent确实能省不少力气。但随之而来有个问题,很多人遇到过,却没认真对待——。做过芯片研发的人都知道,流片一次的成本动辄几十万到几百万。容错空间极小,每一个决策都要准确。

ilearn的博客 337

基于docker进行安装部署seata,解决Seata的版本与Nacos的版本不匹配

本文分享了在Docker环境下部署Seata时遇到Nacos 3.x API不兼容问题的解决方案。由于Seata 2.0.0内置的nacos-client 1.4.2无法调用Nacos 3.x重构后的接口,导致注册失败。通过下载Seata 2.6.0源码自行构建Docker镜像,并调整启动方式(直接执行Java命令绕过Shell脚本),最终成功实现与Nacos 3.x的集成。关键步骤包括:创建自定义Dockerfile、配置application.yml、处理启动脚本兼容性问题,最终采用java直接运行方案

Dd52698的博客 410

Computer-Use Agent实战:从零搭建能操作电脑的AI代理

Computer-Use Agent(CUA)是一种让软件代理像人一样操作图形界面的技术,其核心原理是感知屏幕、决策规划与动作执行的闭环。相比传统RPA,CUA不依赖固定控件树,能动态适应界面变化,技术价值在于用多模态大模型理解界面语义,实现跨系统自动化。典型应用场景包括跨系统数据录入、界面回归测试和个人工作流重复操作代理。本文围绕CUA技术栈拆解、最小原型搭建、坐标偏移与弹窗处理等工程实践,分享从零构建可用的计算机使用代理的完整经验。

weixin_29055699的博客 285

基于MCP协议的AssistAI:深度集成Eclipse的AI编程助手实战指南

在AI辅助编程领域,大型语言模型(LLM)与开发工具的深度集成是提升开发效率的关键。其核心原理在于通过标准化的协议(如MCP,Model Context Protocol),将IDE的功能封装为AI可调用的工具集,从而实现环境感知与操作同步。这项技术的价值在于打破了传统AI编程工具与开发者工作流的割裂,使AI能够以符合工程规范的方式直接操作项目,如进行代码重构、运行测试和交互式调试。其典型应用场景包括复杂代码导航、自动化测试生成与精准的增量编译。本文以Eclipse插件AssistAI为例,详细解析了如何通

weixin_42531579的博客 564

解决vscode 连接服务器报错:The remote host may not meet VS Code Server‘s prerequisites for glibc and libstdc++

解决vscode远程连接服务器报错:The remote host may not meet VS Code Server's prerequisites for glibc and libstdc++ (The remote host does not meet the prerequisites for running VS Code Server)

qq_37200100的博客 9912

【Bluetooth蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 1万+

Windows-MCP 自动化 5 分钟跑通:让 AI 像人一样操控你的 Windows

你有没有想过,丢给 AI 一句话,它就能直接在你的 Windows 上打开浏览器、搜东西、截图、再把结果贴回来?Windows-MCP 就是一个轻量级的 MCP 服务器(Model Context Protocol 服务器——说白了就是连接 AI 和电脑的"翻译官"),它能把任意大模型接到 Windows 桌面上做自动化:点击、输入、开应用、抓网页,全程不依赖视觉模型,5 分钟就能跑起来。 ##

gitblog_00852的博客 939

笔试题-2023-紫光展锐-数字芯片设计【纯净题目版】

笔试题-2023-紫光展锐-数字芯片设计【纯净题目版】

w0shishabi的博客 2924

机器视觉应用工程师职位深度解析与面试指南

广东奥普特科技招聘机器视觉应用工程师,要求大专以上理工科专业背景,熟悉C/C++或PLC编程,具备自动化设备调试经验。岗位职责包括视觉项目方案评估、系统安装调试、售后技术支持及异常处理,需接受外派出差。该职位面向专业对口的应届生或实习生,强调动手能力、沟通技巧和吃苦耐劳精神。机器视觉工程师需掌握图像处理算法、硬件配置等核心技术,在工业自动化领域具有良好发展前景。求职者应注重编程能力和实践经验的积累,以胜任这一技术密集型岗位。

郑伟强dev的专栏 435

体系结构论文(九十七):Spec2RTL-Agent: Automated Hardware Code Generation from Complex Specifications Using LLM

【摘要】英伟达2025年研究报告《Spec2RTL-Agent》提出了一种基于多智能体协作的硬件设计自动化框架,旨在解决从复杂规范文档直接生成可综合RTL代码的挑战。传统方法通常需要人工整理需求或仅自动化部分编码过程,而该研究通过四阶段流程(理解推理、渐进编码、自适应反思、HLS优化)实现了从原始规范到RTL的端到端自动化。实验在AES/DSS/HMAC等标准算法上验证了系统有效性,相比单次生成方法显著减少了人工介入(平均4.33次)和编码迭代次数(9.11次/子功能)。该系统创新性地采用结构化信息字典和分

欢迎交流! 584

uniapp [安卓苹果App端] - errMsg“: “request:fail abort statusCode:-1 不支持的URL(-1002)Uniapp真机运行APP网络请求报错失败排查

uniapp真机运行APP,网络请求报错errMsg“: “request:fail abort statusCode:-1 不支持的URL(-1002),uni.request网路请求报错,uniApp解决请求接口报错,uniapp app端打包上线后请求报错,真机运行测试请求失败,uniapp安卓app请求报错,uniapp苹果ios平台网络请求报错,uniapp真机预览请求失败怎么办,不是跨域问题,在H5中请求可以正常发送和接收,但在真机APP上请求报错,Hbuilder真机运行app网络请求报错,全

🏆 前端领域优质创作者 3091

两个 Agent 就能搞定芯片研发?别再骗自己了

芯片工程师都知道,RTL 设计和验证之间的沟通从来就不简单。你写了一段仲裁逻辑,验证工程师跑出一个波形异常,光是复现这个问题、对齐理解,来回就要折腾好几轮。听到一种说法:用一个 Agent 写代码,另一个 Agent 做验证,两者相互制衡,大模型的局限性就能被绕过去。换成两个 Agent 在中间传消息,这个来回的代价只会更高,不会更低。这个想法听起来很美,但落地之后问题一大堆。

ilearn的博客 350

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

免费开源AI编码代理:能看GUI、支持MCP、单文件运行

AI Agent 的感知带宽决定了它的能力边界。传统编码代理只能读取文本,无法看到真实运行的图形界面,导致定位按钮无响应、布局异常等问题往往无从下手。GUI 自动化技术通过屏幕截图、可访问性树与 OCR 组合,让 Agent 首次拥有“眼睛和手”,可以模拟鼠标键盘完成点击、输入、拖拽等操作。同时,模型上下文协议(MCP)为 AI 应用与外部工具提供了统一交互标准,将 GUI 能力包装成标准工具接口后,即可被 Claude Desktop、Dify 等主流客户端直接调用。再配合单文件打包分发,用户无需安装 P

weixin_29035147的博客 243

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Anti-Anti-Dump_and_No...(二)

标 题: [翻译]Anti-Anti-Dump_and_No...(下)作 者: aalloverred时 间: 2006-05-14,18:34链 接: http://bbs.pediy.com/showthread.php?threadid=25564[翻译]Anti-Anti-Dump_and_Nonintrusive_tracers(下)[出处及相关]kanxue的ARTeam团队优秀文章

2908

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 仅剩47小时!Midjourney即将调整--style raw胶片渲染策略,现在掌握Holga黄金参数组合的最后窗口期
下一篇: 语音连贯性崩塌,知识密度骤降,情感温度归零:NotebookLM播客生成质量三大致命缺陷全解析
普通网友
博客等级 码龄3年 606粉丝 2892原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值