Bueno, me he metido en este apasionante mundo, y me he puesto a probar algo...
Tengo este code:
#include <stdio.h>
#include <string.h>
#include <windows.h>
int fff ()
{
WinExec ("calc.exe", SW_MAX);
}
int main(int argc, char **argv)
{
if (argc != 2) return 1;
char buff[12];
printf("\nHas escrito: %s\n",buff
);
return 0;
}
Es simple. Meto 24 nops y 4 numeros con la direccion de fff. A mi me da 0x4013c0. Como ven es una direccion de 3 "digitos".
Bueno ¿ Qué hago con el cuarto ?
#include <windows.h>
#include <strcpy.h>
int main ()
{
char buff [28];
int i;
for (i = 0; i <= 23; i++)
buff [i] = '\90'
/*
Aqui van las declaraciones de buff [24 / 27] (menos 1 por el 0).
La cosa es que tengo tres numeros donde van cuatro.
*/
char command [33];
WinExec (command);
}
El exploit es sencillo, pero no se que hacer. Pido perdais 5 segundos de vuestro tiempo contestandome xD!!!
Que hago? Como seria el exploit?
Espero sus prontas respuestas.
Y sí, he mirado en google y en el foro...
Aparte, uso Windows Vista 64 bits...