Ghidra + IDA nie może wykryć łańcucha, ale Radare2 może

Jan 15 2021

Jestem nowy w inżynierii odwrotnej i próbuję Ghidra, IDA (Freeware) i Radare2 z prostym CrackMe, problem polega na tym, że zarówno Ghidra, jak i IDA nie mogły wykryć ciągu, podczas gdy Radare2 (przy użyciu GUI Cutter) mógł znaleźć nazwę. Użyłem domyślnej analizy dla wszystkich 3. Czy czegoś mi brakuje? ponieważ nawet polecenie „stringi” może faktycznie znaleźć ciąg, którego szukam.

Ghidra:

IDA:

Radare2 (przecinak):

Odpowiedzi

6 R4444 Jan 15 2021 at 22:05

Nie znam dokładnej długości sznurka. Ale kilka rzeczy, na które należy zwrócić uwagę, jest następujących:

  1. Ghidra i IDA mają minimalne ograniczenie rozmiaru sznurka, aby odzyskać prawidłowy typ (ghidra ma limit - lub dolną granicę 5).
  2. Jest to konieczne, aby uniknąć fałszywych alarmów lub sprzecznych typów. I odzyskaj poprawne typy bez oznaczania wskaźnika jako łańcucha. Sprawdź ten rysunek w celach informacyjnych. Wygenerowano za pomocą automatycznej analizy Ghidra.

W Ghidrze możesz zmienić ten limit (minimum 4) w sekcji analizy.

  1. Stringspolecenie wyświetla drukowalne znaki o minimalnym rozmiarze 4 (plus nie używa zaawansowanych algorytmów odzyskiwania typów, takich jak ghidra czy Ida). Uważam, że masz strunę o długości mniejszej niż 5 i przypuszczam, że musi to być 4, aby być precyzyjnym.
  2. łańcuchy są zwykle zdefiniowane w .rodatasekcji. Jeśli dwukrotnie klikniesz DAT_xxxx, przeniesie Cię do lokalizacji, w której zdefiniowano ten ciąg. Tam zobaczysz kolejne bajty połączone razem przez Ghidrę lub IDA (jak pokazano na obrazku-1). Jednak typ nie jest rozpoznawany jako „ciąg znaków”.
  3. W Ghidrze szybki sposób na rozwiązanie tego problemu poprzez zmianę typu danych etykiety DAT_xxxx: Kliknij prawym przyciskiem myszy -> Dane -> Wybierz typ danych -> wybierz ciąg

Piśmiennictwo:

  • Zobacz moje pytanie tutaj - https://github.com/NationalSecurityAgency/ghidra/issues/2274
  • instrukcja strun - https://linux.die.net/man/1/strings
  • ida pro - Jak mogę sprawić, by IDA zobaczyło odniesienie do ciągu?