Скачать ClientServer_Puzzle

ClientServer_Puzzle

Версия:1.0
91 скачиваний
Проверено на вирусы
?
Проверено на virustotal
Версия
1.0
Обновлено
Совместимость
Windows 7, Windows 8, Windows 10, Windows 11
Размер
2.8 МБ
Архитектура
64 бит
Язык
Русский
Разработчик
BaronCoin

Описание

ClientServer_Puzzle — программа для решения публичных «Bitcoin Пазлов».

1. Вступление: что такое «Bitcoin Пазлы» и почему это легально
Bitcoin Пазлы (Bitcoin Puzzles) представляют собой публично выложенные задания, где на каком-либо доступном для просмотра биткоин-адресе хранится приличная сумма. Автор пазла (владелец средств) специально оставляет «загадку»: кто первым найдёт закрытый ключ к этому адресу, тот сможет получить лежащие там монеты.

Это делается в образовательных или исследовательских целях, чтобы энтузиасты и исследователи могли проверить инструменты и алгоритмы для перебора ключей, а также глубже понять, как работает криптография в биткоине.
Участие в таких пазлах полностью легально, так как средства на адресах размещены самим владельцем, а значит, никто не пытается взломать кошелёк стороннего человека без согласия. Фактически это конкурс, где призом служит найденная сумма.

2. Описание программы
Данная система состоит из двух частей:

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

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

3. Подробное описание клиента
Подключение к серверу и аутентификация

При запуске клиент получает от пользователя (через параметры командной строки) адрес сервера, порт и пару «логин:пароль».
Затем он устанавливает связь с сервером и передаёт свои учётные данные. Если данные не совпадают с тем, что ожидает сервер, соединение прерывается.
Получение и возобновление задач

Клиент либо запрашивает новую задачу (если у него нет сохранённого прогресса), либо продолжает предыдущую задачу (если программа была закрыта и есть сохранённый промежуточный результат).
Задача, как правило, представляет собой диапазон ключей. Например: «начало:конец» — от какого ключа до какого нужно произвести перебор.
Загрузка параметров для перебора

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

Запуск инструмента перебора

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

По итогам перебора библиотека формирует некий отчёт (например, файл с последними строками лога или с найденным ключом).
Клиент копирует этот отчёт, складывает в папку, помеченную датой и временем, и передаёт файл на сервер. После успешной передачи клиент может удалить у себя лишние данные, освободив место.

Защита от сбоев

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

В целом, клиент непрерывно:

Получает задание,

Запускает модуль перебора,

Собирает результат,

Отправляет на сервер,

Просит новый диапазон.

4. Подробное описание сервера
Запуск и остановка

Сервер представляет собой обычную программу с пользовательским интерфейсом, где есть кнопка «Запустить сервер» и кнопка «Остановить сервер».
При запуске сервер начинает «слушать» выбранный порт в сети, принимая входящие запросы.
Авторизация клиентов

Когда к серверу подключается клиент, сервер ждёт от него логин и пароль. Если они совпадают с тем, что прописано в настройках, сервер разрешает дальнейшее взаимодействие. Иначе соединение завершается. (Защита от атак переполнения буфера).

Выдача задач

Сервер хранит список «незакрытых» диапазонов ключей (пазлов).
Когда клиент запрашивает новую задачу, сервер выдаёт один диапазон из списка и убирает этот диапазон из «очереди». Так никто другой не получит то же самое задание и не возникнет дублирования.

Передача параметров

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

Приём результатов

Когда клиент заканчивает перебор по своей задаче, он отсылает обратно файл с отчётом (или другим результатом).
Сервер сохраняет полученный файл и оставляет в папке для дальнейшей проверки. Затем сервер подтверждает клиенту, что всё получено.

Регистрация событий

Сервер ведёт лог (список сообщений), куда записывает каждое подключение, все полученные файлы, а также информацию о возникших ошибках.
Этот лог выводится в окне программы. Кроме того, администратор (человек, запустивший сервер) может периодически чистить или сохранять его.

Таким образом, сервер является центральной точкой, где:

Хранятся задания,
Контролируются учётные данные,
Собираются и аккуратно раскладываются отчёты (результаты),
Фиксируется вся работа.

5. Итоговая схема работы
Администратор настраивает сервер:

Задаёт порт, логин и пароль для клиентов,
Загружает список задач (диапазонов для перебора) в сервер,
Указывает параметры, необходимые для перебора.
Клиент запускается у пользователя, который хочет участвовать в решении пазлов.

Клиент считывает адрес и порт сервера, логин/пароль,
Соединяется с сервером и подтверждает свою подлинность,
Получает задачу (иногда промежуточная задача продолжается),
Запрашивает актуальные параметры,
Запускает перебор, пока не достигнет конца заданного диапазона,
Отправляет результат на сервер.
Сервер хранит полученные результаты и выдаёт клиентам новые задачи, пока пазлов не останется.

В целом это стандартная модель «клиент–сервер»: центр (сервер) раздаёт работу и собирает решения, а исполнители (клиенты) выполняют расчёты и возвращают результат.

6. Законность и применение
Все задания (Bitcoin Puzzle) загружаются добровольно владельцем средства, тем самым делая подбор ключа легальным, ведь это не взлом чужого адреса, а публично объявленное соревнование с призом.
Подобные проекты обычно используются для обучения, экспериментов в криптографии и практической проверки инструментов.
Благодаря серверу, одна или несколько машин могут параллельно выполнять разные фрагменты поиска, что ускоряет процесс и позволяет участникам видеть, какую часть уже сделал кто-то другой.

Главное:
Никаких незаконных действий: всё связано только с публично выложенными пазлами.
Удобство распределения задач: администратор просто заносит новые диапазоны в сервер, и клиенты автоматически их получают.
Гибкость настроек: можно менять параметры перебора (например, глубину или способы вычислений), не меняя код на стороне клиента, а лишь обновляя данные на сервере.
Таким образом, и клиент, и сервер образуют единую систему для легального распределённого перебора ключей в рамках «Bitcoin Пазлов».

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

P.S. За основу взят cuBitCrack, работает на GPU, все тесты можно посмотреть в интернете, примерно RTX 3060 = 850 миллионов комбинаций в секунду.

Автор программы не несёт ответственности за любое неправомерное или некорректное использование данного программного обеспечения. Вся ответственность за последствия использования лежит на конечном пользователе.

BaronCoin

Официальный представитель

Kwork

Все приложения (3)

Рейтинг

0
0 оценок
Нажмите, для быстрой оценки

Оставить отзыв

Ваше имя*
Ваш email*
Комментарий*

Отзывы