Snažím se naučit používat nástroj BinDiff , ale můžu “ Přišel na to, jak otevřít dva binární soubory pro provedení srovnání. Při procházení jejich manuálu se zdá, že k tomu potřebuji mít IDA Pro.
Mohu použít BinDiff bez IDA Pro (řekněme jen s IDA zdarma)?
Komentáře
- související: Alternativy k BinDiff reverseengineering.stackexchange.com/q/26196/3934 ?
Odpověď
Ano, u Ghidry je to nyní možné.
Nejnovější verze, BinDiff 6 , má experimentální podporu pro demontéra Ghidry. Dodává se s příponou, která umožňuje exportovat demontáž Ghidry do formátu .BinExport potřebného pro diffing.
Požadovaný software
- BinDiff 6 z web zynamics
- Nedávný běh prostředí Java (OpenJDK 11 nebo novější)
- Ghidra 9.1.2 ( https://ghidra-sre.org/releaseNotes_9.1.2.html )
Instalace rozšíření Ghidra
Po instalaci BinDiff vyhledejte „BinExport“ rozšíření ve vaší instalační složce.
Výchozí nastavení jsou
- Windows:
C:\Program Files\BinDiff\extra\ghidra
- Linux:
/opt/bindiff/extra/ghidra
- macOS:
/Applications/BinDiff/Extra/Ghidra
Pokud jste našli ghidra_BinExport.zip
souboru, rozšíření lze nainstalovat jako jakékoli jiné rozšíření Ghidra:
- Spusťte Ghidru a poté vyberte
File
|Install Extensions...
. - Kliknutím na tlačítko
+
přejděte naAdd extension
. -
V
Select Extension
dialog, přejděte do adresáře obsahujícíhoghidra_BinExport.zip
. -
Vyberte soubor .zip soubor a klikněte na
OK
- Kliknutím na
OK
potvrďte a znovu zavřete zprávu o restartu. Poté restartujte Ghidru.
Použití
Tato verze exportéru založeného na Javě pro Ghidru má ve srovnání s nativní verzí C ++ pro IDA Pro následující funkce:
| | Ghidra | IDA | | --------------------------------------- | ------ | --- | | Protocol Buffer based full export | ✓¹ | ✓ | | Statistics text file | - | ✓ | | Text format for debugging | - | ✓ | | BinNavi export into PostgreSQL database | - | ✓ | ¹ No operand trees
Ověření verze instalace
- V Ghidře vyberte
File
|Install Extensions...
. - Ověřte, zda je
BinExport
uveden a má správnýInstall Path
Vyvolání
- V Ghidře otevřete projekt nebo vytvořte nový.
- Pokud to ještě není hotové, otevřete binární soubor, do kterého chcete exportovat nástroj Prohlížeč kódu a spusťte počáteční analýzu Ghidry. Možná budete chtít povolit možnost „agresivní vyhledávač instrukcí“, abyste získali lepší pokrytí exportu.
- V zobrazení projektu klepněte pravým tlačítkem na binární exportovat a vybrat
Export...
- z rozevíracího seznamu vyberte
Binary BinExport (v2) for BinDiff
- vybrat cesta k výstupnímu souboru. Může to být původní název souboru, protože
.BinExport
bude přidán. - Klikněte na
OK
.
BinDiff Exportované soubory
Exportované soubory lze nyní diferencovat a výsledky zobrazit v jejich uživatelském rozhraní:
- Podle výše uvedených pokynů exportujte dva binární soubory. Následující kroky předpokládají
primary.BinExport
asecondary.BinExport
. -
Z příkazového řádku spusťte stroj BinDiff s
bindiff primary.BinExport secondary.BinExport
Tím se vytvoří soubor
primary_vs_secondary.BinDiff
v aktuálním adresáři. Příkazbindiff
by měl být ve vaší systémové cestě. -
Spusťte uživatelské rozhraní BinDiff buď pomocí
bindiff --ui
nebo pomocí spouštěče pro váš operační systém. -
Vytvořte nový pracovní prostor nebo otevřete existující.
-
Vyberte
Diffs
|Add Existing Diff...
. -
Pod
Choose Diff
, vyberteprimary_vs_secondary.BinDiff
vytvořený v kroku 2. -
Klikněte na
OK
, následovanýAdd
. Rozdíl je nyní zobrazen ve stromovém zobrazení vlevo a lze jej otevřít poklepáním. -
K zobrazení grafu volání nebo vývojových grafů spárovaných funkcí běžně použijte BinDiff. .
Open Source
Nakonec je rozšíření BinExport (a také plugin IDA Pro) otevřeným zdrojem a je k dispozici na GitHubu . Značka v11
odpovídá BinDiff 6.
Komentáře
- Děkuji. ' Rád bych se zbavil závislosti na IDA Pro!