elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ... 45
271  Programación / Programación C/C++ / Re: Convertir de Long a Binario en: 22 Junio 2011, 15:13 pm
Vale hombre, no hagamos un flame de esto xD

Tan sólo me pareció raro, porque siempre pensé que el tipo long en Windows era de 4 bytes.

En mi Debian, con gcc version 4.4.5 (Debian 4.4.5-8) y Linux 2.6.32-5-686:

Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.  
  5. printf("%d %d %d\n",sizeof(int),sizeof(long),sizeof(long int));
  6.  
  7. return 0;
  8.  
  9. }
  10.  

Me da esto:
4 4 4

Saludos.

272  Programación / Programación C/C++ / Re: Convertir de Long a Binario en: 22 Junio 2011, 14:01 pm
BlackZeroX no se de donde sacaste eso de los números long, pero yo tengo Win7 SP1 64 bits y haciendo un sizeof al tipo long me dice que son 4 bytes. Todo esto usando el Visual C++ 2010.

Saludos.
273  Programación / Programación C/C++ / Re: Convertir de Long a Binario en: 21 Junio 2011, 22:06 pm
Los números long son de 4 bytes por lo tanto tienen 32 bits. Yo lo hice con un número de 8 bits, o sea, de tipo unsigned char.

Código
  1. #include <iostream>
  2.  
  3. int main(int argc, char * argv[])
  4. {
  5. unsigned char numBin[8], numero = 5;
  6. unsigned char aux = 0;
  7.  
  8. for (int i = 0; i < 8; i++)
  9. {
  10. aux = numero >> (7 - i);
  11. aux = aux << 7;
  12.  
  13. if (aux == 128)
  14. numBin[i] = 0x31; //Un 1
  15. else
  16. numBin[i] = 0x30; //Un 0
  17. std::cout << numBin[i];
  18. }
  19. std::cin.get();
  20. return 0;
  21. }
  22.  

Son puras matemáticas, se van desplazando los bits de derecha a izquierda para conseguir que quede 128, si es así significa que el bit actual es 1.

Saludos.
274  Programación / Programación C/C++ / Re: Ataque por fuerza bruta en c++ en: 21 Junio 2011, 17:45 pm
Creo que te falta un cin.clear() en el código de la víctima.

Saludos.

275  Programación / Programación C/C++ / Re: Ataque por fuerza bruta en c++ en: 21 Junio 2011, 15:09 pm
Hola El_Java, sí, el código sólo funciona en Windows.

Saludos.
276  Programación / Programación C/C++ / Re: headers cstdarg (stdarg.h) en: 21 Junio 2011, 14:31 pm
El número de argumentos máximos depende de va_start, que se le pasa un valor de tipo int, por lo tanto debería permitir 4294967296 parámetros. Pero, la verdad, no creo que aguante tantos parámetros ni te recomendaría que lo comprobaras  ;D

Si haces:

Código
  1. int suma = Sumar(3, 2, 3, 7, 14, 29);
  2.  

Si al primer parámetro le pasas un 3, así que va a ignorar los 2 últimos números, la suma daría 12.

Código
  1. int suma = Sumar(2, 2, 3);
  2. suma = Sumar(3, 2, 3, 7);
  3. suma = Sumar(4, 2, 3, 7, 22);
  4. suma = Sumar(7, 2, 3, 7, 14, 29, 1, 44);
  5.  

Suelen ser bastante útiles estas funciones, un ejemplo claro son las funciones: printf, fprintf, sprintf.. El uso que le des a esto, depende de tu imaginación a la hora de programar.

Saludos.
277  Programación / Programación C/C++ / Re: headers cstdarg (stdarg.h) en: 21 Junio 2011, 14:04 pm
Hola Dark Invader, pues como ya te dije en la función va_arg, en el segundo parámetro le indicas el tipo de dato que quieres obtener. En el ejemplo que te puse, quiero obtener 3 punteros de tipo char. Si quieres obtener int, harías algo así:

Código
  1. #include <iostream>
  2. #include <stdarg.h>
  3.  
  4. int Sumar(int cantidadNumeros, ...)
  5. {
  6. va_list list;
  7. int result = 0;
  8.  
  9. va_start(list, cantidadNumeros);
  10.  
  11. for (int i = 0; i < cantidadNumeros; i++)
  12. result += va_arg(list, int);
  13.  
  14. va_end(list);
  15.  
  16. return result;
  17. }
  18.  
  19. int main(int argc, char * argv[])
  20. {
  21. int suma = Sumar(5, 2, 3, 7, 14, 29);
  22. std::cout << "La suma da: " << suma << std::endl;
  23.  
  24. std::cin.get();
  25. return 0;
  26. }
  27.  

Saludos.
278  Programación / Programación C/C++ / Re: Ataque por fuerza bruta en c++ en: 21 Junio 2011, 13:59 pm
Mira este pequeño ejemplo que acabo de hacer:

Código
  1. #include <iostream>
  2. #include <Windows.h>
  3.  
  4. int main(int argc, char * argv[])
  5. {
  6. HWND hCalc = FindWindow(NULL, L"Calculadora"); //Obtenemos el Handle de la ventana de la calculadora
  7. if (hCalc != 0)
  8. {
  9. SetForegroundWindow(hCalc); //Hacemos que la calculadora tenga el foco para enviarle las teclas
  10. keybd_event((BYTE)VkKeyScan('2'), 0, 0, 0); //Pulsamos la tecla 2
  11. keybd_event((BYTE)VkKeyScan('2'), 0, 2, 0); //Levantamos la tecla
  12.  
  13. keybd_event(VK_ADD, 0, 0, 0); //Pulsamos +
  14. keybd_event(VK_ADD, 0, 2, 0); //Levantamos +
  15.  
  16. keybd_event((BYTE)VkKeyScan('3'), 0, 0, 0); //Pulsamos la tecla 3
  17. keybd_event((BYTE)VkKeyScan('3'), 0, 2, 0); //Levantamos la tecla 3
  18.  
  19. keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
  20. keybd_event(VK_RETURN, 0, 2, 0); //Levantamos enter
  21.  
  22. /*
  23. * Con estas pulsaciones la calculadora debería sumar 2 + 3
  24. */
  25. }
  26. else
  27. std::cout << "No se encontró la ventana" << std::endl;
  28.  
  29. std::cin.get();
  30. return 0;
  31. }
  32.  

Para que funcione, tienes que tener la calculadora abierta. Otro método de buscar la ventana es mediante las APIs para trabajar con procesos, como: Process32First,  CreateToolhelp32Snapshot, etc..

Aquí tienes una tabla con todas las Virtual Key Codes:

http://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx

Saludos.
279  Programación / Desarrollo Web / Re: PHP y MySQL en: 21 Junio 2011, 01:28 am
Si vas a programar páginas web deberías saber que PHP sin MySQL no te va a servir de mucho. Y para saber MySQL necesitas saber algo sobre base de datos, el sistema relacional, SQL, y más cosas...

Crear tablas y hacer un par de relaciones se puede aprender en un día... pero comprender como funcionan, optimizar las consultas y crear tablas sin duplicidad de datos te va a llevar más tiempo.

Saludos.
280  Programación / Programación C/C++ / Re: Ataque por fuerza bruta en c++ en: 21 Junio 2011, 01:21 am
A mi se me ocurre que le envíes pulsaciones de teclas a la consola del login. Puedes usar la función keybd_event para hacer eso.

Saludos.
Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ... 45
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines