Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ide_ida-pro [2010/12/29 01:02] msulek |
ide_ida-pro [2010/12/29 01:39] (aktualna) msulek |
||
---|---|---|---|
Linia 3: | Linia 3: | ||
IDA Pro (skrót IDA oznacza //'Interactive Disassembler'// co w tłumaczeniu na język polski oznacza //'Interaktywną Deasemblację'//) to program umożliwiający deasemblację oraz debugowanie programów wykonywalnych systemów Linux, Windows oraz Mac OS X. Wachlarz możliwości programu oraz jego zastosowań jest na tyle szeroki, że trudno opisać go kilkoma zdaniami.\\ | IDA Pro (skrót IDA oznacza //'Interactive Disassembler'// co w tłumaczeniu na język polski oznacza //'Interaktywną Deasemblację'//) to program umożliwiający deasemblację oraz debugowanie programów wykonywalnych systemów Linux, Windows oraz Mac OS X. Wachlarz możliwości programu oraz jego zastosowań jest na tyle szeroki, że trudno opisać go kilkoma zdaniami.\\ | ||
Wydawcą programu jest firma Hex-Rays (http://www.hex-rays.com), która udostępnia za darmo, do celów niekomercyjnych wersję o jeden mniejszą niż aktualna wersja płatna. Obecnie jest to wersja 5.0.\\ | Wydawcą programu jest firma Hex-Rays (http://www.hex-rays.com), która udostępnia za darmo, do celów niekomercyjnych wersję o jeden mniejszą niż aktualna wersja płatna. Obecnie jest to wersja 5.0.\\ | ||
- | Należy wspomnieć o głównym zastosowaniu jakim jest wykorzystanie programu IDA Pro do wspomagania techniki inżynierii wstecznej. Sama [[http://pl.wikipedia.org/wiki/In%C5%BCynieria_odwrotna|inżyniera wsteczna]] (zwana również odwrotną) to szerokie pojęcie funkcjonujące nie tylko w informatyce, ale również w wielu innych dziedzinach życia – należy zaznaczyć, że w niektórych krajach technika ta uznawana jest za nielegalną. W samej informatyce umożliwia ona pisanie poprawek do istniejących już programów, wstrzykiwanie własnego kodu i jego wykonywanie oraz wiele więcej. Jak nie trudno się domyśleć pociąga to za sobą między innymi możliwość [[http://pl.wikipedia.org/wiki/Cracking#Cracking_oprogramowania | crackingu oprogramowania]] oraz tworzenia generatorów kluczy dla programów w wersji trial, które umożliwiają odblokowanie funkcjonalności z poziomu programu.\\ | + | Należy wspomnieć o głównym zastosowaniu jakim jest wykorzystanie programu IDA Pro do wspomagania techniki inżynierii wstecznej. Sama [[http://pl.wikipedia.org/wiki/In%C5%BCynieria_odwrotna|inżyniera wsteczna]] (zwana również odwrotną) to szerokie pojęcie funkcjonujące nie tylko w informatyce, ale również w wielu innych dziedzinach życia – trzeba zaznaczyć, że w niektórych krajach technika ta uznawana jest za nielegalną. W samej informatyce umożliwia ona pisanie poprawek do istniejących już programów, wstrzykiwanie własnego kodu i jego wykonywanie oraz wiele więcej. Jak nie trudno się domyśleć pociąga to za sobą między innymi możliwość [[http://pl.wikipedia.org/wiki/Cracking#Cracking_oprogramowania | crackingu oprogramowania]] oraz tworzenia generatorów kluczy dla programów w wersji trial, które umożliwiają odblokowanie funkcjonalności z poziomu programu.\\ |
Drugim zastosowaniem wartym uwagi jest możliwość debugowania wykonywalnych programów systemu Windows w zdalnym środowisku uruchomionym na systemie Linux, co daje możliwość debugowania wirusów bez obawy o bezpieczeństwo systemów: zarówno zdalnego jak i lokalnego. Więcej informacji na ten temat dostępne pod adresem http://www.hex-rays.com/idapro/linux/index.htm. Poniżej cytat z opisu producenta. | Drugim zastosowaniem wartym uwagi jest możliwość debugowania wykonywalnych programów systemu Windows w zdalnym środowisku uruchomionym na systemie Linux, co daje możliwość debugowania wirusów bez obawy o bezpieczeństwo systemów: zarówno zdalnego jak i lokalnego. Więcej informacji na ten temat dostępne pod adresem http://www.hex-rays.com/idapro/linux/index.htm. Poniżej cytat z opisu producenta. | ||
Linia 33: | Linia 33: | ||
- Na samym dole ekranu program wyświetla aktualny status działania, zakończenie analizy objawia się komunikatem 'The initial autoanalysis has been finished'. Warto zaznaczyć, że zmiany wynikające z postępu analizy możemy obserwować na żywo w oknie programu. | - Na samym dole ekranu program wyświetla aktualny status działania, zakończenie analizy objawia się komunikatem 'The initial autoanalysis has been finished'. Warto zaznaczyć, że zmiany wynikające z postępu analizy możemy obserwować na żywo w oknie programu. | ||
- W ten sposób utworzyliśmy nasz pierwszy projekt, teraz możemy przejść do analizy pliku wykonywalnego pod założonym przez siebie wcześniej kątem.\\ | - W ten sposób utworzyliśmy nasz pierwszy projekt, teraz możemy przejść do analizy pliku wykonywalnego pod założonym przez siebie wcześniej kątem.\\ | ||
+ | Przykładowy wygląd programu po utworzeniu pierwszego projektu, a w czasie trwania analizy pliku.\\ | ||
+ | {{:mainwindowida.png?400x213|}} | ||
===== Poruszanie się po programie ===== | ===== Poruszanie się po programie ===== | ||
Linia 40: | Linia 42: | ||
Okno główne programu składa się z tradycyjnego menu, które daje nam następujące możliwości:\\ | Okno główne programu składa się z tradycyjnego menu, które daje nam następujące możliwości:\\ | ||
- 'File' - wszelkie operacje dotyczące plików: tworzenie nowego projektu, zamykanie projektu, ładowanie plików do istniejącego, produkowanie plików wynikowych z analizy pliku, uruchamianie komendy programu IDA etc. | - 'File' - wszelkie operacje dotyczące plików: tworzenie nowego projektu, zamykanie projektu, ładowanie plików do istniejącego, produkowanie plików wynikowych z analizy pliku, uruchamianie komendy programu IDA etc. | ||
- | - 'Edit' - opcje związane z edytowaniem treść, program umożliwia zaawansowane edytowanie treści utworzonych podczas analizy. Należy tu zaznaczyć, że podczas całego procesu program sam generuje nazwy funkcji i zmiennych, które jednak mogą być zmieniane (tzw. refaktoryzacja). | + | - 'Edit' - opcje związane z edytowaniem treści, program umożliwia zaawansowane edytowanie treści utworzonych podczas analizy. Należy tu zaznaczyć, że podczas całego procesu program sam generuje nazwy funkcji i zmiennych, które jednak mogą być zmieniane (tzw. refaktoryzacja). |
- 'Jump' - umożliwia przechodzenie do określonego miejsca w projekcie. Możemy to uczynić na wiele różnych sposobów - między innymi podając adres lub nazwę zarówno funkcji jak i zmiennej. | - 'Jump' - umożliwia przechodzenie do określonego miejsca w projekcie. Możemy to uczynić na wiele różnych sposobów - między innymi podając adres lub nazwę zarówno funkcji jak i zmiennej. | ||
- 'Search' - pozwala na przeszukiwanie projektu. | - 'Search' - pozwala na przeszukiwanie projektu. | ||
Linia 86: | Linia 88: | ||
{{:flowchart.jpg?400x203|}} | {{:flowchart.jpg?400x203|}} | ||
- | Poszczególne grafy można wygenerować korzystając z menu górnego: 'View' - 'Charts'. | + | Poszczególne grafy można wygenerować korzystając z menu górnego: 'View' - 'Charts'.\\ |
- | + | ||
+ | ===== Przydatne linki ===== | ||
+ | Celem lepszego zrozumienia wykorzystania programu należy zapoznać się z publikacjami dotyczącymi zarówno samego programu jak i samych metod inżynierii wstecznej:\\ | ||
+ | - [[http://www.hexblog.com/|Oficjalny program producenta programu.]] | ||