Salut,
Je viens vers vous car je bloque depuis des heures sur l'implémentation de execve("/bin/bash", ["/bin/bash", "-p", NULL],NULL) en assembleur. Je précise que je ne cherche pas à faire un shellcode Voici mon code :
Là, vous voyez une possibilité parmi les multiples que j'ai testées. En fait, je ne parviens pas à passer correctement les paramètres à execve(). J'ai essayé d'initialiser un tableau, mais je n'ai pas réussi. Avant qu'on me suggère telle ou telle piste à suivre, je précise que j'ai déjà codé la fonction en C pour regarder le résultat en assembleur. Je l'ai compris, cependant je n'arrive pas à le reproduire (notamment au niveau des déclarations des chaines qui, lorsque je les vois ne mémoire, ne me parlent pas trop).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 ;a-s.asm ;nasm a-s.asm -o a-s.o -f elf && ld -s a-s.o -o a-s -melf_i386 segment .data shell_path db "/bin/bash" keep_uid db "/bin/bash0-p" segment .text global _start _start: mov eax,0 mov ebx,0 mov ecx,0 mov edx,0 mov ebx,shell_path mov [ebx+9],al mov ecx,keep_uid mov [ecx+9],al push ecx mov edx,esp ;push edx ;mov ecx,esp push 0 push edx ;ou ecx push ebx mov eax,11 int 0x80
Merci par avance pour vos réponses'
Partager