có một ví mà tôi đã từng sở hữu với tiền trong đó và tôi không thể truy cập vào nó nữa đừng hỏi tôi tại sao. một câu chuyện dài và một NDA... ai đó đã gửi tiền cho tôi ở đó một cách tình cờ tôi đã không sử dụng ví đó trong hơn một năm. tôi lưu trữ các seed của mình một cách an toàn, nhưng bằng cách nào đó tôi không có seed cho địa chỉ cụ thể đó. phần kỳ lạ là tôi gần như chắc chắn rằng đó chỉ là một tài khoản metamask bình thường được tạo ra bằng nút "tạo tài khoản". vì vậy tôi quyết định trở thành thám tử: điều đầu tiên tôi kiểm tra là liệu ví đó có bao giờ tồn tại trên máy tính của tôi không. metamask lưu trữ dữ liệu ví được mã hóa cục bộ trong trình duyệt, vì vậy nếu hồ sơ trình duyệt vẫn còn đó, thì kho lưu trữ có thể vẫn còn ở đó. tôi đã vào kho lưu trữ tiện ích mở rộng của chrome và lấy các tệp cơ sở dữ liệu metamask. bên trong những tệp đó có một đối tượng được mã hóa gọi là kho lưu trữ. kho lưu trữ đó chứa các seed và khóa mà metamask sử dụng, nhưng mọi thứ đều được mã hóa bằng mật khẩu metamask của bạn. vì vậy tôi đã trích xuất dữ liệu kho lưu trữ và giải mã nó. mã hóa mà metamask sử dụng về cơ bản là một khóa được tạo ra từ mật khẩu của bạn (PBKDF2) để giải mã tải trọng kho lưu trữ (AES). nếu bạn vẫn biết mật khẩu metamask, bạn có thể giải mã kho lưu trữ và khôi phục các cụm seed được lưu trữ bên trong. phần đó thực sự đã hoạt động. sau khi giải mã kho lưu trữ, tôi đã khôi phục được ba cụm seed khác nhau đã được lưu trữ trong cài đặt metamask đó. sau đó là bước suy diễn. metamask không lưu trữ mỗi địa chỉ ethereum một cách riêng lẻ. nó lấy một cụm seed và một cách xác định tạo ra các ví từ nó bằng cách sử dụng một đường dẫn suy diễn (thường là m/44'/60'/0'/0/n). mỗi khi bạn nhấp vào "tạo tài khoản" metamask chỉ tăng chỉ số và suy diễn địa chỉ tiếp theo từ cùng một cụm seed. vì vậy tôi đã viết một kịch bản và bắt đầu suy diễn các địa chỉ từ những cụm seed đó. hàng trăm cái. ...