- 2008-10-02 (木) 17:44
起動時にパスワードを尋ねて、合致すれば起動するというソフトウェアには
メーラー、カスタマイズソフト、パスワード管理ソフトなどがあるが
適当に作ると簡単に解析される恐れがある。
というわけで、窓の手をターゲットに解析をしてみようw
まず、窓の手の本体であるWinHandXP.exeを実行する。
そして、取り敢えずパスワードを”test”に設定して、終了する。
すると、次回起動時からパスワードを入力するテキストボックスが表示され 合致しない限り起動が出来なくなる。
それでは解析してみようw OllyDbgでWinHandXP.exeを開き、実行する。
次に適当に文字を入力して、エラーメッセージを表示させる。
ここでOllyDbgで一時停止させて、次に「ユーザーコードまで実行」を押した後に
窓の手のエラーメッセージのボタンを押すと、
004F51E7 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
ここでブレークする。取り敢えずステップオーバーで実行させていくと
0040AD4D . 83BB 08030000>CMP DWORD PTR DS:[EBX+308],0
という所にretしてくる。少し上をみると
0040AD3C . B9 94AD4000 MOV ECX,WinHandX.0040AD94 ; ASCII “Password Error”
というのが見えるだろう。
さらに上の方法を見ていくと
0040AD10 . E8 4B64FFFF CALL
というLStrCmp関数をcallしているのが見つかる。
そういうわけで、ここにブレークポイントをセットして、再び起動時のパスワード入力をしてみる。
0040AD10でブレークするのだが、ちょっとレジスタの中身を見てみよう。
EAXには先ほど入力したパスワードが、EDXには適当に入力した文字列が表示されているのが分かる。
そういうわけで
0040AD3C . B9 94AD4000 MOV ECX,WinHandX.0040AD94 ; ASCII “Password Error”
を以下のように変更してみる。
0040AD3C 8B4E 34 MOV ECX,DWORD PTR DS:[ESI+34]
すると、間違えたときのエラーメッセージのタイトルにパスワードが表示されるようになる。
とまぁ、こんな感じで簡単にパスワードが分かっちゃいますよーと言うことですw
パスワードを扱うソフトウェアを開発している人は気をつけましょうw
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://security.symphonic-net.com/krack/%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e3%81%a7%e8%b5%b7%e5%8b%95%e3%82%92%e5%88%b6%e9%99%90%e3%81%99%e3%82%8b%e3%82%bd%e3%83%95%e3%83%88%e3%82%a6%e3%82%a7%e3%82%a2%e3%81%ae%e8%a7%a3%e6%9e%90/trackback
- Listed below are links to weblogs that reference
- パスチェックの回避 from Security Ark