Pwn Classique (suite)
Les exercices pour la section sont disponibles sur workspace dans /cours.
Shellcode
Désassemblez et comprenez le comportement du shellcode suivant:
31 c0 31 d2 50 68 2f 2f 73 68 68 2f 62 69 6e 89 e3 50 53 89 e1 b0 0b cd 80
Tracez l’exécution du shellcode (état de la pile et des registres) et assurez vous de bien comprendre son fonctionnement. La commande suivante vous sera surement utile.
objdump -b binary -m i386 -D -M intel <shellcode.bin>
Pass 4
En travaillant encore sur le binaire pass, faites exécuter votre shellcode.
Indice 1
On cherche à écrire un shellcode en mémoire. Où pouvez-vous l'écrire?
Indice 2
L'instruction `NOP (\x90)` pourrait-elle être utile lors du calcul de branchement? Comment?
Indice 3
`\x90\x90\x90\x90\x90` versus `\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90` quelle est la différence d'éffet observable?
Devoir
Refaire les exercices avec un shellcode 64 bits puis exploitez le programme pass_64.