BinSentry 自研二进制哨兵调试引擎接口规范

微软技术分享 微软技术分享 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

BinSentry 二进制哨兵,由 LYSHARK 独立自研,是一款运行于 Windows 平台的二进制动态调试引擎。该调试引擎从零手写开发,C++ 代码 2 万余行,实现 200 + 调试方法;原生采用 CMD 命令行 HTTP 服务器架构,专为 AI Agent 打造。配合配套 AI 智能体,能够对二进制文件、木马等恶意样本进行深层次分析,是二进制样本研究的实用工具。

哨兵可以部署到任意的虚拟机沙盒之中,并可以搭载目前流行的jev等大模型产品,AI驱动速度有质的提升,是Windows平台下AI动态调试的优质项目。

使用说明

无会话

#接口params(JSON)期望
1SystemInfo{}ok=true, 返回系统信息
2ProcessList{}ok=true, 进程列表
3EnumErrorCodes{}ok=true, 错误码表
4EnumExceptions{}ok=true, 异常码表
5EnumWindows{"pid":4}ok=true, 窗口枚举完成
6IsProcessElevated{}ok=true, 返回是否提权
7ClearLog{}ok=true, 日志已清空
8SaveLog{"path":"E:\LyDebugger 2.3\x86\Release\_full_log.txt"}ok=true, 日志已保存
9Logs{}ok=true, 日志查询
10Help{}ok=true
11GetJIT{}ok=true, JIT配置
12SetJIT{"path":"C:\LyDebugger\x86\LyDebugger.exe -- -p %ld -e %ld"}ok=true
13GetCommandLine{}ok=true
14SetCommandLine{"args":"--test-arg"}ok=true, 下次启动生效
15SetBPXOptions{"option":"FASTRESUME","enable":1}ok=true, 位掩码
16SetExceptionBPX{"code":"0xC0000005"}ok=true, 异常断点已设
17DelExceptionBPX{"code":"0xC0000005"}ok=true, 已删除
18GetExceptionBPXList{}ok=true, 列表
19SetDllBreakPoint{"dll":"test.dll"}ok=true
20DelDllBreakPoint{"dll":"test.dll"}ok=true
21GetDllBreakPoints{}ok=true
22SetVar{"name":"testvar","value":"0x1234"}ok=true
23DelVar{"name":"testvar"}ok=true
24GetVars{}ok=true, 数量
25AddArgument{"start":"0x009015C0","end":"0x00901600","name":"func1"}ok=true
26DelArgument{"start":"0x009015C0"}ok=true
27GetArguments{}ok=true
28GetComments{}ok=true
29GetLabels{}ok=true
30GetBookMarks{}ok=true
31Functions{}ok=true
32ShowBreakPoint{}ok=true, 软断点数量
33ShowHbreakPoint{}ok=true, 硬断点数量
34ShowMemBreakPoint{}ok=true, 内存断点数量
35ShowApiBreakPoint{}ok=true, API断点数量
36LoadDatabase{"path":"E:\LyDebugger 2.3\x86\Release\_dbg.dat"}ok=true
37SaveDatabase{"path":"E:\LyDebugger 2.3\x86\Release\_dbg.dat"}ok=true

启动会话

#接口params(JSON)期望
1Debug{"path":"E:\LyDebugger 2.3\x86\Win32Project1.exe","args":"","cwd":"E:\LyDebugger 2.3\x86\Release"}ok=true, 返回pid/tid
2SetDebug"Logs"ok=true (params传命令字符串)
3RunToUserCode{}ok=true, 设OEP断点运行到用户代码
4Register{}EIP==0x009015BB

停止态-基础

