
Počas konferencie RSA oznámila Národná bezpečnostná agentúra USA otvorenie prístupu k sade nástrojov pre reverzné inžinierstvo „Ghidra“ , ktorá obsahuje interaktívny disassembler s podporou dekompilácie kódu C a poskytuje výkonné nástroje na analýzu spustiteľných súborov.
Projekt sa vyvíja už takmer 20 rokov a aktívne ho využívajú americké spravodajské služby na identifikáciu markerov, analýzu škodlivého kódu, štúdium rôznych spustiteľných súborov a analýzu kompilovaného kódu.
Z hľadiska možností je produkt porovnateľný s rozšírenou verziou proprietárneho balíka IDA Pro , ale je určený výhradne na analýzu kódu a neobsahuje debugger.
Na druhej strane, Ghidra má podporu pre dekompiláciu do pseudokódu, ktorý sa podobá jazyku C (v IDA je táto funkcia dostupná prostredníctvom pluginov tretích strán), ako aj výkonnejšie nástroje pre spoločnú analýzu spustiteľných súborov.
kľúčové vlastnosti
V rámci súpravy nástrojov pre reverzné inžinierstvo Ghidra nájdeme nasledovné:
- Podpora rôznych súborov pokynov pre procesor a formátov spustiteľných súborov.
- Analýza podpory spustiteľných súborov pre systémy Linux, Windows a macOS.
- Zahŕňa disassembler, assembler, dekompilátor, generátor grafu vykonávania programu, modul na vykonávanie skriptov a veľkú sadu pomocných nástrojov.
- Schopnosť vykonávať v interaktívnych a automatických režimoch.
- Podpora doplnkov s implementáciou nových komponentov.
- Podpora automatizácie akcií a rozširovania existujúcich funkcií pripojením skriptov v jazykoch Java a Python.
- Dostupnosť finančných prostriedkov na tímovú prácu výskumných tímov a koordináciu práce pri reverznom inžinierstve veľmi veľkých projektov.
Je zaujímavé, že niekoľko hodín po vydaní Ghidry balík našiel zraniteľnosť v implementácii ladiaceho režimu (štandardne vypnutý), ktorý otvára sieťový port 18001 pre vzdialené ladenie aplikácií pomocou protokolu JDWP (Java Debug Wire Protocol).
Predvolene sa sieťové pripojenia nadväzovali cez všetky dostupné sieťové rozhrania, a nie cez 127.0.0.1 , čo vám umožňovalo pripojiť sa k Ghidre z iných systémov a spustiť akýkoľvek kód v kontexte aplikácie.
Môžete sa napríklad pripojiť k debuggeru a prerušiť vykonávanie nastavením bodu prerušenia a nahradiť svoj kód ďalším vykonaním pomocou príkazu „vytlačiť nový“, napríklad »
vytlačiť nový java.lang.Runtime (). exec ('/ bin / mkdir / tmp / dir') ».
Okrem toho je možné sledovať vydanie takmer kompletne prepracovanej edície otvoreného interaktívneho disassemblera REDasm 2.0.
Tento program má rozšíriteľnú architektúru, ktorá vám umožňuje pripojiť ovládače pre ďalšie sady pokynov a formáty súborov vo forme modulov. Kód projektu je napísaný v C ++ (rozhranie založené na Qt) a distribuovaný pod licenciou GPLv3. Práce podporované v systémoch Windows a Linux.
Základný balík je kompatibilný s formátmi firmvéru PE, ELF, DEX (Android Dalvik), Sony Playstation, XBox, GameBoy a Nintendo 64. Medzi podporované sady inštrukcií patria x86, x86_64, MIPS, ARMv7, Dalvik a CHIP-8.
Medzi funkcie patrí podpora interaktívnej vizualizácie v štýle IDA, analýza viacvláknových aplikácií , tvorba vizuálneho grafu priebehu, nástroj na spracovanie digitálneho podpisu (ktorý pracuje so súbormi SDB) a nástroje na riadenie projektov.
Ako nainštalovať Ghidru?
Tí, ktorí majú záujem o inštaláciu tejto sady nástrojov pre reverzné inžinierstvo „Ghidra“ , by mali vedieť, že musia mať aspoň nasledovné:
- 4 GB RAM
- 1 GB pre úložisko Kit
- Nechajte si nainštalovať Java 11 Runtime and Development Kit (JDK).
Ak si chcete stiahnuť Ghidru, musíte navštíviť jej oficiálnu webovú stránku, kde si ju môžete stiahnuť. Odkaz je tu.
Keď to urobíte, stačí rozbaliť stiahnutý balík a v adresári nájdete súbor „ghidraRun“, ktorý spustí súpravu.
Ak sa o tom chcete dozvedieť viac, môžete navštíviť nasledujúci odkaz.