summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorblasty <peter@haxx.in>2026-07-25 00:51:28 +0200
committerblasty <peter@haxx.in>2026-07-25 00:51:28 +0200
commit5a5f377b8a51f7ee3987a69265580fe986eb351f (patch)
tree18908f34f64b1783ea22fc3885c8ad3136059fa5 /docs
parentsplit: follow the decomp across functions as the listing cursor crosses bounds (diff)
downloadida-tui-5a5f377b8a51f7ee3987a69265580fe986eb351f.tar.gz
ida-tui-5a5f377b8a51f7ee3987a69265580fe986eb351f.tar.xz
ida-tui-5a5f377b8a51f7ee3987a69265580fe986eb351f.zip
strings: browse every string in the binary and jump to it (IDA's Shift+F12)
ida-pro-mcp exposes no full strings list (only a filtered/capped "interesting" survey), so this is a new injected tool plus a filterable browser. * server/patch_server.py: list_strings(offset,count,min_len,refresh) — every literal from idautils.Strings() as {addr,text,len,type}, paginated, with a module-level cache keyed by min_len (rebuilding is O(n) and the browser pages the whole list). * domain: StrLit dataclass + Program.strings() — pages the full list once and caches it. * app: StringsPalette modal (mirrors SymbolPalette) — case-insensitive substring filter with the match highlighted, addr/len/text columns, ↑↓/Enter/Esc. Bodies are sanitized to one printable line (\n/\r/\t escaped, non-printables dropped, long strings clipped) so control chars can't break the layout; display strings are pre-rendered+pre-lowered once since filtering runs per keystroke. Enter jumps to the literal in the unified listing via _goto_ea. Bound to '"' and Shift+F12, plus a "Strings…" command-palette entry. Verified on echo: 150 strings listed with addr/len/text, filtering 'usage' narrows to 2 (case-insensitive), Enter lands the listing cursor on the literal. Pilot `strings` scenario 6/6; full suite 165/2-flake.
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions