Interaktywny dezasembler

Interaktywny dezasembler
Oryginalni autorzy Ilfak Gilfanow
Deweloperzy Hex-Rays
Pierwsze wydanie 0,1 (w fazie rozwoju) 1,0 (stabilnie)
Wersja stabilna
8.2 / grudzień 2022 ; 2 miesiące temu ( 2022-12 )
Napisane w C++
System operacyjny Microsoft Windows , Mac OS X i Linux
Dostępne w angielski , rosyjski
Typ Dezasembler
Licencja Prawnie zastrzeżony
Strona internetowa hex-rays.com / ida-pro /

Interaktywny dezasembler ( IDA ) to dezasembler oprogramowania komputerowego , który generuje kod źródłowy języka asemblera z kodu wykonywalnego maszynowo. Obsługuje różne formaty plików wykonywalnych dla różnych procesorów i systemów operacyjnych . Może być również używany jako debugger dla plików wykonywalnych Windows PE , Mac OS X Mach-O i Linux ELF . A wtyczka dekompilatora dla programów skompilowanych za pomocą kompilatora C / C++ jest dostępna za dodatkową opłatą. Najnowsza pełna wersja IDA Pro jest komercyjna (wersja 8.2 z grudnia 2022 r.), natomiast mniej wydajna wersja jest dostępna do pobrania bezpłatnie (wersja 8.1 z października 2022 r.).

IDA przeprowadza automatyczną analizę kodu, wykorzystując odsyłacze między sekcjami kodu, znajomość parametrów wywołań API i inne informacje. Jednak natura demontażu wyklucza całkowitą dokładność i konieczna jest duża interwencja człowieka; IDA ma interaktywną funkcjonalność, która pomaga usprawnić demontaż. Typowy użytkownik IDA zaczyna od automatycznie generowanej listy demontażu, a następnie konwertuje sekcje z kodu na dane i odwrotnie, zmienia nazwę, dodaje adnotacje i inne informacje do listy, aż stanie się jasne, co robi.

Stworzony jako aplikacja shareware przez Ilfaka Guilfanova , IDA był później sprzedawany jako produkt komercyjny przez belgijską firmę DataRescue, która udoskonaliła go i sprzedawała pod nazwą IDA Pro. W 2005 roku Guilfanov założył Hex-Rays, aby kontynuować rozwój rozszerzenia IDA Hex-Rays Decompiler. W styczniu 2008 roku firma Hex-Rays przejęła rozwój i wsparcie IDA Pro firmy DataRescue.

Skrypty

„Skrypty IDC” umożliwiają rozszerzenie działania deasemblera. Udostępniono kilka pomocnych skryptów, które mogą służyć jako podstawa dla skryptów napisanych przez użytkownika. Najczęściej skrypty służą do dodatkowej modyfikacji generowanego kodu. Na przykład zewnętrzne tablice symboli mogą być ładowane przy użyciu nazw funkcji oryginalnego kodu źródłowego.

Użytkownicy stworzyli wtyczki, które umożliwiają używanie innych popularnych języków skryptowych zamiast lub oprócz IDC. IdaRUB obsługuje Ruby , a IDAPython dodaje obsługę Pythona . Począwszy od wersji 5.4, IDAPython (zależny od Pythona 2.5) jest preinstalowany z IDA Pro.

Obsługiwane systemy/procesory/kompilatory

  • Hosty systemowe
  • Rozpoznawane formaty plików wykonywalnych
  • Zestawy instrukcji
    • Rodzina Intel 80x86
    • Architektura ARM
    • Motorola 68k i H8
    • Zilog Z80
    • MOS 6502
    • Intel i860
    • DEC alfa
    • Urządzenia analogowe ADSP218x
    • Angstrem KR1878
    • Seria Atmel AVR
    • Seria DEC PDP11
    • Fujitsu F2MC16L/F2MC16LX
    • 32-bitowa rodzina Fujitsu FR
    • Hitachi SH3/SH3B/SH4/SH4B
    • Hitachi H8: h8300/h8300a/h8s300/h8500
    • Seria Intel 196: 80196/80196NP
    • Seria Intel 51: 8051/80251b/80251s/80930b/80930s
    • Seria Intel i960
    • Seria Intel Itanium (ia64).
    • Maszyna wirtualna Java
    • MIPS: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l
    • Mikroczip PIC: PIC12Cxx/PIC16Cxx/PIC18Cxx
    • MSIL
    • Rodzina Mitsubishi 7700: m7700/m7750
    • Mitsubishi m32/m32rx
    • Mitsubishi m740
    • Mitsubishi m7900
    • Rodzina Motorola DSP 5600x: dsp561xx/dsp5663xx/dsp566xx/dsp56k
    • Motorola ColdFire
    • Motorola HCS12
    • NEC 78K0/78K0S
    • PA-RISC
    • PowerPC
    • Rodzina Xenon PowerPC
    • SGS-Thomson ST20/ST20c4/ST7
    • Rodzina SPARKA
    • Samsunga SAM8
    • Seria Siemens C166
    • Seria TMS320Cxxx
  • Kompilator/biblioteki (do automatycznego rozpoznawania funkcji biblioteki)
    • Borland C++ 5.x dla DOS/Windows
    • Borland C++ 3.1
    • Borland C Builder v4 dla DOS/Windows
    • GNU C++ dla Cygwina
    • Microsoft C
    • Microsoft Quick C
    • Microsoft VisualC++
    • Watcom C++ (16/32-bitowy) dla DOS/OS2
    • ARM C v1.2
    • GNU C++ dla systemu Unix/common

Debugowanie

IDA Pro obsługuje wiele debuggerów, w tym:

  • Zdalne aplikacje Windows, Linux i Mac (dostarczane przez Hex-Rays) umożliwiają uruchamianie pliku wykonywalnego w jego natywnym środowisku (prawdopodobnie przy użyciu maszyny wirtualnej do wykrywania złośliwego oprogramowania)
  • Debugger GNU (gdb) jest obsługiwany w systemach Linux i OS X, a także natywny debugger systemu Windows
  • Dostarczono wtyczkę Bochs do debugowania prostych aplikacji (tj. uszkodzonych skompaktowanych plików wykonywalnych UPX lub mpress)
  • Debuger oparty na kodzie PIN firmy Intel
  • Odtwarzacz śladów

Zobacz też

Dalsza lektura

Linki zewnętrzne