#接口params(JSON)期望
1ProcessInfo{}ok=true
2Threads{}ok=true, 取第一个threadId作TID
3ThreadInfo{"tid":<Threads返回的threadId>}ok=true
4GetActiveThread{}ok=true
5SetActiveThread{"tid":<Threads返回的threadId>}ok=true
6Register{}ok=true
7SetRegister{"reg":"eax","value":"0x12345678"}ok=true, 再设回0
8GetPageRights{"address":"0x009015BB"}ok=true
9SetPageRights{"address":"0x009015BB","protect":"RWX"}ok=true, 改后还原protect=0x20
10Modules{}ok=true
11ModuleInfo{"module":"Win32Project1.exe"}ok=true
12Sections{"module":"Win32Project1.exe"}ok=true
13PEInfo{"path":"E:\LyDebugger 2.3\x86\Win32Project1.exe"}ok=true, ImageBase=0x400000 OEP=0x15BB
14RichHeader{"module":"Win32Project1.exe"}ok=true
15TLSCallbacks{"module":"Win32Project1.exe"}ok=true (无TLS返回error字段)
16RelocationList{"module":"Win32Project1.exe"}ok=true
17DebugDirectory{"module":"Win32Project1.exe"}ok=true
18ImportList{"module":"Win32Project1.exe"}ok=true
19ExportList{"module":"kernel32.dll"}ok=true
20GetImportAddress{"module":"Win32Project1.exe","name":"MessageBoxA"}ok=true
21GetExportAddress{"module":"kernel32.dll","name":"LoadLibraryA"}ok=true
22AddrToModule{"address":"0x009015BB"}ok=true
23GetSectionData{"module":"Win32Project1.exe","name":".text"}ok=true
24GetSectionInfo{"module":"Win32Project1.exe","name":".text"}ok=true
25Symbol{"expr":"Win32Project1.exe+0x15BB"}ok=true
26GetSymbolInfo{"address":"0x009015BB"}ok=true
27GetFunctionSize{"address":"0x009015BB"}ok=true
28Heaps{}ok=true
29Handles{"max":20}ok=true
30SEHList{}ok=true
31MemoryInfo{"address":"0x009015BB"}ok=true
32Regions{}ok=true
33Memory{"address":"0x009015BB","size":16}ok=true
34ReadMemoryValue{"address":"0x009015BB","size":4}ok=true
35WriteMemory{"address":"0x009015BB","hex":"CC"}ok=true, 再写回E8
36GetString{"address":"0x00901000","max":64,"type":"ascii"}ok=true, JSON可解析
37GetOpcodeSize{"address":"0x009015BB"}ok=true
38DisassembleAt{"address":"0x009015BB","count":5}ok=true
39Dissasembler{"address":"0x009015BB","count":5}ok=true
40GetBranchTarget{"address":"0x009015BB"}ok=true
41Assemble{"instr":"mov eax, 1","cip":"0x009015C0"}ok=true
42AssembleAt{"address":"0x00901050","instr":"nop"}ok=true
43MatchPattern{"address":"0x009015BB","pattern":"E8","size":64}ok=true
44SearchMemory{"pattern":"E8","start":"0x00901000","size":0x1000}ok=true
45SearchAllMemory{"pattern":"E8","max":5}ok=true
46SearchStrings{"address":"0x00901000","size":0x400}ok=true
47FindRef{"address":"0x009015BB","max":5}ok=true
48xrefs{"address":"0x009015BB","max":5}ok=true
49HashMemory{"address":"0x009015BB","size":16,"algo":"md5"}ok=true
50CallStack{"max":16}ok=true
51Stack{"count":8}ok=true
52StackPush{"value":"0x11223344"}ok=true
53StackPop{}ok=true
54StackPeek{"offset":0}ok=true
55SetFlag{"flag":"ZF","value":0}ok=true
56Eval{"expr":"eip+4"}ok=true
57AllocateMemory{"size":0x1000}ok=true, 记下address作MEM
58SetMemory{"address":MEM,"hex":"9090"}ok=true (在分配区写, 勿写代码区)
59FillMemory{"address":MEM,"size":8,"value":"0x90"}ok=true
60Memcpy{"src":"0x009015BB","dst":"0x"+(MEM+0x100),"size":5}ok=true
61FreeMemory{"address":MEM}ok=true
62VaToFileOffset{"address":"0x009015BB"}ok=true
63FileOffsetToVa{"offset":"0x9BB"}ok=true
64minidump{"path":"E:\LyDebugger 2.3\x86\Release\_full.dmp"}ok=true
65mnemonicbrief{"address":"0x009015BB"}ok=true
66LastException{}ok=true
67GetThreadLastError{"tid":<Threads返回的threadId>}ok=true
68GetThreadPriority{"tid":<Threads返回的threadId>}ok=true
69SetThreadPriority{"tid":<Threads返回的threadId>,"priority":"NORMAL"}ok=true
70SetThreadName{"tid":<Threads返回的threadId>,"name":"main-thread"}ok=true
71StartTraceRecord{}ok=true
72GetTraceRecord{"count":5}ok=true
73StopTraceRecord{}ok=true
74JmpHistory{}ok=true
75PatchMemory{"address":"0x009015BB","hex":"CC"}ok=true
76Patches{}ok=true
77RevertPatch{"address":"0x009015BB"}ok=true
78DeletePatch{"address":"0x009015BB"}ok=true
79ShowDebugger{}ok=true
80HideDebugger{}ok=true
81gpa{"dll":"kernel32.dll","api":"LoadLibraryA"}ok=true

