ЧАСТИНА ПЕРША Пошук гаманця

Поділитися
ЧАСТИНА ПЕРША Пошук гаманця

ЧАСТИНА ПЕРША
Пошук гаманця
РОЗДІЛ 1. З чого все починається

Отже, одного разу ти згадуєш про свої давні експерименти з біткоїном у далеких 2009–2010 роках і раптом ловиш себе на думці:

“А що, якщо там щось залишилось?”

Може, це було просто з цікавості.
Може — “погратись”.
А може — ти тоді навіть не до кінця розумів, що робиш.

Але зараз це вже не важливо.

Важливо інше:
ти вирішив шукати.

І тут є один простий принцип — якщо розумієш, як інформацію ховають, значить зможеш її знайти. Саме цим ми і будемо займатись.

Починай.

Пошта — перше, що спадає на думку
Найпростіший крок — перевірити свою електронну пошту.

Іноді там можна знайти дуже цікаві речі:

листи з реєстрацією на сервісах

резервні копії

просто згадки про гаманці

Але тут є нюанс.

За ці 10–15 років у тебе могло бути:

кілька поштових скриньок

десяток

або взагалі невідомо скільки

Частина з них:

заблокована

забута

або давно втрачена

Тому пошта — це лише розігрів. Іноді щастить, але розраховувати тільки на неї — помилка.

Далі — жорсткі диски
Ось тут починається справжній пошук.

Тобі потрібно знайти файл гаманця.
У класичному варіанті він називається:

wallet.dat
Але не прив’язуйся до цього занадто сильно.

Ім’я могло бути змінене.
Файл міг бути скопійований.
Або взагалі лежати десь у дивному місці.

Тому правильніший підхід — шукати ширше:

*.dat
Я, наприклад, користуюсь WinCatalog — він швидкий і дозволяє працювати одразу з кількома дисками. Але підійде будь-яка нормальна програма пошуку.

Якщо ти знайшов wallet.dat
Тут у багатьох виникає бажання одразу відкрити його в Bitcoin Core і подивитися баланс.

Не поспішай.

Краще зробити трохи розумніше — витягнути ключі.

У консолі Bitcoin Core є команда:

dumpwallet "bitcoinkeys"
На виході ти отримуєш:

master key

приватні ключі

адреси

І вже з цими даними можна працювати значно гнучкіше. Наприклад, імпортувати їх в Electrum і не залежати від старого клієнта.

Але правда така: все рідко буває ідеально
На практиці майже ніколи не трапляється ситуація:
“знайшов файл → відкрив → забрав гроші”.

Зазвичай це виглядає так:

файл називається не так

файл пошкоджений

файл є, але пароль забутий

або знаходиш тільки шматки

І це нормально.

Саме тут починається реальна робота.

Коли знаходиш лише фрагменти
За 15 років диск:

стирався

перезаписувався

забивався новими даними

Тому повністю цілий гаманець — це скоріше виняток.

Що пробувати:

Recuva — інколи допомагає

Hetman Recovery — краще

DD — вже серйозний рівень

Я перепробував різне, і скажу чесно: швидкого рішення тут майже не буває.

Сід-фраза — майже перемога
Іноді щастить більше.

Ти знаходиш seed-фразу — 12 слів.

І здається, що все, кінець історії. Але…

Гаманець її не приймає.

Чому?

помилка в одному слові

або неправильний порядок

І от тут багато хто здається. А дарма.

Виправлення помилок — це не магія
Такі речі вирішуються доволі просто.

Є інструменти:

seedrecover

BTCRecover

Суть дуже проста:

невідомі слова замінюєш на "?"

запускаєш перебір

Програма перевіряє варіанти і через:

кілька хвилин

або годину-дві

ти отримуєш правильну фразу.

І от тоді вже можна відкривати шампанське 🙂

Далі буде складніше (і цікавіше)
Якщо ти дійшов до цього моменту — значить, ти вже в темі.

А далі починається те, що більшість людей навіть не намагається робити:

підбір паролів

робота з токенами

відновлення порядку seed-фраз

і багато іншого

Саме тут стане в нагоді BTCRecover. І тут уже без техніки ніяк.

Але не хвилюйся — розберемо все по кроках.

Робота з BTCRecover (коли вже без варіантів)
Якщо ти дійшов сюди — значить прості способи не спрацювали.

Або:

пароль забутий

або seed-фраза з помилками

або взагалі є тільки шматки

Тут починається більш серйозна історія.

