Binary Hacks

http://0xcc.net/binhacks/quiz.html
53点だった。まだまだ修行が足りないな。Q1、3、5、6、8、9、10、11が正解。
これは得点を競うというよりも、どのくらいネタとして楽しめるか、というものな気がする。Q2の?f@@YAXXZはVC++のマングリング名だとか。


Q2の「extern "C++"」なんて使ったことないなあ。でもライブラリでは明示しておく意味があるかも。
Q5の「free(NULL)」だけど、必ず「if(p)free(p)」って書いてた(ただ選択肢としては1が明らかに間違いなのでそちらを選んだ)。80年代のコンパイラではこれがお約束だったので、刷り込まれていた。delete NULL;が(規格として)許容されているのは知っていたけど、実装としてif(p)free(p)になってるのかと思っていて、確認したら単にfree(p)してるだけだった。これからはfree(NULL)を気にしないで使っていくことを誓います。
Q6で、バイナリアンのゴルフはコードゴルフだけじゃないんだということを知りました。
あとLinuxが全部「GNU/Linux」になってる。


で11/15に「SEA & FSIJ 合同フォーラム」に行ってきました。
shinh氏の自作プレゼンツールがイカす。
58バイトhello worldすごすぎ。ヘッダを実行というのは考えつくとしても、内容を埋めるのが一苦労。ELFと比べるとPEは無駄が多くて洗練されてないなあ。
そういえばデータをコードとして実行するというのは既視感があるな。Z80とか8086でもやってたと思う。


wo氏のGDBを目的外に使う話。DWARF2でテキストアドベンチャーとか面白そう。
きっとタイトルは「GDBインサイダーズ」で、GDBに巣食う魔物を退治するためにレジスタが立ち上がるという話。たぶん。
eax(レッド)…リーダー。正義感が強くスピードが速い。
ecx(ブルー)…サブリーダー。必殺技は連続キック。
edx(イエロー)…カレーが大好物。
ebx(パープル)…紅一点。その場でベースアドレッシング計算をこなす。