Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - ramiro069

#1
Buenas, estoy intentando hacer un programa para enviar una combinación de teclas (Ctrl+Alt+F12) a un programa en segundo plano, para ello estoy usando la función PostMessage de la API de windows, el caso es que si envío solo F12 o Ctrl funciona (el ALT no) pero si intento usar una combinación de ambas no, el código que estoy usando es este:
HWND windowHandle = FindWindowA("Qt5QWindowIcon", NULL);   //Can't find a proccess

   //Send a key
   if( windowHandle ) //This one fails
   {
              PostMessage(windowHandle, WM_SYSKEYDOWN, VK_CONTROL, 0);
              PostMessage(windowHandle, WM_SYSKEYDOWN, VK_MENU, 0);
              PostMessage(windowHandle, WM_KEYDOWN, VK_F12, 0);
              Sleep(1000);
              PostMessage(windowHandle, WM_KEYUP, VK_F12, 0);
              PostMessage(windowHandle, WM_SYSKEYUP, VK_MENU, 0);
              PostMessage(windowHandle, WM_SYSKEYUP, VK_CONTROL, 0);
   }else{
     cout << "No se ha encontrado la ventana!!" << endl;
   }


Por otro lado he intentado con keybd_event y envía bien las teclas, pero si tengo la ventana en primer plano (y no es lo que quiero)
      keybd_event(VK_CONTROL, 0x9d, 0, 0);
     keybd_event(VK_MENU, 0xb8, 0, 0);
     keybd_event(VK_F12, 0xd8, 0, 0);
     Sleep(1000);
     keybd_event(VK_F12, 0xd8, KEYEVENTF_KEYUP, 0);
     keybd_event(VK_MENU, 0xb8, KEYEVENTF_KEYUP, 0);
     keybd_event(VK_CONTROL, 0x9d, KEYEVENTF_KEYUP, 0);


Se que en el foro habéis hablado ya de estas funciones, pero no logro encontrar el problema de mi código, y simplemente agradeceros vuestra ayuda.


EDITO: Lo he conseguido solucionar, la manera correcta es la siguiente:
   if( windowHandle ) //This one fails
   {
              PostMessage(windowHandle, WM_SYSKEYDOWN, VK_CONTROL, 0x209d0000);
              PostMessage(windowHandle, WM_KEYDOWN, VK_F12, 0x00d80000);
              Sleep(1000);
              PostMessage(windowHandle, WM_KEYUP, VK_F12, 0xc0d80000);
              PostMessage(windowHandle, WM_SYSKEYUP, VK_CONTROL, 0xe09d0000);
   }else{
     cout << "No se ha encontrado la ventana!!" << endl;
   }


El problema eran los Lparams.
NOTA: La pulsación de la tecla ALT se realiza por medio del Lparam de WM_SYSKEYDOWN.
#2
Buenas a todos,

Unos amigos míos que tienen una pequeña empresa, han recibido un e-mail en el que se hacían pasar por correos, este e-mail contenía un enlace a una web que tras rellenar un captcha infectaba el ordenador con una variación del CryptoLocker y como resultado se le han cifrado un montón de archivos, incluso ha llegado a un servidor de archivos que tienen montado.

Cuando se han dado cuenta, han quitado Internet a ese ordenador y lo han apagado y al menos parte del servidor a quedado sin cifrar.

He ido a ver si les podía echar una mano y tras estar toda la tarde no lo he conseguido, he probado la mayoría de programas que existen para descifrarlos, he intentado encontrar en el registro la clave sin éxito. al menos hemos localizado un archivo cifrado, del que tenían una copia sin cifrar...

También he probado el shadowExplorer pero solo hay archivos de hace mas de 1 año...

También me he reenviado el correo por si necesito infectar alguna máquina virtual y vigilar lo que hace.

¿Alguien me puede ayudar y decirme que pasos puedo seguir para intentar solucionarles el problema?