І головний інструмент тут — BTCRecover.

Що це взагалі таке
Це програма, яка перебирає:

паролі

seed-фрази

варіанти з помилками

І робить це значно розумніше, ніж “тупий перебір”.

Я користувався різними варіантами, але рекомендую почати саме з цього релізу:

https://github.com/3rdIteration/btcrecover/archive/refs/tags/1.12.0.zip
⚠️ Важливо:
не качай підробки. Є “сміття” і навіть трояни під виглядом цих інструментів.

Установка
Програма працює через Python.

З мого досвіду:

Python 3 — ок

Python 2 — краще не чіпати

найновіші версії — іноді ламають сумісність

Я ставлю так:

C:\Users\Admin\AppData\Local\Programs\Python\Python39\python.exe C:\Users\Admin\AppData\Local\Programs\Python\Python39\Scripts\pip3.9.exe install -r requirements-full.txt

Файл токенів (це дуже важливо)
Створи файл:

tokens.txt
І запиши туди всі можливі паролі.

Приклад:

123
bitcoin
qaz
камаз
!@#

👉 Чим більше варіантів — тим краще.
👉 Це основа всього підбору.

Підготовка
У папці з програмою має бути:

btcrecover.py

wallet.dat

tokens.txt

Перевірка, що все працює
Перед запуском — перевір.

python run-all-tests.py -vv
Або (як у мене):

C:\Users\Admin\AppData\Local\Programs\Python\Python39\python.exe run-all-tests.py -vv
Параметр -vv — дає детальний вивід.

Запуск підбору

Найпростіший варіант (почни з цього)
Якщо не хочеш одразу занурюватись у всі параметри — просто запусти базовий підбір:

python btcrecover.py --wallet wallet.dat --tokenlist tokens.txt
І все.

👉 Якщо у файлі tokens.txt вже є всі можливі паролі — цього може бути достатньо.

Базова команда:

C:\Users\Admin\AppData\Local\Programs\Python\Python39\python.exe btcrecover.py --wallet wallet.dat --tokenlist tokens.txt --no-dupchecks --no-eta --max-tokens 12
Якщо процес довгий
Можна додати автозбереження:

--autosave savefile
Повна команда:

C:\Users\Admin\AppData\Local\Programs\Python\Python39\python.exe btcrecover.py --wallet wallet.dat --tokenlist tokens.txt --no-dupchecks --no-eta --max-tokens 12 --autosave savefile
👉 Це дозволить продовжити з місця зупинки.

Робота з seed-фразами
BTCRecover вміє не тільки паролі.

Він може:

відновлювати порядок слів

знаходити помилки

перебирати варіанти

Особливо корисно, якщо:

всі слова є

але порядок невідомий

Приклад запуску для seed-фрази
python seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type BIP39 --addr-limit 1 --addrs 17GR7xWtWrfYm6y3xoZy8cXlist ./btcrecover/test/test-listfiles/SeedTokenListTest.txt
Важливий момент
Тут потрібно вказати:

довжину фрази (12 або 24)

мову

тип гаманця

Інакше програма буде перебирати “в нікуди”.

Про списки токенів
Є два режими:

tokenlist — створення варіантів

passwordlist — перебір готових

Також є:

--typos
Вона додає варіанти з помилками (дуже корисно).

Прискорення (якщо вже серйозно)
Якщо все працює — можна прискоритись
Якщо ти вже дійшов до цього моменту і:

програма запускається

тести проходять

підбір іде

значить ти вже розібрався з основами.

І тут є хороша новина — це можна суттєво прискорити.

Прискорення через відеокарту (GPU)

За замовчуванням BTCRecover працює через процесор.
Але якщо підключити відеокарту — швидкість може зрости в рази.

Для цього потрібно встановити:

pip install pyopencl
Перевірка
Після установки варто перевірити, чи все працює:

python -m btcrecover.test.test_passwords -v GPUTests
Або (як у мене):

C:\Users\Admin\AppData\Local\Programs\Python\Python39\python.exe -m btcrecover.test.test_passwords -v GPUTests
Запуск з GPU
Додаєш один параметр:

--enable-gpu
І все — підбір піде значно швидше.

Важливий момент
Тут є нюанс — драйвери відеокарти.

Їх потрібно підібрати правильно (я беру з офіційного сайту виробника, наприклад NVIDIA).
Іноді саме на цьому етапі все ламається.

Якщо не вийшло
Нічого страшного.

