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ú

Mensajes - 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
Si alguien quiere le puedo reenviar el e-mail, es lo que tengo ahora mismo...
Es complicado porque por lo que he leído aunque pone que se han cifrado con cryptolocker en realidad es un torrentLocker y esta puesto para despistar. Aunque claro lees tantas cosas que en realidad no sabes cual creer (Cada uno escribe lo que cree cierto con animo de ayudar, pero como todavía no hay nada claro...).
#3
Ya he probado el servicio de esa web, pero al subir un archivo, me dice que no esta infectado con CryptoLocker, supongo que será debido a que es una modificación, ya que ademas de cifrar el archivo, su peso aumenta en 1kB...

PD: Te he enviado un privado
#4
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?
#5
Cita de: Pique_21 en 24 Noviembre 2014, 19:18 PM
Nada, no consigo dar un sentido racional con letras a esos números tampoco, ni con teléfonos ni códigos ni nada.

Pues ya no se que mas hacer, yo tambien creo que debe ser algo sencillo, yo los datos que le había enviado eran de realizar 2 operaciones:

1: Convertir el nombre a números (Usando su ASCII) y eliminando los 0s (Por eso de Sólo te daré un par de pistas; no tengas en cuenta la Ñ y sólo usaremos los números del 1 al 9 para... )
2: Multiplicar por 8008,467024122477 así que creo que lo que nos falta es saber a ciencia cierta la pista de la ñ y creo que tiene algo que ver con el origen de la empresa o algo así... (Busca el origen, pero ojo no es un número)

A lo mejor es ESPAÑA o ESPAÑOL o algo así...
#6
Te he enviado un privado con 2 posibles soluciones a ver si eres capaz de interpretarlas tu...
#7
Criptografía / Re:
24 Noviembre 2014, 12:53 PM
Te suenan los números de teléfono siguientes: 7441*****9 y 6742*****8 si es así te digo como llegar a ellos por privado.
La verdad que como han dicho por aquí arriba faltan conocimientos (de tu trabajo) para poder interpretar los resultados... Y si además entra en juego números de teléfono, no me parece bien ir publicando las cosas por aquí a ver si te suena algo...
#8
Criptografía / Re:
24 Noviembre 2014, 00:55 AM
¿Se te ocurre algún nombre que tenga ñ? Creo que será la división de la parte anterior a la ñ y la parte posterior, sustituyendo las letras por sus códigos ascii
#9
CitarBuenas. Siento revivir un post tan antiguo pero como (creo) que conozco la solución me pareció oportuno postear.
Ya somos 2, he modificado el el script que no imprimía los espacios para que si lo haga:

Código (bash) [Seleccionar]


@echo off
mode con cols=100
mode con lines=20

call :SLOW aaa     aaaa           aaaa
echo+
echo+
call :SLOW quiero un espacio
pause>nul
goto :eof


:SLOW
set palabra=%*
if not defined palabra (goto :eof)
set palabra=%palabra: =_%
call:length %palabra%
set /a contt=0
set /a contt2=0
set /a cantcopy=1
if [%tam%] gtr [0] (set /a contt2 +=1)
:loopt
call :AUXILIAR %%palabra:~%contt2%,1%%
if [%aux%]==["_"] (
set /a contt2 +=1
set /a cantcopy +=1
) else (goto :end1)
if %contt2% leq %tam% (goto :loopt)
:end1
call :SLOW1 %%palabra:~%contt%,%cantcopy%%%
set /a contt +=%cantcopy%
set /a contt2 +=1
set /a cantcopy=1
if %contt% leq %tam% (goto :loopt)
goto :eof
:SLOW1
set char="%1"
set char=%char:_= %
<nul (set /p msg=%char%)
set /a aux2=%cantcopy%
:loopt1
ping -n 1 127.0.0.0 -w 1>nul 2>&1
ping -n 1 127.0.0.0 -w 1>nul 2>&1
set /a aux2 -=1
if %aux2% gtr 0 (goto :loopt1)
goto :eof
:length
set argl=%*
if not defined argl (goto :eof)
set wordl=%argl%
set /a contl=0
:loopt2
if not defined wordl (goto :end2)
set wordl=%wordl:~1%
set /a contl +=1
goto :loopt2
:end2
set tam=%contl%
goto :eof
:AUXILIAR
set aux="%1"
if not defined aux (goto:eof)
goto :eof



Como veis para poder lograrlo hay que enviar los espacios a la vez que la letra anterior, por lo que si aumentamos mucho el tiempo de espera se verá que los espacios los escribes rápido y las letras despacio, pero es mejor que nada y ademas soporta las multilineas.

Un saludo, espero que a alguien le resulte útil