Bonjour à tous,
J'ai beaucoup réfléchi à ce challenge, et aussi beaucoup appris pour l'occasion.
J'arrive, dans gdb, à faire ce que je veux (sans, bien sûr, avoir les droits nécessaires).
Lorsque je lance la même commande en dehors de gdb, j'obtiens une erreur de segmentation, ce qui est frustrant si près du but.
Y a-t-il selon vous une bonne raison pour laquelle ma commande marche sous gdb mais pas à l'extérieur ?
Si je reformule : quelles différences y a-t-il entre un debuggage et une exécution "normale" (en dehors des droits), qui pourrait expliquer mon problème ?
Merci d'avance
Bonjour, plusieurs raisons expliquent ces différences d'adresse.
Il faut savoir que l'OS charge les variables d'environnement et les paramètres du programme avant le début de la stack.
Or :
1. gdb utilise des variables d'environnement qui n'existent plus lorsque l'exécution est faite "normalement"
2. gdb appelle le programme via son chemin absolu /path/to/prog (stocké dans argv[0])
Ces deux points peuvent faire que le début de la stack n'est pas exactement au même endroit.
Je te laisse chercher pour trouver plus de détails, bien comprendre tout ça et palier à ce problème en évitant le guessing
