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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 ... 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 [41] 42 43 44 45
401  Programación / Programación C/C++ / Re: Enviar pulsaciones de teclas en: 4 Noviembre 2010, 20:18 pm
Citar
simula la pulsación de teclas, y funciona como si pulsaras las teclas de verdad

No necesitas HANDLE para nada, se envían pulsaciones de teclas, da igual la aplicación que tenga el foco....

http://msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx
402  Programación / Programación C/C++ / Re: Enviar pulsaciones de teclas en: 4 Noviembre 2010, 15:25 pm
No se si tendra alguna proteccion o algo o sera por que para caminar habra que dejar pulsada la tecla el caso es que las pulsaciones las envia correctamente todas menos las de movimiento.

Por ejemplo si envio la letra B em abre el inventario correctamente

¿Es posible que la unica forma sea inyectando una dll y enviando la pulsacion desde el mismo proceso????

El caso es que estoy algo verde aun en el tema de la inyeccion XDDD

Muchas gracias a todos!!!!



Si leyeras mi respuesta, tendrías la solución.

La API keybd_event simula la pulsación de teclas, y funciona como si pulsaras las teclas de verdad; además puedes hacer combinaciones de teclas pulsadas al mismo tiempo.
403  Programación / Programación C/C++ / Re: Enviar pulsaciones de teclas en: 3 Noviembre 2010, 15:35 pm
Busca información sobre la API keybd_event, es mucho más sencillo usar esta función.

Saludos.
404  Programación / Programación C/C++ / Re: Obtener toda la línea con un enter en: 2 Noviembre 2010, 17:18 pm


Código
  1.  
  2.    scanf("%8[^\n]", number);
  3.  
  4.  

No entiendo eso %8[^\n] qué significa poner un número detrás del %, y los corchetes y el ^ antes de \n??

Significa leer por el teclado hasta que se pulse enter \n y como máximo 8 caracteres.

Saludos.
405  Programación / Programación C/C++ / Re: duda en: 2 Noviembre 2010, 11:43 am
Todos los días siempre hay 2 personas, de media, que piden en el foro que se hagan tareas....

Lee las normas.
406  Programación / Programación C/C++ / Re: Obtener toda la línea con un enter en: 1 Noviembre 2010, 14:50 pm
Si usas scanf, lo haces todo en una línea, personalmente prefiero printf y scanf al cout y cin ya que se pueden hacer más cosas...

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. char number[9];
  9.    cout << "Give me a binary number (8-bit): ";
  10.    scanf("%8[^\n]", number);
  11.    number[8] = 0;
  12.  
  13.    cout << "Numero: " << number << endl;
  14.    return 0;
  15. }
  16.  

Saludos.
407  Foros Generales / Foro Libre / Re: Se necesitan programadores para proyecto ahora es mas seria la cosa en: 1 Noviembre 2010, 14:38 pm
Una idea demasiado ambiciosa, Google casi tiene terminado su prototipo de un coche que se conduce solo. Además las grandes marcas de coche seguro que trabajan en cosas parecidas...

Saludos.
408  Programación / Programación General / Re: Determinar el tipo de archivo independientemente de la extensión que tengan en: 1 Noviembre 2010, 14:35 pm
Yo te recomiendo que uses una librería multiplataforma hecha totalmente en C/C++ llamada MediaInfo:

http://sourceforge.net/projects/mediainfo/

Esta librería puede obtener información sobre cualquier archivo de música, vídeo, texto, imágenes, archivos comprimidos y ejecutables. Lee las etiquetas ID3v1, ID3v2, ogg tags, wma, ac3 y un largo etcétera...

Saludos.
409  Programación / Programación General / Re: Curso de Delphi en: 30 Octubre 2010, 15:31 pm
Capítulo 10. Punteros I.

Los punteros son variables que almacenan la posición de memoria en la que se encuentra un dato. En Delphi se pueden emplear punteros como se haría en C.

A simple vista las clases y objetos de Delphi, no parecen punteros, pero en realidad si que lo son. Se oculta su verdadera naturaleza para que al programador le sea más agradable trabajar con ellos (ya veremos las clases más adelante).
Otro ejemplo, es el tipo de datos string; este es un puntero que apunta a una región de memoria dinámica en la que se almacena texto. El tamaño máximo de un string ronda los 4 Gb...

El tipo genérico de puntero en Pascal se llama Pointer, es un puntero no-de tipo porque únicamente contiene una dirección de memoria, y el compilador no guarda ninguna información sobre el dato al que apunta.
Los punteros con tipo se declaran utilizando el operador ^ (puntero) antes del tipo de dato de una variable.

Ejemplo:

Código
  1. var
  2.   I: ^Integer;
  3.  

