findall
在内存页面中查找模式的所有匹配项。
参数
arg1 起始搜索地址。请注意,搜索将在该地址所在内存页面结束时停止。这意味着您无法在不枚举内存页面的情况下搜索整个进程内存。您可以使用 findallmem 在整个内存中搜索模式。
arg2 要搜索的字节模式。此字节模式可以包含通配符 (?),例如:EB0?90??8D。您可以在此处使用字符串格式化。
[arg3] 要搜索的数据大小。默认为内存区域的大小。
结果
$result 设置为匹配项的数量。
示例
在 CIP 所在内存页面中搜索模式的所有匹配项:
findall mem.base(cip), "0FA2 E8 ???????? C3"
在栈内存页面中搜索 cax 值的所有匹配项:
findall mem.base(csp), "{bswap@cax}"
备注
可以通过 ref.addr 表达式函数 在脚本中遍历参考视图的内容:
i = 0
loop:
addr = ref.addr(i)
log "reference {d:i} = {p:addr}"
i++
cmp i, ref.count()
jne loop