Autor
|
Tema: Capturar Pantalla[Code+Pregunta xD] (Leído 3,659 veces)
|
hepy_92
Desconectado
Mensajes: 130
|
bueno.. este code tiene 2 intenciones, ayudar y que me ayuden xD, ya vendran posts solamente para ayudar.. pero mientras sepa poco no creo que pueda ser asi =S aca va la ayuda, es el code para capturar ventanas activas, y pantalla completa, perdon si ya estaba posteado, pero no lo encontre en el foro Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Command1_Click() 'Captura la ventana activa keybd_event 44, 0, 0&, 0& End Sub
Private Sub Command2_Click() 'Captura toda la pantalla keybd_event 44, 1, 0&, 0& End Sub y aca va la pregunta: teniendo este code, a alguien se le ocurre alguna forma, de enviar la imagen capturada al cliente (teniendo en cuenta que estoi asiendo un troyano), y que se muestre en el form???, una idea de Vivachapas, era capturar pantalla, guardar la imagen en el disco de la victima, enviarla al cliente, i borrarla, pero como puedo hacer que se muestre en un form??? con un imagebox??? se acepta orientacion y ayuda! Gracias de Antemano!
|
|
|
En línea
|
|
|
|
<?BRoWLi?>
Desconectado
Mensajes: 109
Kien mira por ti?
|
yo precisamente e usado ese sistema en mi troyano, una cosa medio xapucilla, pero que va de perlas... si quieres te ayudo y tal.
Eso es guardalo como archivo (yo antes de hacer el keybd_event, ago un resguardo de lo que la victima tenia copiado en el portapapeles), envialo al cliente, devuelvele el texto k tenia en el portapapeles anteriormente, elimina el arhchivo y listo... lo que se te puede complicar es la llegada al cliente...
|
|
|
En línea
|
Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleV Piratas.com.es
|
|
|
hepy_92
Desconectado
Mensajes: 130
|
eso lo tengo mas o menos claro.. lo que falta es la llegada al cliente.. y nose si devolverle lo que tenia en el portapapeles.. pero me conformo con borrarlo xD alguien tiene una idea de como hacer la llegada al cliente?
|
|
|
En línea
|
|
|
|
yovaninu
Desconectado
Mensajes: 349
|
para esta funcionalidad de mi troyano yo hago uso de la libreria DiJPG.dLL... que te permite comprimir un BMP (producto de una captura correcta en bmp) a un jpg cuya calidad de imagen se gradua de acuerdo a un parametro de la libreria. en general de un form normal: Private Declare Function DIWriteJpg Lib "DIjpg.dll" (ByVal DestPath As String, ByVal quality As Long, ByVal progressive As Long) As Long
'variables para la captura de imagen en BMP Dim aImg As Long Dim sImg As Long
'API para captura de pantalla Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
para capturar usas lo siguiente en un boton que puede ser "Capturar" Me.Cls Me.AutoRedraw = True Me.ScaleMode = 1 aImg = GetDesktopWindow() sImg = GetDC(aImg) BitBlt Me.hDC, 0, 0, Screen.Width, Screen.Height, sImg, 0, 0, vbSrcCopy
SavePicture Me.Image, "c:\imagen.bmp" If SetWindowPos(hwnd, -1, 0, 0, 0, 0, SWP_Flags) Then Me.WindowState = 2 End If
con lo que toda la pantalla se queda guardado en imagen.bmp que normalmente sera de casi 1.5MB, y para trasladarlo en el cliente seria muy lento... aqui interviene DIJPG.DLL... Dibujas un control picture con autosize a true en el form: y el siguiente codigo puede ir en un boton "Comprimir": Dim loadStr As String
Picture1.Picture = LoadPicture("c:\imagen.bmp")
loadStr = "c:\test.jpg" SavePicture PictureUno.Image, "C:\tmp.bmp"
retVal = DIWriteJpg(loadStr, 50, 1) '50 es la calidad. disminuir para menor tamaño, un valor 8 o aproximado permite un archivo de solo 10 a 15kb, el cual seria muchisimo mas facil traerlo al cliente.
Kill "C:\tmp.bmp"
y una vez comprimido lo jalas desde el cliente y alli lo muestras en un Picture a tu gusto.... aunque yo lo muestro en un control webbrowser... ya es eleccion de cada uno. La libreria a la que me refiero es facil de encontrarlo con el tio google. Un saludo
|
|
|
En línea
|
|
|
|
~~
|
O mejor q tanto lio usa el modulo cJpe (ya esta muy posteado en el foro, buscalo) y lo haces todo en un paso... En la legada al cliente tienes q guardar los datos en un archivo y cargarlos en un picture con loadPicture
|
|
|
En línea
|
|
|
|
WarGhost
I love basket
Desconectado
Mensajes: 1.070
|
Si como dice E0N es mucho mas fácil utilizar el modulo cJpeg. Modulo cJPEG:
|
|
|
En línea
|
|
|
|
hepy_92
Desconectado
Mensajes: 130
|
ALFIN pude postear xD, perdon por no haber respondido antes, muchas gracias x toos los aportes, y por toda la ayuda! no pude postear antes, pero primero el server estaba caido, lo estaban "opmitimizando".. luego quedo mas lento y con suerte podia leer =S alguien sabe a lo que se debe esto?=S weno de todas maneras muchas gracias! ahora pruebo el code!
|
|
|
En línea
|
|
|
|
hepy_92
Desconectado
Mensajes: 130
|
alguien me ayuda a como usar este modulo????=S
|
|
|
En línea
|
|
|
|
~~
|
Asi: Dim foto As New cjpeg
Private Sub Command1_Click() foto.SetSamplingFrequencies 2, 2, 2, 2, 2, 2 foto.Quality = 50 ' aqui ajustas la calidad dsd 1 a 100 hasi bajas calidad bajas peso foto.SampleScreen foto.SaveFile ("c:\" & "\capture" & ".jpg") End Sub
|
|
|
En línea
|
|
|
|
|
|