断点

#接口params(JSON)期望
1SetBreakPoint{"address":"0x009015BB"}ok=true
2GetBreakpointInfo{"address":"0x009015BB"}ok=true
3GetBreakpointType{"address":"0x009015BB"}ok=true
4SetBreakpointName{"address":"0x009015BB","name":"OEP"}ok=true
5SetBreakpointSingleshoot{"address":"0x009015BB","enable":0}ok=true
6SetBreakpointFastResume{"address":"0x009015BB","enable":0}ok=true
7SetBreakpointSilent{"address":"0x009015BB","enable":0}ok=true
8SetBreakpointLog{"address":"0x009015BB","text":"hit OEP"}ok=true
9SetBreakpointLogFile{"address":"0x009015BB","file":"E:\LyDebugger 2.3\x86\Release\_bp.log"}ok=true
10SetBreakpointHitCount{"address":"0x009015BB","count":3}ok=true
11GetBreakpointHitCount{"address":"0x009015BB"}ok=true
12ResetBreakpointHitCount{"address":"0x009015BB"}ok=true
13SetCondBreakPoint{"address":"0x009015BB","cond":"1","thread":TID}ok=true
14DelCondBreakPoint{"address":"0x009015BB"}ok=true
15SetHbreakPoint{"address":"0x009015C0","len":"1","flag":"e"}ok=true (勿与软断点同址)
16DelHbreakPoint{"address":"0x009015C0"}ok=true
17SetMemBreakPoint{"address":"0x009015C0","flag":"e"}ok=true
18DelMemBreakPoint{"address":"0x009015C0"}ok=true
19SetApiBreakPoint{"dll":"kernel32.dll","api":"ExitProcess"}ok=true
20DelApiBreakPoint{"dll":"kernel32.dll","api":"ExitProcess"}ok=true
21SetPageMemory{"address":"0x00901000","protect":"RWX"}ok=true
22DisableBreakpoint{"address":"0x009015BB"}ok=true
23EnableBreakpoint{"address":"0x009015BB"}ok=true
24BreakpointCommand{"address":"0x009015BB","command":""}ok=true
25DelBreakPoint{"address":"0x009015BB"}ok=true, 清场后进P4

执行控制

#接口params(JSON)期望
1Run{}ok=true, 发送后等停止(Status.stopped)
2StepIn{}ok=true, 等停止
3StepOver{}ok=true, 等停止
4StepOut{}ok=true, 等停止
5EStepOver{}ok=true, 等停止
6EStepInto{}ok=true, 等停止(注意是EStepInto非EStepIn)
7EStepOut{}ok=true, 等停止
8Skip{"count":1}ok=true, 保持停止
9InstrUndo{}ok=true, EIP回退一条
10ExecuteCommand"StepOver"ok=true (params传字符串子命令)
11StepUser{}ok=true (用户代码处返回"无需运行")
12RunToUserCode{}ok=true
13TraceInto{"count":3}ok=true, 等停止
14TraceOver{"count":3}ok=true, 等停止
15TraceLine{"address":"0x009015BB"}ok=true, 等停止
16ERun{}ok=true, 等停止
17SERun{}ok=true, 等停止
18DebugContinue{"status":0}ok=true, 等停止
19RunTo{"address":"0x009015BB"}ok=true, 临时断点命中移除

运行态

