Ghidra + IDA non è in grado di rilevare una stringa, ma Radare2 può

Jan 15 2021

Sono nuovo nel reverse engineering e sto provando Ghidra, IDA (Freeware) e Radare2 con un semplice CrackMe, il problema è che sia Ghidra che IDA non sono in grado di rilevare una stringa mentre Radare2 (Using Cutter GUI) potrebbe capire il nome. Ho utilizzato l'analisi predefinita per tutti i 3. Manca qualcosa? perché anche il comando "stringhe" può effettivamente trovare la stringa che sto cercando.

Ghidra:

IDA:

Radare2 (taglierina):

Risposte

6 R4444 Jan 15 2021 at 22:05

Non conosco la lunghezza esatta della stringa. Ma alcune cose da notare qui sono le seguenti:

  1. Ghidra e IDA hanno un limite minimo sulla dimensione della stringa per recuperare il tipo corretto (ghidra ha un limite o limite inferiore di 5).
  2. Ciò è necessario per evitare falsi positivi o tipi in conflitto. E recuperare i tipi corretti senza contrassegnare un puntatore come una stringa. Dai un'occhiata a questa figura come riferimento. Generato utilizzando l'analisi automatizzata Ghidra.

In Ghidra puoi modificare questo limite (il minimo è 4) nella sezione analisi.

  1. Stringsil comando restituisce caratteri stampabili con dimensione minima 4 (in più non utilizza sofisticati algoritmi di recupero del tipo come ghidra o Ida). Credo che tu abbia una stringa di lunghezza inferiore a 5 e la mia ipotesi è che debba essere 4 per essere precisi.
  2. le stringhe sono generalmente definite nella .rodatasezione. Se fai doppio clic su DAT_xxxx, ti porterà alla posizione in cui è definita quella stringa. Lì, vedrai byte consecutivi raggruppati insieme da Ghidra o IDA (come mostrato nell'immagine-1). Tuttavia, il tipo non viene risolto come una "stringa".
  3. In Ghidra un modo rapido per risolvere questo problema cambiando il tipo di dati dell'etichetta DAT_xxxx: Fare clic con il tasto destro -> Dati -> Scegli tipo di dati -> scegli stringa

Riferimenti:

  • Vedi la mia domanda qui - https://github.com/NationalSecurityAgency/ghidra/issues/2274
  • manuale delle corde - https://linux.die.net/man/1/strings
  • ida pro - Come posso fare in modo che IDA veda un riferimento a una stringa?