Para que un puntero tenga la dirección de memoria de otra variable, usaríamos este método:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. var
  9.  Puntero: ^Integer;
  10.  I: Integer;
  11. begin
  12.  I:= 5;
  13.  Puntero:= @I; //Tambien sirve Puntero:= Addr(I);
  14.  
  15.  Writeln('I tiene el valor: ', I);
  16.  Writeln('Puntero tiene el valor: ', Puntero^);
  17.  Readln;
  18. end.
  19.  

Creamos una variable de tipo integer y un puntero que apunta a una variable de tipo integer. Introducimos un valor en I y utilizando el operador @ o Addr, le decimos a Puntero que apunte a la dirección de memoria de I. Luego comprobamos que I y Puntero tienen el mismo valor. Para acceder al valor de un puntero hay que poner el operador ^ al final.

Tendríamos algo como esto:



Un puntero también puede apuntar a un valor en concreto, no hace falta que sea una variable. Ejemplo:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. var
  9.  Puntero: ^Integer;
  10. begin
  11.  Puntero^:= 5;
  12.  
  13.  Writeln('Puntero tiene el valor: ', Puntero^);
  14.  Readln;
  15. end.
  16.  


410  Programación / Programación General / Re: Curso de Delphi en: 30 Octubre 2010, 00:44 am
Capítulo 9. Estructuras.

Las estructuras son tipos de datos que contienen otros datos, es una agrupación de variables bajo un identificador común. Para crear una estructura debemos definirla con el método type que con el se pueden definir nuevos tipos de datos.

Por ejemplo:

Código
  1. type
  2.   Cadena = string;
  3.  

De esta forma definimos un nuevo tipo de datos, llamado Cadena, que es tipo string. Después se podría crear una variable con el nuevo tipo de dato.

Código
  1. var
  2. Prueba: Cadena;
  3.  

Puedes definir tipos de datos, que se conocen como datos tipo enum. Son como constantes que tienen un valor numérico, pero los identificas con una cadena.

Código
  1. type
  2.  Coche = (seat, bmw, golf, mercedes, ferrari, porsche);
  3.  

De esta forma, definimos el tipo de dato Coche que solo puede tomar los valores entre paréntesis. En realidad, el tipo de datos Coche es numérico positivo, seat corresponde al 0, bmw al 1, etc...

Un ejemplo de como usarlo:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. type
  9.  Coche = (seat, bmw, golf, mercedes, ferrari, porsche);
  10.  
  11. var
  12.  MiCoche: Coche;
  13. begin
  14.  MiCoche:= bmw;
  15. end.
  16.  

Para crear una estructura se emplea la directiva record, en C se llama struct.

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. type
  9.  Agenda = record
  10.    Nombre: string;
  11.    Apellidos: string;
  12.    Telefono: integer;
  13.  end;
  14.  
  15. begin
  16.  
  17. end.
  18.  

Definimos el tipo de datos Agenda, que es una estructura, y en su interior contiene 3 subvariables: Nombre, Apellidos y Telefono. Para acceder a las variables de la estructura haríamos algo como esto:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. type
  9.  Agenda = record
  10.    Nombre: string;
  11.    Apellidos: string;
  12.    Telefono: integer;
  13.  end;
  14.  
  15. var
  16.  MiAgenda: Agenda;
  17. begin
  18.  MiAgenda.Nombre:= 'Pepe';
  19.  MiAgenda.Apellidos:= 'No tengo apellidos';
  20.  MiAgenda.Telefono:= 62352352;
  21. end.
  22.  

Creamos la variable MiAgenda que es del tipo Agenda, que acabamos de crear. Para acceder a las subvariables se pone un . y el nombre de la variable.

Las estructuras son muy útiles en programación y se emplean mucho. Cuando quieres volcar estructuras en ficheros y trabajar con la memoria de forma más compacta, tienes que declarar la estructura como packed record y la estructura tiene que tener tamaño fijo. Es decir, una estructura que vas a volcar en un fichero no puede tener una variable de tipo string, porque no tiene tamaño fijo... esto ya lo veremos más adelante cuando veamos ficheros.

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. type
  9.  Agenda = packed record
  10.    Nombre: array[0..49] of char;
  11.    Apellidos: array[0..99] of char;
  12.    Telefono: integer;
  13.  end;
  14.  
  15. var
  16.  MiAgenda: Agenda;
  17. begin
  18.  MiAgenda.Nombre:= 'Pepe';
  19.  MiAgenda.Apellidos:= 'No tengo apellidos';
  20.  MiAgenda.Telefono:= 62352352;
  21. end.
  22.  

En este ejemplo, la variable Nombre sólo puede contener 50 caracteres y Apellidos 100. Trabajar con variables que almacenan caracteres de tamaño fijo, como es el caso, puede suponer errores de desbordamiento (Buffer Overflow) si no sabes lo que haces.
Páginas: 1 ... 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 [41] 42 43 44 45
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines