Skip to content

Relyze - Interactive Binary Disassembler & Diff Cheatsheet

Relyze - Interactive Binary Disassembler & Diff Cheatsheet

Relyze is a commercial interactive disassembler, decompiler, and binary-diffing platform for native software, supporting x86, x64, ARM32, and ARM64. It analyzes PE/ELF binaries into functions and control-flow graphs, provides a decompiler to recover higher-level pseudocode, and includes a strong binary diff engine for comparing two versions of a binary — invaluable for patch analysis and tracking malware variants. It is extensible through a Ruby plugin/scripting framework. A free non-commercial edition is available.

Installation

StepNotes
DownloadGet the installer from the official site (Windows)
EditionsFree (non-commercial) and Professional
First runConfigure the decompiler and analysis options
PluginsRuby scripting available out of the box

Analysis Workflow

ActionDescription
Open a fileAnalyze a PE or ELF binary into functions/CFG
Functions viewBrowse discovered functions
Graph viewControl-flow graph of the selected function
DecompilerRecover C-like pseudocode for a function
StringsList referenced strings and their xrefs
Imports/ExportsInspect the import/export tables
Cross-referencesJump to where a function/data is used
TaskHow
Rename a symbolSelect and rename (propagates to xrefs)
CommentAnnotate instructions/functions
Follow a callDouble-click a call target
Go to addressAddress navigation box
Switch viewToggle disassembly / graph / decompiler

Binary Diffing

Relyze’s diff engine matches functions between two binaries and classifies them as identical, changed, added, or removed — the core workflow for analyzing a security patch or comparing malware samples.

TaskHow
Start a diffOpen binary A, then diff against binary B
Matched functionsReview functions paired across the two builds
Changed functionsFocus on functions whose code differs
Added/removedSee what the patch introduced or deleted
Port annotationsCarry names/comments from one build to the next

Patch analysis pattern: diff the pre-patch and post-patch binaries, focus on the small set of changed functions, and study what the vendor fixed to understand the underlying vulnerability.

Ruby Scripting

Relyze exposes its analysis model to Ruby for automation.

# Conceptual: iterate functions and flag large ones
model = Relyze::Engine.instance.active_model
model.functions.each do |func|
  if func.instructions.length > 500
    puts "Large function at #{func.address.to_s(16)}"
  end
end
UseExample
Bulk renamingApply naming heuristics across functions
Custom analysisDetect patterns (crypto constants, gadgets)
Export dataDump functions/strings to a file
Automate diffingScript comparisons across many samples

Common Workflows

GoalApproach
Understand a security patchDiff pre/post binaries → study changed functions
Triage a native sampleStrings + imports → decompile suspicious functions
Track malware variantsDiff new sample against a known family member
Recover logicUse the decompiler + rename/comment to rebuild intent

Relyze vs Other Disassemblers

AspectRelyzeIDA ProGhidraBinary Ninja
DecompilerYesYes (Hex-Rays)YesYes
Binary diffBuilt-inAdd-on (BinDiff)PluginsPlugins
ScriptingRubyPython/IDCJava/PythonPython
CostFree + ProCommercialFreeCommercial

Resources