跳到主要内容

LYSCRIPT自动化控制及调试接口

LyScript 是深度定制于 x32dbg / x64dbg 的自动化调试与逆向分析组件。插件在调试器内起一个 HTTP 服务, 把原生调试能力全部翻译成 JSON 接口,既能用 Python 写脚本批量跑样本,也能通过 MCP 直接交给大模型。

Python API
306
x32 为 259
MCP 工具
198
streamable-http
调试功能类
14
282 个请求类型
SDK 第三方依赖
0
仅用标准库

Download

下载与安装

v3.0.0 · 构建于 2026-10-02 · Windows · 需 VS2013 运行库

调试器插件

385 KB

含 LyScript.dp32 与 LyScript.dp64,按位数拷进调试器 plugins 目录。

下载插件

MCP Server

55 KB

含 main.py、core.py 与内嵌的 x32 / x64 SDK 副本,解压即用。

下载服务端

Python SDK

177 KB

x32dbg / x64dbg 完整源码、setup.py 与已构建的 wheel,方便离线安装或二次打包。

下载源码

Core

核心能力

下面每一条都对应真实存在的接口,可在接口一览中检索到。

调试执行控制

脚本化驱动断点命中、单步与等待,批量样本可无人值守跑完。

OpenDebugRunWaitStepInStepOverDetachDebug

寄存器与标志位

读写通用 / 调试寄存器与全部标志位,cax、cip 等别名让同一份脚本横跨 x86 与 x64。

get_registerset_registerget_cipget_dr0~dr7get_zf

反汇编与汇编

指令级解析、操作数与分支目标计算,也支持把汇编直接写回内存做 Patch 验证。

DisasmOneCodeDisasmCountCodeGetBranchDestinationAssembleCodeHex

模块与节区分析

基址、大小、OEP、节区表、导入表与导出表一次拿到,方便做批量依赖梳理。

GetModuleBaseAddressGetModuleProcAddressGetImportGetExport

内存读写与特征扫描

按 1 / 2 / 4 / 8 字节或整块读写,支持 ?? 通配的特征搜索、批量替换、保护属性修改与远程分配。

Read / WriteReadQwordScanModuleReplacePatternSetProtect

原生脚本与 GUI 联动

下发 x64dbg 原生脚本命令,并把日志、注释、标签写回 GUI —— 自动化与人工复查在同一份工程里完成。

Script.RunCmdGui.SetCommentGui.LogGui.SetLabel

API Reference

接口一览

清单由 x32dbg / x64dbg 包源码自动提取, 共 306 个 x64 接口、 259 个 x32 接口、16 个类,输入关键词即可检索。

命中 0 项
没有匹配的接口,换个关键词试试

签名中省略了统一的 timeout 参数(默认 5.0 秒)。

MCP · AI

让大模型亲手去调试

MCP Server 把 SDK 的每个能力包装成标准 MCP 工具,共 198 个。模型可以自己打开样本、下断点、跑起来、读寄存器、翻内存,再把结论讲给你听。

198 个工具覆盖

从执行控制到符号解析,x64dbg 的能力几乎被完整映射为可被模型调用的工具。

调试执行控制 13 模块与节区 26 内存操作 35 寄存器与标志位 27 断点管理 10 GUI 标注 18 反汇编与汇编 11 进程与线程 8 原生脚本 6 书签 / 注释 / 标签 36 系统与架构探测 5 杂项 3

启动服务端

PowerShell / CMD
CMD> pip install x32dbg x64dbg
CMD> pip install fastmcp==3.4.7
CMD> cd MCPServer
CMD> python main.py
[*] 成功初始化MCP服务

客户端配置

以 streamable-http 传输运行,默认 127.0.0.1:8001,挂载路径 /mcp。

mcpServers
{
  "mcpServers": {
    "lyscript": {
      "type": "streamable-http",
      "url": "http://127.0.0.1:8001/mcp"
    }
  }
}

所有调试工具都带 arch 参数(x32 / x64 / auto)。x32 与 x64 同时在线时必须显式指定,否则服务端不会替你猜测。

Quick Start

快速上手

一个最小可运行示例:连上调试器、载入样本、取出目标 API 地址。换成 x64dbg 包名即可切换到 64 位调试。

demo_lyscript.py
from x32dbg import Config, BaseHttpClient
from x32dbg import Debugger, Dissassembly, Module, Memory, Gui

if __name__ == "__main__":
    # 连接调试器内的 LyScript HTTP 服务(默认 127.0.0.1:8000)
    config = Config(address="127.0.0.1", port=8000)
    print(config.is_server_available())

    # debug=True 会打印完整的请求与响应报文
    http   = BaseHttpClient(config, debug=True)
    dbg    = Debugger(http)
    disasm = Dissassembly(http)
    mod    = Module(http)
    mem    = Memory(http)
    gui    = Gui(http)

    # 载入样本,并取目标 API 地址
    dbg.OpenDebug(r"C:\demo.exe")
    target = mod.GetModuleProcAddress("kernel32.dll", "CreateFileW")
    print(target)
零依赖

SDK 只用标准库 http.client / json / socket。

跨平台寄存器别名

get_cip / get_cax 让同一份脚本同时跑 x86 与 x64。

不装 SDK 也行

任何能发 HTTP 的语言都能直接驱动调试器。