SuperAPI AI 工具集

idapython

编程与开发

查看项目

更新于 10-15 16:47

技能介绍

用途:在 idasql 环境中直接运行 IDAPython,用于 SQL 表面不足以完成任务、需要访问 IDA SDK API 的场景。

主要能力:提供两个 SQL 函数。idapython_snippet(code[, sandbox]) 执行 Python 片段并返回捕获的输出文本;idapython_file(path[, sandbox]) 执行 Python 文件并返回捕获的输出文本。

使用方式与限制:Python 执行默认关闭,需执行 PRAGMA idasql.enable_idapython = 1; 开启。捕获输出默认无上限,可设置字节上限,例如 PRAGMA idasql.idapython_output_max = 65536; 设为 0 恢复无上限;超出上限的输出会被丢弃并附截断标记。可用 SELECT * FROM runtime_settings WHERE scope = 'idasql' 确认当前设置。Python 异常会作为 SQL 错误传播。sandbox 参数按 key 隔离并持久化 Python 全局命名空间;不传 sandbox 时使用默认全局命名空间。

示例:SELECT idapython_snippet('print("hello from idapython")'); SELECT idapython_file('C:/temp/script.py');

使用建议:查询、过滤、聚合与跨表分析优先用 SQL;复杂算法、自定义模式匹配、未被 idasql 暴露的 IDA SDK API、UI 自动化和已有脚本可回退到 IDAPython。可先查阅 functions 等 SQL 能力,确认不存在对应函数后再编写脚本。