ЧАСТИНА ПЕРША Пошук гаманця
ЧАСТИНА ПЕРША
Пошук гаманця
РОЗДІЛ 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
Дає:
адресу
приватний ключ
І таких прикладів багато.
✔️ Що тут важливо
Цей розділ — не про інструкції.
Він про те, що:
👉 люди ховають дані дуже по-різному
👉 і інколи — дуже дивно
А значить:
👉 шукати потрібно теж нестандартно
ВИСНОВОК
Як казав Богдан Хмельницький:
“Що одна людина побудувала — те інша зруйнує, але третя відновить.”
З біткоїном усе приблизно так само.
Якщо колись у тебе були:
ключі
гаманець
доступ
значить, десь це залишилось.
Не обов’язково у вигляді готового файлу.
Не обов’язково у зручному місці.
Але сліди — майже завжди є.
Можна підійти до цього по-різному.
Можна:
чекати “везіння”
згадувати паролі навмання
або навіть звернутись до гадалки
А можна інакше.
Можна підійти до цього як до задачі.
Так, як це зробив Григорій Перельман —
коли довів те, що довгий час вважалося недосяжним.
Не магією.
Не удачею.
А системним підходом.
Те, що ти бачив у цьому розділі — це не “чарівні кнопки”.
Це інструменти.
І головне тут не в них.
Головне — в тому, що:
👉 ти починаєш бачити, де шукати
👉 ти розумієш, як шукати
👉 і перестаєш діяти навмання
І ще одна важлива річ.
Біткоїн не прощає помилок.
Але…
Він і не зникає безслідно.
Тому якщо ти дійшов до цього моменту —
значить, ти вже зробив більше, ніж більшість.
А далі буде ще цікавіше.
Бо в наступній частині ми підемо глибше:
у структуру даних
у формати ключів
у те, як усе це працює під капотом
І там уже починається справжня гра.