Серйозно.

CPU теж працює — просто повільніше.
І багато задач вирішуються і без GPU.

Якщо стане потрібно — повернешся до цього пізніше.
якщо ти дійшов до цього — ти вже і так розберешся 🙂

Моя порада
Якщо виглядає складно — це нормально.

Це не той інструмент, який запускається “з першого разу”.

Але:

розібрався один раз

і далі вже працюєш як по накатаній

Коли вже не хочеться мучитись
Є момент, коли після всіх цих:

пошуків

підборів

команд

токенів

хочеться просто:

“дати програмі все, що є, і нехай вона сама розбирається”

От саме тут і з’являється одна з найсильніших штук у цьому всьому наборі.

FinderOuter — коли потрібно просто знайти
Є програма, яка вміє те, що інші роблять довго і боляче.

Називається вона:

FinderOuter

І якщо коротко — це інструмент, який:
👉 бере “криві” дані
👉 і намагається з них зробити правильні

Без танців з бубном.

Чому вона настільки корисна
На відміну від більшості інструментів, тут не потрібно:

писати команди

розбиратись у параметрах

довго налаштовувати

Ти просто:

вставляєш те, що маєш

натискаєш кнопку

дивишся результат

І інколи цього вже достатньо.

Що вона реально вміє

Робота з приватними ключами
до 4–8 помилок у приватному ключі

до 4 помилок у Base58 (ключі типу 6P...)

робота з mini-private keys

Робота з адресами
до 4–6 помилок в адресі

відновлення за відомою адресою

Публічні ключі
до 3–4 помилок у pubkey (якщо є адреса)

Seed-фрази
відсутні слова

помилки у словах

частково відома фраза

Інші можливості
декодування ключів

робота з hex-експонентами

відновлення шляхів типу:

m/49'/0'/0'/0/4
І головне
Тут не потрібно бути програмістом.

Серйозно.

Це одна з небагатьох програм, де:
👉 не треба знати Python
👉 не треба лазити в консоль
👉 не треба збирати токени

Просто вставив → отримав результат.

Але є нюанс (і він важливий)
Це не “чарівна кнопка”.

Програма працює добре, якщо у тебе є:

хоча б частина даних

хоч якась зачіпка

Якщо немає нічого — вона не допоможе.
Але якщо є хоча б щось — це один з найшвидших шляхів.

Моя порада
Перед тим як запускати важку артилерію типу BTCRecover:

👉 спробуй FinderOuter

Іноді вона вирішує задачу за хвилини, яку ти міг би мучити годинами.

Як це виглядає на практиці
Вставляєш свої дані в одне вікно —
і в другому отримуєш результат.

І в якийсь момент ловиш себе на думці:

“А можна було просто з цього почати…”

РОЗДІЛ 3. Коли шукаєш не файл, а сліди
Є один момент, який багато хто недооцінює.

Ти можеш не знайти:

wallet.dat

seed-фразу

готовий ключ

Але це не означає, що нічого нема.

Дуже часто залишаються сліди.

І якщо ти вмієш їх знаходити — цього вже достатньо.

Чому це працює
Будь-який гаманець — це дані.

А дані:

копіюються

вставляються

десь зберігаються

інколи випадково

І залишаються:

в текстових файлах

у логах

у дампах

у кешах

Іноді навіть у звичайному .txt.

І тут з’являється інструмент
Я не буду зараз грузити теорією.

Скажу простіше:

👉 регулярні вирази — це спосіб
знайти потрібне серед хаосу

Я використовую їх у Notepad++ (версія 8.8.1 — там є зручна функція “позначити все”).

Як це виглядає в житті
Ти відкриваєш величезний файл.
Там тисячі рядків. Сміття.

І серед цього може бути:

"secret": "58d95816c59bd0258fe635e0e77f06ff2a8ae3386626ab3d5d004b113c2967a701"
Очима це знайти майже нереально.

А регулярка — знаходить миттєво:

"secret":\s*"[0-9a-f]{64}01"
Публічні ключі
"pubkey":\s*"[0-9a-f]{66}"
Hex-ключі
"hexsec":\s*"[0-9a-f]{64}"
xprv — дуже важлива штука
Якщо знаходиш це — це майже jackpot.

xprv9(?:\|\s)*([A-Za-z0-9]{106})
Пошук адрес
Ось проста версія:

\b\w{22,39}\b
Але вона дає багато сміття.

Тому я використовую свою:

