Comment démonter la fonction principale d'une dépouillé application?

Disons que j'ai compilé le formulaire ci-dessous et dépouillé de ses symboles.

#include <stdio.h>

int main()
{
    printf("Hello\n");
}

Procédure de construction:

gcc -o hello hello.c
strip --strip-unneeded hello

Si l'application n'était pas dépouillé, démontage, la fonction principale serait facile. Cependant, je n'ai aucune idée de la façon de démonter le principal fonction d'une dépouillé application.

(gdb) disas main
No symbol table is loaded.  Use the "file" command.

(gdb) info line main
Function "main" not defined.

Comment pourrais-je le faire? Est-il même possible?

Notes: cela doit être fait avec GDB seulement. Oubliez objdump. Supposons que je n'ai pas accès au code.

Une étape-par-étape de l'exemple serait grandement apprécié.

  • Imaginez que je n'ai pas les sources de l'application et aussi que je n'ai pas accès à d'autres outils en plus de GDB.
  • L'utilisation de l'IDA 😉 ... désolé, pas pu résister. Je sais que vous le souhaitez pour GDB seulement.
  • Quiconque vers le bas voté à ma question, veuillez expliquer pourquoi.
  • Je ne vois pas downvote ...? Hein?
  • J'ai marqué quelques dizaines de réponses ce week-end, et je soupçonne que quelqu'un n'aime pas avoir leur réponse supprimé. Je suis descendu voix sur presque toutes mes questions et les récentes réponses en moins de 3 minutes. C'est pourquoi j'ai demandé la raison pour laquelle le vote vers le bas. Apparemment, la personne a décidé d'annuler leur vote.
  • ah, ok. Mais ne pas l'heuristique de sélection lorsque vous obtenez des sérieusement downvoted et recalcule votre rep? Pensais, j'ai lu quelque chose quelque part.
  • Ce n'était pas une énorme baisse de-vote-attaque, à seulement 7 ou 8 en 3 minutes.

InformationsquelleAutor karlphillip | 2011-03-29