OllyDBGによるシリアルチェック回避

スポンサーリンク

論文終了!!

長かった…。
 
ページ数36ページで、一年間の集大成がやっと完成しました。

PowerPointはさて置き、UGな話題提供…

 

最近は米国で19歳と20歳の大学生が開発した「Nap○ter」から始まり、
「Win○X」「Fre○net」「Win○y」とファイル共有ソフトが氾濫しています…

これを使うと培った能力が低減しそうで、私は手を出して無いが、素人まで簡単に
手を出せるのはどうかと…。

昔は隠しページの解析でさえ…【以後自粛】、今では「google」検索で「ファイル名 zip」で何でも
見つかる…

UNIX知らずに、猫も杓子もハッキングツール。アセンブラ知らずに、パスワード解析ツール…

いかんですタイ!!

単純でもUNIXやアセンブラの知識無くして、プログラムは書けん!サーバ管理も出来ん!

と言うことで、せっかく授業でも習ったことがあるアセンブラを有効利用しましょう。

アセンブラを理解すれば、真面目なとこでソースコードが最適化されます。
それ以外では、ゲームデータの改造やパスワード解析が出来るようになります。

では、パスワード解析してみましょう。パスワード解析の為には最低これだけ覚えておけば、
だいたい意味がわかります。









TEST
AND 演算による比較
CMP減算による比較
PUSHスタックを上に積む命令
CALLサブルーチンを呼ぶ
RET呼出し元へ戻る
JE等しいときにジャンプ
JMP無条件に指定されたアドレスに分岐
JNZ01でなければアドレス分岐。それ以外は次の命令に進む

これだけ知っておいて、パスワードを解析したい「実行ファイル」をデバッガソフトで開きます。

 
 
 

次に、順に以下の処理を行います。


  1. 間違ったパスワード入力したときに表示される文章を検索。
  2. そのアドレスに飛んでるとか、読み込んでるアドレスを検索。
  3. 上で見つかった辺りを逆アセンブル。
  4. 直前に分岐とかあったらそこら変がパスワード解析部だと思われる。
  5. 解析部の分岐を書き換えるか、解析部を解析してパスワードを叩き出す。

ちなみに、解析部の分岐を書き換えるのが、「パッチを当てる」と良く言われるものですね~。

また、著作権保護などの理由から、利用規定などで逆アセンブルを禁じているソフトウェアも沢山
ありますし、分岐周辺にシリアル解析部があるのも最近は少ないです。

 
 
 

まあ単純な例だけど、アドレス00401206がアドレス00401221にジャンプしている
ことが分かりますね。

アドレス00401221は「不正解」の処理をしています。

ちゅうことで、書き換えてみましょう~ホイホイ~!!

 
 
 

これで、「不正解」にはいきません。実際実行してみると…

 
 
 

うまくいきました~!!しかし、これはメモリ上の変化で試したのであって、
実際のファイルは換わってません。換えるためにはパッチをつくりましょうね~。
 
 

※アドレス4011FAで文字列が8バイト、
つまり半角で8文字であるかどうかをチェックし、
8文字でなければエラーへ飛ぶことを示す。即ちパスワードは8文字でなければならないことに注意。

 

いかがでしたか~??

えっ?面倒?
 
シリアルやパッチを探すから必要ない??

確かに、今の例はパスワード解析の簡単な練習ソフトです。
実際は「正解です!」なんて出る訳ありませんしねぇ…。

いやだから…、このメリットを聞かれると…、特に…

………

うが~!!

子曰
 
「飽食終日、無所用心、難矣哉。不有博奕者乎、爲之猶賢乎己。」

書き下し文:子曰く「飽食終日、心を用うる所なきは、難(かた)きかな
。博奕(ばくえき)なる者あらずや、これを為(な)すは猶(な)おに巳(や)むに賢(まさ)れり。」

意味:たとえそれがなんであれ、やる気を出し頭を使っていれば、
そこに人間としての成長があり進歩がある。

タイトルとURLをコピーしました