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
|
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 |
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
- Windows x86 i ARM
- Linuks x86
- Mac OS X x86
- Rozpoznawane formaty plików wykonywalnych
- COFF i pochodne, w tym Win32/64/generic PE
- ELF i pochodne (ogólne)
- Mach-O ( Mach )
- NLM ( NetWare )
- LC/LE/LX (OS/2 3.x i różne rozszerzenia DOS)
- NE (OS/2 2.x, Win16 i różne rozszerzenia DOS)
- MZ ( MS-DOS )
- OMF i instrumenty pochodne (ogólne)
- CEL (ogólny)
- surowy plik binarny, taki jak obraz ROM lub plik COM
- 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
- Eilam, Eldad (2005). Odwracanie: tajemnice inżynierii wstecznej . Wydawnictwo Wiley . P. 595. ISBN 0-7645-7481-7 .
Linki zewnętrzne
- Oficjalna strona internetowa
- „IDA Pro w archiwum internetowym” (po rosyjsku). Zarchiwizowane od oryginału w dniu 16.01.2015 r.
- „Wtyczki i skrypty IDA” . Otwarta inżynieria kodu wstecznego (OpenRCE) .
- „CODE BLUE 2014: Ilfak Guilfanov - przemówienie: Historia IDA Pro” . YouTube .