Как привязать программу к железу python

hl753m

Потрачен

Автор темы

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

У кого есть исходник скиньте буду благодарен)

kin4stat

Только смысл? Исходники питона легко вытащить очень. Но если так хочешь, то можешь использовать эту функцию(Python 3.6+) взять Mac, запихнуть это в md5 и сложить

Получение PC UUID:

import subprocess current_machine_id = subprocess.check_output(‘wmic csproduct get uuid’).decode().split(‘n’)[1].strip()

Получение MAC:

from uuid import getnode as get_mac mac = get_mac()

Думаю что с этим делать дальше уже решишь сам

Источник: www.blast.hk

Как реализовать привязку софта на Python к железу?

Имеется скрипт на Python, нужно как-то привязывать его к каждому компьютеру + код активации.
Как это можно реализовать?

  • Вопрос задан более трёх лет назад
  • 5130 просмотров

4 комментария

Как сделать активацию серийного номера в программе | Урок Python

Оценить 4 комментария

abyrkov

Только зачем? Питон все равно не компилица, а сорцы можно на изи поменять
Dark Hole:
Ну да.
А файлы .pyc по вашему это что?

idegree

laxikodeje: байт-код, который легко раскомпилица обратно.
Андрей Шубин: угу.
только он все же «компилится»
Решения вопроса 1

— Скрипт можно перегнать в exe файл. С помощью py2exe и ему подобному.

— А на счет привязки к железу, получаете уникальный hardware ID:
https://stackoverflow.com/questions/38328176/getti.
И уже к этому ID привязываете код активации.

Ответ написан более трёх лет назад
Нравится 1 5 комментариев

В качестве уникального ID можно брать MAC-адрес.

>>> import uuid
>>> mac_addr = hex(uuid.getnode()).replace(‘0x’, »)
>>> print(mac_addr)
6817293b11e5

Читайте также:
Какая программа лучше для редактирования документов

А ключом активации будет засунутый в md5 этот самый MAC-адресс.

>>> import hashlib
>>> h = hashlib.md5(mac_addr.encode(‘utf-8’))
>>> key_activation = h.hexdigest()
>>> print(key_activation)
cf8d6b2ecb518e72f6fab0d9fba290b3

Ну, можно соль добавить для параноии.

Из exe — декомпилируется.
exe-файл содержит интерпретатор Питона (который сложно декомпилировать, но его и не нужно декомпилировать для взлома) + те же исходники/байт-код.

laxikodeje: Любую программу крэкают или пишут к ней кей-гены, вне зависимости от языка, на котором она написана. Было бы желание.

Если у человека уровень квалификации позволяет возится с бинарниками, то он и скрипт на питоне сможет написать. И вряд ли его что-то остановит. А для обычных пользователей это достаточная преграда.

Создание активации программы через хостинг с привязкой по железу


И нет смысла особо заморачиваться.

pcdesign:
есть технологии и Python относится к их числу, в том числе и ввиде exe-файла — где взлом на порядки проще.

Если у человека уровень квалификации позволяет возится с бинарниками, то он и скрипт на питоне сможет написать. И вряд ли его что-то остановит. А для обычных пользователей это достаточная преграда.
И нет смысла особо заморачиваться.

Нет или есть смысл — зависит не от квалификации нежелающего/желающего возиться с бинарником.

А от стоимости и распространенности защищенного продукта.

Ломать чужую или писать свою систему — совсем не одно и то же.
Тут дело в менталитете (что тебе интереснее) и в объеме работ (написать сложную систему долго, нужно вникать в предметную область, беседовать с людьми, в то время как для взлома ничем таким заниматься не нужно, сиди себе с байтиками играйся).

С точки зрения заказчика — да. Стоимость взлома против стоимости написания заново.

Читайте также:
Отключить аудио программу на телевизоре Haier

Однако, если граница проходит хотя бы по 30-50 тыс. рублям (а может хацкер и за 15 тыс. согласится) — взломать уже дешевле.

В том время как 30-50 тыс. рублей с точки зрения разработки — это такая маааалюсенькая не очень сложная в разработке системка.

Для очень распространенных систем — и того проще. Тут кто-то даже ради спортивного интереса взломает, а ты бесплатно (ну не совсем бесплатно, крякер подсадит тебе удаленно управляемого бота, это будет твоя плата, будешь частью бот-сети для DDoS-атак) задействуешь взломаннную систему.

А написать один несложный скрипт — естественно проще, чем его взламывать.
Но к целым системам это не относится.

Источник: qna.habr.com

Reverse shell на Python. Осваиваем навыки работы с сетью на Python на примере обратного шелла

В этой статье мы разберемся, как при помощи Python передавать сообщения между двумя компьютерами, подключенными к сети. Эта задача часто встречается не только при разработке приложений, но и при пентесте или участии в CTF. Проникнув на чужую машину, мы как-то должны передавать ей команды. Именно для этого нужен reverse shell, или «обратный шелл», который мы и напишем.

Существует два низкоуровневых протокола, по которым передаются данные в компьютерных сетях, — это UDP (User Datagram Protocol) и TCP (Transmission Control Protocol). Работа с ними слегка различается, поэтому рассмотрим оба.

Протокол UDP предназначен для передачи пакетов от одного узла к другому без гарантии доставки. Пакет данных обычно состоит из двух частей. В одной — управляющая информация, в том числе данные отправителя и получателя, а также коды ошибок. В другой — пользовательская информация, то есть сообщение, которое передается.

Читайте также:
Как убить флешку программой

Важно здесь то, что UDP не гарантирует доставку пакета (правильнее говоря, датаграммы) указанному узлу, так как между отправителем и получателем не установлен канал связи. Ошибки и потери пакетов в сетях случаются сплошь и рядом, и это стоит учитывать (или в определенных случаях, наоборот, не стоит).

Протокол TCP тоже доставляет сообщения, но при этом гарантирует, что пакет долетит до получателя целым и невредимым.

Переходим к практике

Писать код мы будем на современном Python 3. Вместе с Python поставляется набор стандартных библиотек, из которого нам потребуется модуль socket. Подключаем его.

import socket

Дальше мы договоримся, что у нас есть сервер и клиент, где клиентом обычно будет наш компьютер, а сервером — удаленный. В реальности все это условности, и речь может идти о любых двух компьютерах (в том числе виртуальных машинах) или даже просто двух процессах, запущенных локально. Важно только то, что код по разные стороны будет разным.

На каждой из сторон первым делом создаем экземпляр класса socket и устанавливаем для него две константы (параметры).

Используем UDP

Сначала создадим место для обмена данными.

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru