Идентификация файла кошелька среди множества восстановленных файлов .dat

Привет, мои друзья!

Вот моя ситуация:

Я случайно удалил раздел на своем жестком диске, содержащий единственную копию моего биткойн-кошелька. Фейспалм. После запуска инструментов восстановления данных я нашел и восстановил около 150 .datфайлов. К сожалению, программа восстановления присваивает этим файлам произвольные имена, поэтому я не могу определить, какой из них является моим BTC wallet.dat.

Мой вопрос :

Есть ли быстрый способ или утилита, которая может подтвердить, что файл .dat является действительным биткойн-кошельком? Я хотел бы запустить скрипт для повторения каждого .datи проверки, чтобы найти биткойн-кошелек среди всех .datфайлов, которые я восстановил.

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

Ответы (2)

Я быстро проверил свою систему, вот что может помочь вам определить:

$ file wallet.dat 
wallet.dat: Berkeley DB (Btree, version 9, native byte-order)

$ file blocks/blk00233.dat 
blocks/blk00233.dat: data

и если у вас есть инструмент hexdump (здесь он должен работать в системах типа Unixoide):

$ hexdump -C wallet.dat | more
00000000  00 00 00 00 01 00 00 00  00 00 00 00 62 31 05 00  |............b1..|
... many, many zeros, and from time to time some numbers :-)
00001ff0  04 00 01 00 00 00 02 00  04 00 01 6d 61 69 6e 00  |...........main.|

в то время как blooks полны чисел ...

$ hexdump -C blk00233.dat | more
00000000  f9 be b4 d9 1f ad 06 00  02 00 00 00 f2 50 36 7e  |.............P6~|
00000010  af 4f e8 37 f7 2f 0f db  8b cf a1 3e 34 73 0d eb  |.O.7./.....>4s..|
00000020  f9 ca 1d 05 00 00 00 00  00 00 00 00 76 89 01 91  |............v...|
00000030  46 d5 24 ed 48 bd ff ed  68 77 3e ca 28 0e b8 74  |F.$.H...hw>.(..t|
00000040  30 73 cb aa 0e 32 d9 91  9f a9 ed 73 b1 d2 e5 54  |0s...2.....s...T|
00000050  87 bb 18 18 90 7d 19 02  fd c6 02 01 00 00 00 01  |.....}..........|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*

поскольку вы не хотите делать это для каждого файла, вы можете указать своей системе, что делать:

for i in *.dat; do file $i; done
Замечательно, это именно то, что я искал, спасибо. Используя fileвнутри цикла for, я смог найти файл Berkeley DB.

Вот еще один, возможно, более быстрый вариант:

find /my/folder -exec file {} ";" | grep 'Berkeley'

Эта команда напечатает список всех файлов из /my/folder, которые имеют тип Berkeley DB. Кроме того, это тип файлов биткойн-кошелька.