allthingsida/idasql-skills/storage

Claude Code and agent skill by allthingsida/idasql-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Persistent key-value storage in IDA databases. Use when asked to store metadata, track progress, or persist session state via netnode_kv.

Install

npx vskill@latest install allthingsida/idasql-skills/storage

SKILL.md

Performance Rules

OperationComplexityNotes
WHERE key = '...'O(1)IDA's netnode hashval_long() — always use exact key lookup
WHERE key LIKE 'prefix%'O(n)Scans all entries; acceptable for small datasets
SELECT * FROM netnode_kvO(n)Full netnode scan; fine for typical use (dozens to hundreds of entries)

Key rules:

  • Exact key lookup (WHERE key = '...') is O(1) — this is the preferred access pattern.
  • Prefix scans (LIKE 'prefix%') iterate all entries but are fast for typical netnode sizes.
  • netnode_kv is stored inside the IDB file — it persists automatically with save_database().

Advanced Storage Patterns

JSON-based progress tracking

Store structured analysis state as JSON for richer querying:

sql
-- Store progress with structured metadata
INSERT OR REPLACE INTO netnode_kv(key, value)
VALUES('progress:overview', json_object(
'total_funcs', (SELECT COUNT(*) FROM funcs),
'named_funcs', (SELECT COUNT(*) FROM funcs WHERE name NOT LIKE 'sub_%'),
'timestamp', datetime('now')
));
-- Read and parse progress
SELECT json_extract(value, '$.total_funcs') AS total,
json_extract(value, '$.named_funcs') AS named,
json_extract(value, '$.timestamp') AS ts
FROM netnode_kv WHERE key = 'progress:overview';
Per-function annotation status tracking

Track which functions have been annotated and what was done:

sql
-- Mark a function as annotated
INSERT OR REPLACE INTO netnode_kv(key, value)
VALUES('re_source:' || printf('0x%X', 0x401000),
json_object('status', 'done', 'summary', 'DriverEntry init',
'analyst', 'alice', 'date', date('now')));
-- Find unannotated functions by joining with funcs
SELECT f.name, printf('0x%X', f.addr) AS addr
FROM funcs f
WHERE f.name NOT LIKE 'sub_%'
AND NOT EXISTS (
SELECT 1 FROM netnode_kv
WHERE key = 're_source:' || printf('0x%X', f.addr)
)
ORDER BY f.size DESC
LIMIT 20;
Naming conventions for keys

Use a namespace:entity:id format for organized storage:

re_source:0x401000 → per-function annotation status
config:string_minlen → analysis configuration
snapshot:2024-01-15 → point-in-time analysis snapshot
tag:crypto:0x401000 → function tags/categories
sql
-- List all keys in a namespace
SELECT key, value FROM netnode_kv WHERE key LIKE 'tag:crypto:%';
-- Count entries per namespace
SELECT SUBSTR(key, 1, INSTR(key, ':') - 1) AS namespace,
COUNT(*) AS entries
FROM netnode_kv
WHERE key LIKE '%:%'
GROUP BY namespace
ORDER BY entries DESC;

See Also

  • annotations — for analyst breadcrumbs that should live in the address space (comments, bookmarks). Use netnode_kv for cross-address session state.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
32
Repository forks
6
7-day trend score
17

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/allthingsida/idasql-skills/storage/badge)](https://verified-skill.com/skills/allthingsida/idasql-skills/storage)

Something wrong with this skill or its page? Tell us.