J'apprends un peu d'assembleur pour linux et j'ai ce programme d'exemple qui est juste supposé appeler l'écriture syscall et imprimer 'Hello, World!' Sur l'écran, cependant il produit un segfault. J'apprends dans mon temps libre, pas de devoirs, je ne vais plus à l'école!linux asm x86 produisant segfault
Quelqu'un peut-il voir quelque chose de mal avec ce code?
xor eax,eax
xor ebx,ebx
xor ecx,ecx
xor edx,edx
jmp short string
code:
pop ecx
mov bl,1
mov dl,13
mov al,4
int 0x80
dec bl
mov al,1
int 0x80
string:
call code
db 'Hello, World!'
Je dois dire que c'est une méthode assez inhabituelle pour charger l'adresse de votre chaîne dans 'ecx'. –
Est-ce qu'il produit la sortie et ALORS segfault, ou ne produit pas de sortie avant la segfaulting? –
@Greg: d'accord, même si c'est l'une des méthodes les plus courantes de l'écriture de shellcode indépendant de la position ... –