呼び出し規約調べてた。
→「あれ?もしかして "__fastcall" ってBorlandとMSVC++とで違う? "__msfastcall"というのがBorlandにはあるっぽいけど・・・」
→「Borlandのコンパイラ弄りたいけど、フリーのBorland C++ Compilerだとアセンブラコード生成できねー。TurboDebugger使う気にも今更ならねーし・・・」
→「こうなったら・・・2004年に買って放置してたOllyDbg使った解析入門書あったから、あれ読み直して、Borlandで生成した実行ファイルをOllyDbgで解析して "__fastcall" 周り含めて調べるか・・・」
→「OllyDbg使った解析入門書、書いてある内容をちょっと確かめたいんだけど組み込みアセンブラとか出てきちゃったよ・・・Borland C++ Compilerじゃ無理だし・・・DJGPPはGNUだから出来て当たり前でつまんないし・・・」
→「どうせDLLとかその周りも絡んでくるんだから、ちょっとVC++に寄り道してみるか。」
.NETフレームワークとかCLRとかの仕組みが浸透して、随分様変わりして戸惑ってる。
ただ、自分がそれでもMS頑張ってるなぁ、と思うのがMSDNの充実。少なくともgccやbinutilのinfoコマンドよりは日本語訳や検索の使い勝手、目次の構成、うまく出来てると思う。しかもそれをONLINE、あるいはローカルにDLして自由に閲覧できるのも有り難い。サンプルコードも充実しているし。
2000年前後の、高校~大学時代とはエライ違いだ。
というわけで、暫くはWindows上でのプログラミングを弄ってます。
で、VC++とBorland C++ Compilerで一通りのサンプル作れるようになりつつOllyDbgの入門書2冊読み倒し、OllyDbg使って呼び出し規約を弄り倒す、と。長い回り道だ・・・。
それが終わったらUNIXやるか、アセンブラとOSの境目に戻るか、yacc周りに再戦を挑むか・・・。あ、Binary HacksとDebug Hacksも攻略しないと。でもそこまで辿り着けば、目指すところまで大分近づくんだけど。
コメント