(\b(bc(0([ac-hj-np-z02-9]{39}|[ac-hj-np-z02-9]{59})|1[ac-hj-np-z02-9]{8,87})|[13][a-km-zA-HJ-NP-Z1-9]{22,39})\b)
Вона враховує:

legacy

segwit

taproot

Приватні ключі (швидкий спосіб)
\b(5|L|K).{48,64}\b
Старі mini-ключі
Колись активно використовувались:

(\b(S).{21,29}\b)
І якщо знайдеш — їх можна конвертувати далі.

Маленький лайфхак
Іноді не потрібно нічого складного.

Просто шукай за довжиною:

\b\w{22,}\b
Так, буде багато сміття.
Але ти різко звужуєш пошук.

Як я це роблю
У Notepad++:

Пошук

Вставляю регулярку

“Позначити все”

Копіюю знайдене

І працюю вже тільки з результатом.

Коли файл занадто великий
Notepad++ іноді не справляється.

Тоді я використовую EmEditor.

(там теж можна, але я ще не повністю розібрався з регулярками — залишу це як поле для експериментів)

Важлива думка
Тут не потрібно знати regex “ідеально”.

Достатньо:

кілька шаблонів

трохи практики

І ти вже бачиш те, що інші просто не помічають.
Як читати ці “дивні символи”
Якщо дивишся на регулярки і думаєш:

“що це взагалі таке?”

— це нормально.

Насправді тобі не потрібно знати все.

Достатньо зрозуміти кілька речей:

[0-9a-f] → це цифри і букви (hex)

{64} → рівно 64 символи

\b → межа слова

\w → букви + цифри

І цього вже вистачає, щоб почати.

Маленький приклад (щоб стало ясно)
Ось регулярка:

[0-9a-f]{64}
Що вона означає?

👉 “знайди всі послідовності з 64 символів hex”

І все.

А тепер подумай:
приватний ключ — це якраз 64 символи.

Тобто ти буквально кажеш програмі:
👉 “покажи мені всі можливі приватні ключі”

Чому це працює так добре
Тому що:

👉 ключі виглядають “однаково”
👉 а текст — хаотичний

І регулярка знаходить структуру в хаосі.

Ще один простий трюк
Не знаєш точно, що шукати?

Шукай приблизно.

Наприклад:

\b\w{30,}\b
Це означає:
👉 “всі слова довші за 30 символів”

І дуже часто серед них:

адреси

ключі

хеші

Головна ідея
Ти не шукаєш “ідеально”.

Ти:

звужуєш поле

відкидаєш сміття

і знаходиш зачіпки

А далі вже працюєш з ними.
РОЗДІЛ 4. Як ховають біткоїн (і як його потім шукати)
В ті далекі роки біткоїн коштував копійки.

І більшість людей взагалі не думала про безпеку.

Але були й інші.

Ті, хто підходив до цього… творчо.

Коли фантазія перемагає здоровий глузд
Один із популярних способів —
сховати ключі прямо в картинку.

Не жарт.

Була навіть спеціальна програма:

HideMyArchive.exe
Працювало це просто:

вставляєш свої дані

обираєш картинку

натискаєш кнопку

І отримуєш файл, який виглядає як звичайне зображення.

А насправді — це контейнер з твоїм гаманцем.

Історія з практики
Я зробив саме так.

І… втратив дуже велику суму.

Чому?

Бо інтернет має одну “чудову” особливість:
👉 він стискає картинки

А разом з ними — і твої дані.

Після цього:

файл виглядає нормально

але всередині вже нічого немає

І все. Кінець історії.

Висновок (дуже важливий)
👉 якщо дані змінюються хоча б на 1 байт — ключ втрачений

Але ідея сама по собі жива
І такі речі все ще можна знайти.

Є навіть програми, які шукають:
👉 “чужорідні дані” в картинках

(я сам з цим експериментував, але тема ще далека до ідеалу)

Як зробити це вручну
Якщо коротко — ось як це робиться без програм:

Береш картинку

Архівуєш файл з ключем

Склеюєш їх

Команда:

copy /b 2.jpg+1.zip 3.jpg
На вигляд — це звичайна картинка.
Але якщо змінити розширення:

3.jpg → 3.zip
— всередині буде архів.

А ось це - ну взагалі дуже цікаво.
https://enteropositivo.github.io/bip39colors/

Ще один трюк — блокнот
Сховати дані прямо у файлі (без програм)
Для цього способу не потрібно нічого, крім звичайного Блокнота.

