用途:grep 是 IDASQL 的实体搜索入口,用于在深入交叉引用、反编译或类型工作前,按名称发现命名的函数、标签、段、结构体、枚举和成员。
主要能力:以表形式暴露命名实体,行字段包含 name、kind、addr、ordinal、parent_name、full_name;常见 kind 有 function、label、segment、struct、union、enum、member、enum_member。可用普通 SQL 过滤、排序、分组、连接和分页。
使用方式:通过 SQL 查询该表,pattern 为匹配模式。匹配不区分大小写,纯文本为包含匹配,% 匹配任意子串,_ 匹配单字符,* 会被规范化为 %;空模式不返回行。这不是正则,也与 byte_search 无关。示例:SELECT name, kind, addr FROM grep WHERE pattern = 'main' ORDER BY kind, name LIMIT 20;也可加 kind 条件、用 LIMIT/OFFSET 分页,或与 funcs 等表 JOIN 获取更丰富元数据。
适用场景:按名称找候选函数、按惯例找类型、查找某父类型下的成员,并作为交叉引用/反编译/类型工作流的起点。比较:查字符串用 strings,查原始字节或操作码用 byte_search,发现后问“谁引用了它”用 xrefs。
限制:仅覆盖 IDA 发现的命名实体,不用于注释、伪代码文本或字符串内容;命中过多时可加 kind 或收紧前缀;无命中时可放宽模式或转向 imports。