aboutsummaryrefslogtreecommitdiffstats
path: root/docs/PROJECTS.md
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-25 00:51:28 +0200
committerblasty <blasty@local>2026-07-25 00:51:28 +0200
commitbe23d13852f4efd062641957b4dcec10622fc0c6 (patch)
treeb2f020fca47fc0afb472d317e91e60ba468a514f /docs/PROJECTS.md
parentsplit: follow the decomp across functions as the listing cursor crosses bounds (diff)
downloadida-tui-be23d13852f4efd062641957b4dcec10622fc0c6.tar.gz
ida-tui-be23d13852f4efd062641957b4dcec10622fc0c6.tar.xz
ida-tui-be23d13852f4efd062641957b4dcec10622fc0c6.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/PROJECTS.md')
0 files changed, 0 insertions, 0 deletions