radareorg/radare2-skills/grep

Claude Code and agent skill by radareorg/radare2-skills

Trust tier 3
  • community
Source check pending

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

Search radare2 named entities by pattern via r2xsql. Use to find functions, flags, imports, exports, sections, or comments matching a name pattern across all kinds in a single query, or via the `entities` view (r2xsql's own kind vocabulary, not a family-ratified one) for a filter-only, non-pattern lookup.

Install

npx vskill@latest install radareorg/radare2-skills/grep

SKILL.md

When to use

Pick this skill when you don't yet know what kind of thing you're looking for — you have a name (or part of one) and want every place in the binary that matches.

For typed lookups (only functions / only strings / only imports), prefer the dedicated disassembly / data skills. For finding callers/callees use xrefs.

Tables

tablesourcecolumns
grepcompositekind, name, full_name, parent_name, addr, pattern*
entitiesview over grepkind, name, full_name, parent_name, addr (no pattern)

pattern is an input-only pseudo-column: it's empty on a plain SELECT *, but WHERE pattern = '<glob>' filters by name (see below).

grep is a virtual composite over funcs, flags, imports, entries, sections, and comments. kind is the source table (singular: func, flag, import, export, section, comment). full_name is the parent!name form for imports (e.g. kernel32.dll!CreateFileW); for every other kind it equals name. parent_name is the owning library for imports (from module) and is empty for all other kinds.

Pattern semantics

Pattern rules:

WHERE clausesemantics
WHERE pattern = 'Create%'SQL LIKE prefix match
WHERE pattern = '%Decrypt%'SQL LIKE substring
WHERE pattern = 'foo'case-insensitive substring
WHERE name LIKE '...' OR name = ...explicit per-column predicates

The pattern pseudo-column is the convenient one — r2xsql matches it (case-insensitively) against both name and full_name. A wildcard-free value is treated as a substring; values containing %/_ are anchored SQL-LIKE globs. The match runs inside r2xsql's iterator, so the filter is applied without materialising the full composite into the SQLite cache.

Common queries

sql
-- everything mentioning "decrypt"
SELECT kind, name, addr FROM grep WHERE pattern = '%decrypt%';
-- only function symbols starting with "sub_"
SELECT kind, name FROM grep
WHERE pattern = 'sub_%' AND kind = 'func';
-- imports + exports referencing crypto
SELECT kind, name, parent_name FROM grep
WHERE pattern = '%Crypt%' AND kind IN ('import','export');
-- every import from a specific library
SELECT addr, name FROM grep
WHERE kind = 'import' AND parent_name = 'kernel32.dll';

Sorting / counting

sql
-- how many of each kind match?
SELECT kind, COUNT(*) AS n FROM grep WHERE pattern = '%http%' GROUP BY kind;

Caveats

  • addr is 0 for entities that aren't location-bound (most aren't —

funcs, imports, etc. all have addresses, but a section's start_addr may be 0 for headerless segments, so its grep row's addr is 0 too).

  • Composite tables don't support UPDATE/DELETE; route writes

through the typed tables (flags, comments) and use the annotations skill.

entities — the same rows under the family-recognizable name

entities is a read-only view: SELECT kind, name, full_name, parent_name, addr FROM grep — same rows as grep, minus the input-only pattern pseudo-column. It exists so a query expecting a table literally named entities (the name the sibling analysis tools use for this concept) finds one here too.

This is r2xsql's own vocabulary, not a family-ratified one — say so, don't imply portability. kind carries the exact same values grep already does (func / flag / import / export / section / comment). No vocabulary has been agreed across the tool family yet, and this view was shipped as a deliberate, recorded deviation rather than waiting on that agreement or inventing a "standard" unilaterally from r2xsql. A query written against a sibling tool's entities/kind spelling (function, symbol, segment, string, type, …) will match zero rows here — always use r2xsql's own values.

sql
-- every named entity, no pattern filter
SELECT kind, name, addr FROM entities ORDER BY kind, name;
-- functions, using r2xsql's own spelling
SELECT name, addr FROM entities WHERE kind = 'func';

Need the pattern pushdown? Query grep directly — entities does not carry that pseudo-column.

Security

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

Quality evaluation

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

Source

Popularity

7-day trend score
0

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/radareorg/radare2-skills/grep/badge)](https://verified-skill.com/skills/radareorg/radare2-skills/grep)

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