Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
ide_ida-pro [2010/12/28 23:51] msulek Opisano część funkcjonalności programu |
ide_ida-pro [2010/12/29 00:53] msulek |
||
---|---|---|---|
Linia 34: | Linia 34: | ||
- 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.\\ | ||
- | ===== Podstawowe funkcje programu ===== | + | ===== Poruszanie się po programie ===== |
Jak już zostało wspomniane wcześniej, program ma bardzo dużo funkcji i opcji. Jednak dla rozpoczęcia nauki i tworzenia prostych projektów należy zapoznać się z podstawowymi przedstawionymi poniżej.\\ | Jak już zostało wspomniane wcześniej, program ma bardzo dużo funkcji i opcji. Jednak dla rozpoczęcia nauki i tworzenia prostych projektów należy zapoznać się z podstawowymi przedstawionymi poniżej.\\ | ||
Linia 50: | Linia 50: | ||
==== Pasek narzędzi ==== | ==== Pasek narzędzi ==== | ||
- | W programie znajduje się również znany z wielu programów pasek narzędzi zawierający ikony będące skrótem do najpotrzebniejszych opcji. | + | W programie znajduje się również znany z wielu programów pasek narzędzi zawierający ikony będące skrótem do najpotrzebniejszych opcji.\\ |
+ | Opcje te nie różnią się niczym od tych dostępnych z poziomu tradycyjnego menu górnego, stąd zaleca się samodzielne zapoznanie z tym paskiem - jeśli któraś z ikon jest niejasna po najechaniu na nią możemy zobaczyć jej opis.\\ | ||
+ | Warto zauważyć, że poniżej paska narzędzi znajduje się również graf wypełnienia rezerwowanej przez analizowany program pamięci. Poszczególne kolory oznaczają jaki typ danych wypełnia pamięć. | ||
+ | |||
+ | ==== Zakładki główne ==== | ||
+ | Główną przestrzeń w programie zajmują zakładki zawierające wynik analizy. | ||
+ | - 'IDA View-A' - okno zawierające kod programu w postaci instrukcji maszynowych. | ||
+ | - 'Hex View-A' - kod programu w postaci szesnastkowej. | ||
+ | - 'Exports' - zasoby zewnętrzne eksportowane z analizowanego programu. | ||
+ | - 'Imports' - zasoby importowane do analizowanego programu. | ||
+ | - 'Names' - nazwy zmiennych oraz stałych analizowanego programu oraz adresy, pod którymi się znajdują. | ||
+ | - 'Functions' - nazwy funkcji analizowanego programu oraz ich adresy. | ||
+ | - 'Strings' - adresy, długości oraz zawartość łańcuchów znaków z analizowanego programu. | ||
+ | - 'Structures' - struktury danych z analizowanego programu. | ||
+ | - 'Enums' - typy wyliczeniowe z analizowanego programu.\\ | ||
+ | |||
+ | ===== Podstawowe funkcje ===== | ||
+ | ==== IDA View-A ==== | ||
+ | W tym oknie IDA Pro umożliwia realizowanie podstawowej funkcji jaką jest analiza kodu. Jak zostało już wspomniane okno to wyświetla kod analizowanego pliku w postaci instrukcji maszynowych, a więc pozwala nam na dokładną analizę jego działania. Co więcej możemy ten kod edytować oraz w miejscach gdzie program zarezerwował pamięć, ale jej nie wykorzystuje dopisać własny kod i próbować wykonać go podczas działania analizowanego pliku. Jest to dość trudna operacja i wymaga od użytkownika znajomości programowania, działania aplikacji oraz specyfiki danego systemu.\\ | ||
+ | |||
+ | ==== Strings ==== | ||
+ | Jest to okno umożliwiające przejście do wybranego łańcuchu znaków oraz jego edycję. Jest to szczególnie przydatne gdy chcemy zmienić język jakiegoś programu - musimy jednak pamiętać, że zmiana długości powoduje późniejsze komplikacje, które winny być poprawione w innym miejscu kodu, dlatego najprościej nie zmieniać długości lub puste miejsca wypełniać niewidocznymi znakami. Jest to opcja, która dla początkującego użytkownika jest niezwykle ciekawa gdyż najprościej zobaczyć jej rezultaty.\\ | ||
+ | |||
+ | ==== Graphs ==== | ||
+ | Jest to zdecydowanie jedna z najpotrzebniejszych funkcji programu IDA Pro ułatwiająca analizę kodu maszynowego.\\ | ||
+ | Mamy do wyboru 5 typów grafów: | ||
+ | * 'Flow chart' - graf przepływu danych. | ||
+ | * 'Functions calls' - graf wołania funkcji, a więc graf prezentujący wywołania poszczególnych funkcji, miejsc ich wywołania oraz ciał funkcji. | ||
+ | * 'Xrefs to' - graf zależności do podanej referencji. | ||
+ | * 'Xrefs from' - graf zależności z podanej referencji. | ||
+ | * 'User xrefs chart' - graf zdefiniowany przez użytkownika.\\ | ||
+ | Na początku procesu analizy zdaje się być 'Functions calls' dzięki, któremu bez problemu możemy zorientować się jaka jest struktura funkcjonalna programu oraz jak dostać się do poszczególnych funkcji.\\ | ||
+ | |||
+ | Poszczególne grafy można wygenerować korzystając z menu górnego: 'View' - 'Charts'. | ||
+ | |||