ハードウェアウォレットをハッキング(1)

ハードウェアウォレットってのはよく考えられている。今までのようにメモリーから秘密鍵を盗み出すアプローチではハッキングできそうもない。どうやったら、ハードウェアウォレットに保管されているコインを盗み出すことができるか?
…しまった!どうなると盗み出されてしまうのか、じゃった(汗)

ワシの思いついたアプローチはこんな感じじゃ!

送金データ(トランザクション)への署名は、ハードウェアウォレット上で行われるので、これはどうにもならん。

でも、送金データを作っているのは、PC上のソフトウェアウォレット。

ならば、署名直前に、メモリー上にある送金データを書き換えてしまえばいいんじゃないのか?そうすれば、改ざんされた送金データに署名してくれるんじゃないか?

例えば、ウォレット上の「送金」ボタンを押した後に、送金先や金額を書き換える。それができれば、そのユーザーが送金する瞬間を狙って、ハードウェアウォレットに保管してある全額をワシのところに送金させることができるのでは……(怖)

で、本当にそんなことが可能なのか?

う~~、そういう疑問が湧いてくると、実験しないではいられないのが びっくり爺さんじゃ!

そんじゃ一丁やってみるとするか。

【メモたんを進化させる】

まず、準備として「メモたん」をメモリー探索だけではなくメモリーの書き換えができるものに進化させる必要があるじゃろ。

名付けて、「メモたん(改)」ってとこか。

【メモリーの書き換え】

もともとメモたんは、マイクロソフトの開発者向けページに書いてある”ReadProcessMemory”ってAPIを実装しただけのものじゃ。
次は、書き換えができないか調べてみると…..やっぱりあるじゃんか!

WriteProcessMemory
https://msdn.microsoft.com/ja-jp/library/cc429067.aspx

メモたんに、このWriteProcessMemoryというWindows APIを追加で組み込めば、簡単にメモリー書き換えツールが完成するような予感がするのじゃ…
(ゲームのチートをする連中は、こういうメモリー書き換えツールを使って、パラメータを自在に書き換えしている。誰でも使っている一般的なローテク手法なのだ)

さあ、うまく行くかどうか作ってみるぞ。

つづく

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です