Wallet

有沒有一種已知的方法可以從“Bitcoin Android”應用程序(com.bitcoinandroid)導出我的錢包私鑰?

  • October 23, 2017

不久前,我安裝了比特幣 Android 應用程序並在其上移動了 5 個比特幣。快進到現在,新手機、新 ROM 和應用程序似乎完全不願意更新其區塊鏈,這意味著我無法將我的 BTC 轉移到其他地方。

查看原始碼,它建立在 BitcoinJ 的早期版本之上,其中錢封包件本質上是一個序列化的 Wallet 類。

查看錢封包件本身並不太友好,儘管我確信私鑰以相對簡單的形式存在於其中。

所以,這給我留下了以下可能性:

  • 編寫一個小 Java 應用程序連結到相同版本的 BitcoinJ,載入 Wallet 文件,獲取私鑰並列印它。
  • 編寫一個非常愚蠢的腳本,從錢封包件中提取每 32 個字節的序列,將其視為私鑰,將其映射到公鑰,檢查 blockexplorer.com 是否有任何相關活動。或者只是將這些序列中的每一個導入比特幣客戶端並讓它受苦。

在我開始尋找五個比特幣之前,是否已經有一些東西可以解析 BitcoinJ 錢封包件並從中導出密鑰?

我之前寫了一個詳細的答案。本質上,您需要root您的手機並使用apd提取錢封包件。

在你得到它之後,你可以通過在帶有 Java 調試器的序列化錢包中查找 ECKey 引用來對其進行解碼。然後,一旦你有了私鑰,你就可以簡單地將它交給 MtGox,MtGox 將為你進行解碼,然後你就可以將比特幣轉移到任何你喜歡的地方。

此外,BitCoinJ 項目在原始碼樹中包含幾個有用的範例工具。也許使用其中之一將幫助您進行反序列化。

引用自:https://bitcoin.stackexchange.com/questions/3247