aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-01 17:18:57 +0200
committeruser <user@clank>2026-08-01 17:18:57 +0200
commit14ca7c7e5c56c3fdd059d168957a2b2e3dbe504e (patch)
tree7cc8ea9637b7998fc1da3b4e428a1e39537903fa /server
parenttests: trace integration over the RPC socket (45 checks) (diff)
downloadida-tui-14ca7c7e5c56c3fdd059d168957a2b2e3dbe504e.tar.gz
ida-tui-14ca7c7e5c56c3fdd059d168957a2b2e3dbe504e.tar.xz
ida-tui-14ca7c7e5c56c3fdd059d168957a2b2e3dbe504e.zip
rpc: make a raw firmware image drivable (load options, define, bulk symbols)
Opening a headerless blob was the one workflow that fell out of the driving surface entirely, and each gap hid the next: - `pane spawn` couldn't pass --processor/--base/--ida-args, so the pane came up "ready" with zero functions (x86 at 0) and the only way through was to hand-write a project file. It now forwards them to idatui.launch. - c/p/t/T (code, function, ARM<->Thumb, vector scan) existed as listing bindings with no verb, so a driver had to guess raw keys -- and raw keys are swallowed by whatever modal happens to be up. `define {kind,target?}` goes through the app's own edit worker and reports what IDA actually did. - every name went through the typed rename prompt: a navigation (listing page + decompile) plus two prompt round-trips each. A 427-symbol map took tens of minutes of driving. `rename_many {items|file}` hands IDA's rename tool the whole list in one call (371 symbols in 3s) and refreshes the caches and the function table once. drive gains `define <kind> [target...]` and `syms <file.json>`. Verified live against a real pane (tests/test_rawimage_rpc.py, 13 checks: spawn load options, define thumb/func + unknown-kind rejection, rename_many from a file and inline, with resolve/functions readback).
Diffstat (limited to 'server')
0 files changed, 0 insertions, 0 deletions