Ghidra + IDA ne peut pas détecter une chaîne mais Radare2 peut

Jan 15 2021

Je suis nouveau dans l'ingénierie inverse, et j'essaie Ghidra, IDA (Freeware) et Radare2 avec un simple CrackMe, le problème est que Ghidra et IDA ne pouvaient pas détecter une chaîne alors que Radare2 (Using Cutter GUI) pouvait comprendre le nom. J'ai utilisé l'analyse par défaut pour tous les 3. Y at-il quelque chose qui me manque? car même la commande 'strings' peut réellement trouver la chaîne que je recherche.

Ghidra:

IDA:

Radare2 (Cutter):

Réponses

6 R4444 Jan 15 2021 at 22:05

Je ne connais pas la longueur exacte de la chaîne. Mais voici quelques points à noter:

  1. Ghidra et IDA ont une limite minimale sur la taille de la chaîne pour récupérer le type correct (ghidra a une limite - ou limite inférieure de 5).
  2. Cela est nécessaire pour éviter les faux positifs ou les types en conflit. Et récupérez les types corrects sans marquer un pointeur comme une chaîne. Consultez cette figure pour votre référence. Généré à l'aide de l'analyse automatisée Ghidra.

Dans Ghidra, vous pouvez modifier cette limite (le minimum est de 4) dans la section d'analyse.

  1. StringsLa commande génère des caractères imprimables avec une taille minimale de 4 (en plus, elle n'utilise pas d'algorithmes de récupération de type sophistiqués comme ghidra ou Ida). Je crois que vous avez une chaîne d'une longueur inférieure à 5 et je suppose qu'elle doit être de 4 pour être précis.
  2. les chaînes sont généralement définies dans la .rodatasection. Si vous double-cliquez sur DAT_xxxx, cela vous amènera à l'emplacement où cette chaîne est définie. Là, vous verrez des octets consécutifs regroupés par Ghidra ou IDA (comme le montre l'image-1). Mais, le type n'est pas résolu en tant que "chaîne".
  3. Dans Ghidra, un moyen rapide de résoudre ce problème en changeant le type de données de l'étiquette DAT_xxxx: Faites un clic droit -> Données -> Choisissez le type de données -> choisissez la chaîne

Références:

  • Voir ma question ici - https://github.com/NationalSecurityAgency/ghidra/issues/2274
  • manuel des cordes - https://linux.die.net/man/1/strings
  • ida pro - Comment puis-je faire en sorte que IDA voie une référence de chaîne?