reverse-cli-anything
开源 · 逆向工程 · Agent 工具

原生代码、内部命令与嵌入运行时#

English · 工程手册

选择能保持业务一致性的入口#

依次调查可用公开自动化、内部命令分发、原生服务及前端业务处理器。这是搜索倾向,不是所有软件的固定优先级。底层函数虽容易调用,却可能漏掉项目登记、素材归属、脏状态或导出准备。

内部帮助提供语法线索,不证明每种会话模式都支持。先在目标模式下试只读命令;外部会话被拒绝时,追踪真实前端如何创建业务上下文,不强行改动语义未明的模式标志。

应用区分创建、注册、激活与销毁时,将它们分别建模为生命周期转换。每次转换后重新确认所属上下文及就绪状态,再使用取得的对象。

ABI 记录#

对每个采用函数记录模块哈希、RVA/符号、指针宽度、ABI、接收对象、返回/错误约定、参数大小对齐、编码及所有权。只有固定构建才能将 RVA 加到运行模块基址;反修饰签名或猜测偏移需要运行证据。

缓冲区寿命必须覆盖原生消费者的真实使用期,记录字符串是复制还是借用、结果如何释放、回调是否超过发起调用的寿命。不要混淆 C++ 字符串、Qt 值、WinRT 句柄和普通 UTF-8 指针。

依据元数据和反编译调用方设计有限实验。独立拥有的服务适合单次助手;业务对象或回调超出 CLI 进程寿命时使用持久会话。持久宿主应串行写入并拒绝过期会话。

线程与前端协调#

通过软件已有机制调度到正确线程。UI 线程不能阻塞等待还需要同一事件循环处理的完成事件。接受请求、创建任务、任务完成应分别观察。

改变活动上下文后查询业务身份及就绪状态。命令承诺可见同步时,补齐所需激活和通知路径,并核对相应视图状态。

导出是一段流程#

导出可能包含准备、参数、任务创建、任务专属终态事件、后处理和发布。完成信号绑定请求任务及输出路径,不能接受旧文件、其他任务事件或尚在写入的文件存在作为成功。

先验收临时输出再发布,导出后重新检查源工程;后处理可能在渲染成功之后修改工程。确需窄范围运行时保护时,记录固定模块、具体拦截行为、恢复过程及证据,避免广泛压制应用回调。

脚本和协议路线#

打包脚本需要从工具定义追踪消息传输直到活动处理器;Bundle 中有函数名不代表可达。记录项目/会话路由和异步确认。

IPC 需关联请求 ID 并核对端点身份;文件格式路线需处理编辑器并发写入、原生序列化及重载语义。离线文件修改可以有效,但应与实时编辑区分。数据库可读不代表适合直接写入。

正式接口保持聚焦#

任意调用探针留在研究目录。交付稳定选择器和参数校验后的业务命令,明确拒绝不支持属性或模式,不静默忽略。使用 CLI 不应要求 Agent 知道函数地址。

在 GitHub 查看本页源文档