#接口params(JSON)期望
1SetBreakPoint{"address":"0x009015BB"}ok=true
2Run{}ok=true, 等停止(OEP断点命中)
3PauseAllThreads{}ok=true
4ResumeAllThreads{}ok=true
5ThreadPause{"tid":次线程threadId}ok=true (用非活动线程)
6ThreadResume{"tid":次线程threadId}ok=true
7DelBreakPoint{"address":"0x009015BB"}ok=true
8Run{}ok=true, 目标自由运行
9Pause{}ok=true, 等停止
10SetBreakPoint{"address":"0x009015BB"}ok=true
11AnimateInto{"count":3}ok=true, 1.5s后
12AnimateStop{}ok=true, 等停止
13AnimateOver{"count":3}ok=true, 1.5s后
14AnimateStop{}ok=true, 等停止
15Run{}ok=true, 等停止
16StepSystem{}ok=true (最后测, 会停系统代码)

会话管理

#接口params(JSON)期望
1DumpProcess{"path":"E:\LyDebugger 2.3\x86\Release\_dump.bin","base":"0x00900000","size":0x2000}ok=true
2LoadConfig{"module":"Win32Project1.exe"}ok=true
3SaveDatabase{"path":"E:\LyDebugger 2.3\x86\Release\_dbg2.dat"}ok=true
4LoadDatabase{"path":"E:\LyDebugger 2.3\x86\Release\_dbg2.dat"}ok=true
5Restart{}ok=true, 等2.5s
6Stop{}ok=true, 会话终止
7Debug{"path":"E:\LyDebugger 2.3\x86\Win32Project1.exe","cwd":"E:\LyDebugger 2.3\x86\Release"}ok=true, 重启会话等2.5s
8Detach{}ok=true, 分离会话
...全文

相关推荐

idea2025-free.zip

idea2025-free.zip

qq_45190508

机械三维3D设计图-高炉开铁口钻钎机构系统设计.zip

机械三维3D设计图-高炉开铁口钻钎机构系统设计.zip

ZL4120505

机械三维3D设计图-自动下落吹钉振动盘.zip

机械三维3D设计图-自动下落吹钉振动盘.zip

ZL4120505

基于一致性理论的三机并联独立微网二次控制模型研究(Simulink仿真实现)

内容概要:本文针对三机并联独立微网系统,研究了基于一致性理论的二次控制模型,旨在解决传统一次控制中存在的电压与频率偏差问题,实现微网中多个分布式电源间的协同自治运行。通过引入一致性算法,设计了分布式二次控制策略,能够在无需中央控制器的情况下,实现各分布式单元间的信息交互与状态同步,有效恢复系统电压和频率至额定值,提升微网孤岛运行模式下的电能质量和动态稳定性。研究基于Matlab/Simulink平台构建了完整的三机并联微网仿真模型,详细阐述了控制器架构设计、一致性协议构建及关键参数整定方法,并通过仿真实验验证了所提控制策略在负载突变、机组投切等工况下的有效性、鲁棒性与优越的动态响应性能。该成果为独立微网的分布式协同控制提供了切实可行的技术方案和理论依据。; 适合人群:具备电力系统、电气工程及其自动化、新能源科学与工程等相关专业背景的科研人员与工程技术人员,熟悉MATLAB/Simulink仿真工具,尤其适合从事微电网控制、分布式能源协调优化、智能电网等方向的研究学者与研究生。; 使用场景及目标:① 学习并掌握基于一致性理论的分布式协同控制原理及其在微网二次控制中的具体应用;② 深入理解多智能体系统在电力系统中的建模与仿真方法;③ 为独立微网、海岛微网、偏远地区供电系统等无主站场景下的稳定运行提供控制策略设计参考与仿真验证案例。; 阅读建议:建议读者结合微网基础知识与控制理论进行学习,重点关注一致性协议的数学建模与Simulink模块化实现过程,通过修改仿真参数、测试不同通信拓扑等方式深入理解控制效果的影响因素,并可进一步将该思想拓展至更复杂的多能微网系统研究中。

荔枝科研社

国央企创新负责人如何高效配置内部创新资源与外部转化平台?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论
收藏 已收藏
分享
返回顶部
微软技术分享
微软技术分享 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
微软技术社区 8,544 成员 37,311 内容