web-dev-qa-db-fra.com

Comment apprendre la programmation du point de vue d'un piratère

Je suis vraiment dans les aspects de piratage et de sécurité. Mais je me demande de plusieurs choses qui m'empêchent de poursuivre cette passion pour le moment. L'un des eux est en réalité la programmation du langage. Comme nous savons tous que la programmation en général est un champ ouvert et ce que je veux dire, vous ne pouvez pas simplement en apprendre les bases d'une langue d'écrire des programmes ou des exploitations complexes à titre d'exemple, http: // www.exploiting-db.com/exploits/29290/ Cet exploit a été écrit par c, même si je l'étudie depuis longtemps. Je peux à peine comprendre le code.

Par conséquent, je planifie l'apprentissage C, Python et IA-32 en début de la période à venir. Mais après avoir maîtrisé les bases, où aller se concentrer sur la programmation dans le cadre de la sécurité de l'information non seulement un programmeur ordinaire.

Mon objectif et mon objectif est de lire et de comprendre l'exploit ci-dessus et de pouvoir écrire une exploitation similaire (débordements tampons en général). De plus, pour pouvoir trouver et exploiter de telles faiblesses, dois-je aussi comprendre les systèmes internes des systèmes ??

De plus, j'ai entendu dire que l'exploitation ci-dessus ait quelque chose à voir avec la programmation de la prise sous Linux Enviroment et ANSI C Quels sont ceux et pourquoi ai-je besoin d'eux pour écrire un tel exploit?

3
user209337

Pour répondre à votre première préoccupation. Comprendre le code que vous avez associé serait difficile de comprendre votre première fois. Vous devriez digérer le point d'entrée, la charge utile, l'exploitation et d'autres nuances. Ce n'est pas un code Wimpy qui multiplie deux nombres et renvoie le résultat. Il est logique que quelqu'un avec une expérience limitée soit incapable de le comprendre.

Malheureusement, la maîtrise des bases ne suffit pas. Par exemple, la maîtrise des bases ne vous permettra pas de comprendre le code que vous avez lié. Les langages de programmation modernes sont conçus de manière à ce que les bases soient compréhensibles pour les personnes qui ne comprennent pas complètement la langue.

Si vous souhaitez bien comprendre l'exploit, la charge utile, le code et apprenez le plus sur les exploits, vous aurez alors besoin de bien comprendre quelques points.

  1. Comment fonctionne la mémoire (codages de caractères, la pile et les débordements tampons)
  2. C
  3. La plate-forme L'exploit est pour. Prévoyez-vous d'écrire votre coquillage pour Windows ou Linux? ... parce qu'il y a une grande différence.
  4. Comprendre ce qui se passe lorsque vous compilez et exécutez un programme

Si j'étais vous, je commencerais avec le livre K & R C. Cela vous aidera à apprendre sur la mémoire et C. J'aurais alors lu programmée à partir de la terre. Cela vous aidera à vous enseigner sur ce qui se passe lorsqu'un programme est exécuté et la connexion entre le code source que vous écrivez et les instructions de votre ordinateur sont exécutées.

Bien que je crois que c'est la meilleure façon de commencer, c'est certainement le moyen difficile de commencer ... Le matériel est très dense et difficile à comprendre. Comprendre ce genre de choses prend beaucoup de temps et d'efforts. En outre, votre base de connaissances aura toujours des lacunes éblouissantes. Malgré tout, si vous passez à travers cela, vous pourrez facilement comprendre ce que les exploits que vous trouvez font et comment ils fonctionnent après un examen

3
user11869