Casa > C > Como Podemos Tirar Screenshots Usando O Python No Windows?

Como podemos tirar screenshots usando o Python no Windows?

Este tutorial irá ajudá-lo a hackear janelas , Vamos iniciar o tutorial.

Tirar screenshots

A maioria dos pedaços de malware e frameworks de testes de penetração incluem a capacidade de tirar screenshots contra o alvo remoto. Isso pode ajudar a capturar imagens, quadros de vídeo ou outros dados sensíveis que você pode não ver com uma captura de pacotes ou keylogger. Felizmente, podemos usar o pacote PyWin32 para fazer chamadas nativas para a API do Windows para capturá-las. Um capturador de tela utilizará a Interface do Dispositivo Gráfico do Windows (GDI) para determinar as propriedades necessárias, como o tamanho total da tela, e para capturar a imagem. Alguns softwares de captura de tela só vão pegar uma imagem da janela ou aplicação atualmente ativa, mas no nosso caso queremos a tela inteira. Let’s get started.

  1. import win32gui 
  2. import win32ui 
  3. import win32con 
  4. import win32api 
  5.  
  6.  
  7.  
  8.  
  9.  
  10. # grab a handle to the main desktop window 
  11. hdesktop = win32gui.GetDesktopWindow() 
  12.  
  13.  
  14. # determine the size of all monitors in pixels 
  15. width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN) 
  16. height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN) 
  17. left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN) 
  18. top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN) 
  19.  
  20.  
  21. # create a device context 
  22. desktop_dc = win32gui.GetWindowDC(hdesktop) 
  23. img_dc = win32ui.CreateDCFromHandle(desktop_dc) 
  24.  
  25. # create a memory based device context 
  26. mem_dc = img_dc.CreateCompatibleDC() 
  27.  
  28. # create a bitmap object 
  29. screenshot = win32ui.CreateBitmap() 
  30. screenshot.CreateCompatibleBitmap(img_dc, width, height) 
  31. mem_dc.SelectObject(screenshot) 
  32.  
  33.  
  34. # copy the screen into our memory device context 
  35. mem_dc.BitBlt((0, 0), (width, height), img_dc, (left, top),win32con.SRCCOPY) 
  36.  
  37.  
  38. # save the bitmap to a file 
  39. screenshot.SaveBitmapFile(mem_dc, 'c:\\WINDOWS\\Temp\\screenshot.bmp') 
  40. # free our objects 
  41. mem_dc.DeleteDC() 
  42. win32gui.DeleteObject(screenshot.GetHandle()) 

Lets crack this code one by one

Line 11:

First we acquire a handle to the entire desktop , which includes the entire viewable area across multiple monitors.

Line 15–18:

We then determine the size of the screen(s) so that we know the dimensions required for the screenshot.

Linha 22- 23:

Criamos um contexto de dispositivo usando a função GetWindowDC e passamos um handle para o nosso desktop.

Linha 26:

A seguir precisamos criar um contexto de dispositivo baseado em memória onde armazenaremos nossa captura de imagem até armazenarmos os bytes de bitmap em um arquivo.

Linha 29 -31:

Criamos então um objeto de bitmap que é definido para o contexto do dispositivo do nosso desktop. A chamada SelectObject então define o contexto do dispositivo baseado na memória para apontar para o objeto bitmap que estamos capturando.

Linha 35 :

Usamos a função BitBlt para pegar uma cópia bit a bit da imagem da área de trabalho e armazená-la no contexto baseado na memória.

Linha 39:

Pense nisto como uma chamada de memória para objetos GDI. O passo final é descarregar esta imagem para o disco . Este script é fácil de testar: Basta executá-lo a partir da linha de comando e verificar o directório C:\WINDOWS\Temp para o seu ficheiro screenshot.bmp. Vamos passar para a execução do shellcode.

De Fotinas

Como activar a gravação do WhatsApp Call num Android One, porque não vejo nada na sua pasta 'calls' :: Que língua devo aprender depois de ter aprendido Python?