Ghidra + IDA non è in grado di rilevare una stringa, ma Radare2 può
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
Non conosco la lunghezza esatta della stringa. Ma alcune cose da notare qui sono le seguenti:
- 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).
- 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.
Strings
il 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.- le stringhe sono generalmente definite nella
.rodata
sezione. 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". - 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?