Робиться так.

Відкрий командний рядок і введи:

notepad c:\MyFile.txt
Система скаже, що файл не існує — погоджуєшся і створюєш його.

Впиши будь-який текст і збережи.

А тепер сама “фішка”.

Знову відкрий командний рядок і введи:

notepad c:\MyFile.txt:PrivateData
Знову погоджуєшся зі створенням файлу.

І тепер вводиш вже те, що хочеш сховати.

Що відбувається
У тебе є файл:

MyFile.txt
Але якщо відкрити його звичайним способом —
ти побачиш тільки перший текст.

Другий — прихований.

Як його знову відкрити
Точно так само:

notepad c:\MyFile.txt:PrivateData
Важливий момент
Цей метод працює тільки на файловій системі NTFS.

І головне
Зовні виглядає так, ніби:
👉 файл звичайний
👉 нічого підозрілого

А насправді — всередині може бути щось зовсім інше.

І зовсім нестандартно
Біткоїн можна сховати навіть у… музиці.

Схема така:

ноти → бінарний код

бінарний код → числа

числа → ключ

Звучить дико — але працює.

Простий варіант (brainwallet)
Те саме, тільки простіше:

Фраза:

You asked for change, we gave you coins
Дає:

адресу

приватний ключ

І таких прикладів багато.
✔️ Що тут важливо
Цей розділ — не про інструкції.

Він про те, що:

👉 люди ховають дані дуже по-різному
👉 і інколи — дуже дивно

А значить:
👉 шукати потрібно теж нестандартно

ВИСНОВОК
Як казав Богдан Хмельницький:
“Що одна людина побудувала — те інша зруйнує, але третя відновить.”

З біткоїном усе приблизно так само.

Якщо колись у тебе були:

ключі

гаманець

доступ

значить, десь це залишилось.

Не обов’язково у вигляді готового файлу.
Не обов’язково у зручному місці.

Але сліди — майже завжди є.

Можна підійти до цього по-різному.

Можна:

чекати “везіння”

згадувати паролі навмання

або навіть звернутись до гадалки

А можна інакше.

Можна підійти до цього як до задачі.

Так, як це зробив Григорій Перельман —
коли довів те, що довгий час вважалося недосяжним.

Не магією.
Не удачею.

А системним підходом.

Те, що ти бачив у цьому розділі — це не “чарівні кнопки”.

Це інструменти.

І головне тут не в них.

Головне — в тому, що:

👉 ти починаєш бачити, де шукати
👉 ти розумієш, як шукати
👉 і перестаєш діяти навмання

І ще одна важлива річ.

Біткоїн не прощає помилок.

Але…

Він і не зникає безслідно.

Тому якщо ти дійшов до цього моменту —
значить, ти вже зробив більше, ніж більшість.

А далі буде ще цікавіше.

Бо в наступній частині ми підемо глибше:

у структуру даних

у формати ключів

у те, як усе це працює під капотом

І там уже починається справжня гра.

Читати далі

Частина 3 Генератори ключів

Частина 3 Генератори ключів

За час роботи з Bitcoin я зібрав невелику колекцію скриптів, офлайн-сторінок та мікропрограм для генерації приватних ключів і адрес. Цей розділ є швидше практичним поясненням до архіву з інструментами та відеоінструкціями, ніж класичним теоретичним матеріалом. Архів містить: скрипти на Python; офлайн-генератори; допоміжні утиліти; відеоінструкції із запуску. Python-скрипти для генерації ключів

Від omunculusi
Частина 2 Баланс гаманця

Частина 2 Баланс гаманця

ЧАСТИНА II — Баланс гаманця Розділ 1. Перевірка балансу адрес Уявімо, що після тривалого пошуку ти зібрав значну кількість Bitcoin-адрес. Наступний логічний крок — перевірити їх баланс. Це потрібно для двох речей: переконатися, що адреси дійсно використовувались; зрозуміти, чи залишились на них кошти. Якщо у тебе є відповідні приватні ключі — задача практично

Від omunculusi
ВСТУП

ВСТУП

Якщо ви втратите банківську карту — її можна відновити. Якщо ж втратите seed-фразу або пароль від Bitcoin-гаманця — можна втратити все. У світі криптовалют діє просте правило: “Не твій приватний ключ — не твої гроші.” Ця книга — про ситуації, коли щось пішло не так. Вона для тих, хто: загубив доступ до гаманця забув

Від omunculusi