Muchas gracias por responder cpu2,siento que mis explicaciones sean tan malas, de verdad que pensaba que quedaría claro, el tema es que tengo una shellcode copiada de Inet y hay una instrucción que no entiendo el porque de ella, doy por echo que conoce ASM mejor que yo así que te dejo la shellcode sin los comentarios que puse en el post anterior:
xor ecx,ecx
mul ecx
mov al,0xb
push ecx
push dword 0x68732f2f
push dword 0x6e69622f
mov ebx,esp
int 0x80
Todo en este código tiene sentido para mi excepto la instrucción mul ecx, según leo en tu respuesta se está ejecutando lo siguiente:
eax:edx = ecx * eax
eax:edx = 0 * eax = 0
Perdona mi ignorancia pero no entiendo porque se guarda en dos registros el resultado, tampoco comprendo la coletilla "para no tener segmentaciones".
En cuanto a la shellcode que indicas también hay pasos que escapan a mi comprensión, la he probado y funciona correctamente, pero primero me gustaría centrarme en mi shellcode.
Te ruego que me perdones si estoy haciendo preguntas obvias o preguntando tonterias pero no tengo mucha experiencia en ASM ni en reversing en general.
Un saludo y muchas gracias por tu interes.
xor ecx,ecx
mul ecx
mov al,0xb
push ecx
push dword 0x68732f2f
push dword 0x6e69622f
mov ebx,esp
int 0x80
Todo en este código tiene sentido para mi excepto la instrucción mul ecx, según leo en tu respuesta se está ejecutando lo siguiente:
eax:edx = ecx * eax
eax:edx = 0 * eax = 0
Perdona mi ignorancia pero no entiendo porque se guarda en dos registros el resultado, tampoco comprendo la coletilla "para no tener segmentaciones".
En cuanto a la shellcode que indicas también hay pasos que escapan a mi comprensión, la he probado y funciona correctamente, pero primero me gustaría centrarme en mi shellcode.
Te ruego que me perdones si estoy haciendo preguntas obvias o preguntando tonterias pero no tengo mucha experiencia en ASM ni en reversing en general.
Un saludo y muchas gracias por tu interes.