Partage
  • Partager sur Facebook
  • Partager sur Twitter

Quelle langage ASM choisir ?

Oriente securite informatique

7 novembre 2015 à 5:00:16

Bonjour,

Ca fait actuellement 1 ans que je fais du C, et j'estime avoir relativement un bon niveau.

J'aimerai donc commencer a apprendre un peu la securite et pour cela, je me rend compte qu'il faut que j'apprenne l'assembleur. (pour les bufferoverflow par exemple).

Et en fouillant sur le WEB, j'ai appris qu'il y avait plusieurs "type" d'ASM. 

Et donc je voulais savoir, lequelle était utile pour les bufferoverflow par exemple, quelle langage assembleur devrais-je apprendre ?

Etant donne qu'il y a aussi plusieurs types d'ASM pour different type d'architecture, il y a t-il donc plusieurs maniere de faire un bufferoverflow selon l'architecture de la machine ?

Merci :)

  • Partager sur Facebook
  • Partager sur Twitter
7 novembre 2015 à 19:09:23

Bonjour,

Pas de besoin de connaitre l'ASM pour faire du buffer overflow. D'autant plus que ce genre de faille dépends tellement de la machine sur laquelle elle est effectuée, du programme/application qu'il y a derrière, il n'y a pas de code général. En d'autres termes, c'est un peu en fonction de ce qu'on observe qu'on devine ce qu'il faut faire. De plus, le buffer overflow ne se fait pas forcement qu'avec des programmes réalisés en C.

Le plus intéressant à connaitre c'est savoir comment fonctionne un programme, comment est gérée la mémoire, les processus etc... Un fois que tu as compris l'idée et que tu souhaite injecter du code executable dans la pile, tu trouveras de quoi faire sur internet et c'est plus simple que de t'amuser à apprendre l'ASM...

  • Partager sur Facebook
  • Partager sur Twitter
7 novembre 2015 à 22:37:33

Avicularia a écrit:

Bonjour,

Pas de besoin de connaitre l'ASM pour faire du buffer overflow. D'autant plus que ce genre de faille dépends tellement de la machine sur laquelle elle est effectuée, du programme/application qu'il y a derrière, il n'y a pas de code général. En d'autres termes, c'est un peu en fonction de ce qu'on observe qu'on devine ce qu'il faut faire. De plus, le buffer overflow ne se fait pas forcement qu'avec des programmes réalisés en C.

Le plus intéressant à connaitre c'est savoir comment fonctionne un programme, comment est gérée la mémoire, les processus etc... Un fois que tu as compris l'idée et que tu souhaite injecter du code executable dans la pile, tu trouveras de quoi faire sur internet et c'est plus simple que de t'amuser à apprendre l'ASM...

Salut Avicularia j'espère que tu va bien :)

-Quand tu parle du fonctionnement du programme, des process..etc etc, tu parle de comprendre par exemple le sens de l'empilement, a quoi servent par exemple les stacks pointer comme ESP, EBP, EIP, connaitre c'est quoi une valeur de retour etc etc ? 

-Je suppose que quand tu parle du code executable a injecter, tu parle du shellcode ? 

Thanks :3

  • Partager sur Facebook
  • Partager sur Twitter
8 novembre 2015 à 16:02:21

Oui et oui. Du coup, si tu veux expérimenter l'overflow, tu peux facilement le tenter chez toi sur une VM avec un petit programme mal fait dans l'idée de faire l'overflow. Puis d'utiliser GDB pour observer le dépassement de tampon et hop.

Si la sécurité des programmes en C t'intéresse, un petit liens avec l'ASM aussi est d'utiliser un éditeur hexadécimal sur un binaire exécutable afin de modifier des instructions comme les JUMP. Lorsqu'il y a un IF par exemple, selon la condition, on va dans un endroit du programme ou dans un autre, en dégageant un JUMP on manipule le programme un peu comme si le IF était toujours TRUE (par exemple).

  • Partager sur Facebook
  • Partager sur Twitter