Linux cli command radiff2
3 minute read
NAME 🖥️ radiff2 🖥️
binary diffing utility
SYNOPSIS
radiff2 [-1abcCdeGhijnropqsSxuUvVzZ] [-A[A]] [-B #] [-g sym] [-m graph_mode][-t %] file file
DESCRIPTION
radiff2 is a tool from the radare2 suite designed for binary diffing code and data.
It supports a wide range of formats and features, including architecture and bits specification, delta diffing, graph diffing, and more.
OPTIONS
-1
Output in Generic binary DIFF (0xd1ffd1ff magic header).
-a [arch]
Specify architecture plugin to use (x86, arm, etc.).
-A [-A]
Run aaa or aaaa after loading each binary (see -C).
-b [bits]
Specify register size for architecture (16 (thumb), 32, 64, etc.).
-B [baddr]
Define the base address to add the offsets when listing.
-c
Count of changes.
-C
Graphdiff code (columns: off-A, match-ratio, off-B) (see -A).
-d
Use delta diffing.
-D
Show disasm instead of hexpairs.
-e [k=v]
Set eval config var value for all RCore instances.
-g [arg]
Graph diff of [sym] or functions in [off1,off2].
-G [cmd]
Run an r2 command on every RCore instance created.
-i [ifscm]
Diff imports | fields | symbols | classes | methods.
-j
Output in JSON format.
-m [mode]
Choose the graph output mode (aditsjJ).
-n
Print bare addresses only (diff.bare=1).
-O
Code diffing with opcode bytes only.
-p
Use physical addressing (io.va=false) (only for radiff2 -AC).
-q
Quiet mode (disable colors, reduce output).
-r
Output in radare commands.
-s
Compute edit distance (no substitution, Eugene W. Myers O(ND) diff algorithm).
-ss
Compute Levenshtein edit distance (substitution is allowed, O(N^2)).
-S [name]
Sort code diff (name, namelen, addr, size, type, dist) (only for -C or -g).
-t [0-100]
Set threshold for code diff (default is 70%).
-T
Analyze files in threads (EXPERIMENTAL, 30% faster and crashy).
-u
Unified output (—+++).
-U
Unified output using system ‘diff’.
-v
Show version information.
-V
Be verbose (current only for -s).
-x
Show two-column hexdump diffing.
-X
Show two-column hexII diffing.
-z
Diff on extracted strings.
-Z
Diff code comparing zignatures.
GRAPH OUTPUT FORMATS (-m [mode])
.
default is ASCII art.
s
r2 commands.
d
Graphviz dot.
g
Graph Modelling Language (gml).
j
JSON.
J
JSON with disarm.
k
sdb key-value.
t
Tiny ascii art.
i
Interactive ascii art.
USAGE EXAMPLES
Comparing two binaries
radiff2 bin1 bin2
Using graph diffing to compare functions by name
radiff2 -g main bin1 bin2
Counting the number of changes between two binaries
radiff2 -c bin1 bin2
Outputting the diff in a unified format
radiff2 -u bin1 bin2
Comparing the opcodes of two functions
radiff2 -O bin1 bin2
‘C’ COMMAND IN R2
The ‘c’ command in r2 is used for various comparison operations within data inside the same file. Here are some examples of its usage:
Compare a plain string with escaped chars
c “string to compare”
Compare byte at a specific address with current offset
c1 0x100
Compare block size bytes from current offset and the 0x100 offset
cc 0x100
Unified diff of disassembly from current seek and given address
cud 0x200 @ 0x100
Compare memory hexdumps in unified diff format
cu 0x100 @ 0x200
For more detailed usage of the ‘c’ command, refer to the `c[?dfx] [argument]` help section.
SEE ALSO
radare2(1)
AUTHOR
pancake <[email protected]>
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
█║▌│║█║▌★ KALI ★ PARROT ★ DEBIAN 🔴 PENTESTING ★ HACKING ★ █║▌│║█║▌
██╗ ██╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗
████████╗██╔══██╗██╔═══██╗╚██╗██╔╝██╔════╝██╔══██╗
╚██╔═██╔╝██║ ██║██║ ██║ ╚███╔╝ █████╗ ██║ ██║
████████╗██║ ██║██║ ██║ ██╔██╗ ██╔══╝ ██║ ██║
╚██╔═██╔╝██████╔╝╚██████╔╝██╔╝ ██╗███████╗██████╔╝
╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═════╝
█║▌│║█║▌ WITH COMMANDLINE-KUNGFU POWER █║▌│║█║▌
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.