2009年06月16日
世界には10種類の人間がいる。バイナリを理解できる人間と、そうでない人間だ。
さぁあなたはどっち!? と、そんなわけでBinary Hacks ―ハッカー秘伝のテクニック100選
を今更読みました。
バイナリーハックと聞くとすごい難しそうな事が書いてあると思ってしまう。
ハッカー秘伝のテクニックと聞くと初心者には関係のない本のように思えてしまう。
が、Linuxでのプログラミング初心者にこそ必要な本であると思った。
Cでプログラミングしている時に、segmentation faultが発生して原因がわからず困っているとき。
どこかでメモリリークを起こしているんだけど、その場所の特定の仕方がわからないとき。
実行するのに共有ライブラリが必要なんだけど、共有ライブラリを後からスタティックリンクにしたいとき。
どこかでバッファオーバーフローを起こしていて、データ破壊により不特定の場所で落ちる原因を調べたいとき。
そんなよくある問題に、解決方法への道しるべをこの本は教えてくれる。
もちろんプログラム実行中に、自分自身を書き換えて動作を変えてしまう方法や、オブジェクトファイルを自力でロードするなどいかにもハック的な知識も豊富だ。
この本を読むまでバイナリの世界はとても難解な世界で、偏屈な人間がもてあます暇も費やし探求する世界だと思っていた。
しかし本当はそうではなく、この本を1冊読むだけでどんな景色かを見渡すことの出来る世界だと言うことがわかる。
それはバイナリの世界の底が浅いと言うことではない。
とてもシンプルなルールに基づいている世界という意味だ。
そんなシンプルな世界では禁止されている事がほとんど無い。
そのシンプルなルールに則れば何だって出来る。それがハックなんだろうな。
2009年01月15日
ヘタリアって腐向けっ?
最近ヘタリア読んでみた。
ヘタリアとは第二次世界大戦時のイタリア、ドイツ、日本などの国を擬人化し、それぞれの国の特徴をそれぞれのキャラにあてはめ、さらに軍事関係がへたれで有名なイタリアをいじくりさげずみ陥れて楽しむマンガである。
まぁ最近話題になる作品だったので読んでみたけどそこそこ面白かった。
そしていろいろブログを回るとヘタリアオンリーイベいい国作ろう世界会議と言うのが近々大阪であるようだ。
ほー、なるほど。時間があれば行ってみようかなと参加サークルを見てみると・・・。
ほとんどが女性のようだ。と言うか男がいない・・・??
しかもなんだか腐臭が・・・。
サイトに行くと○○×○○という表記が目立つ。
確かにキャラは男ばっかりだし絵はかわいい感じだし女性受けはしそうだが・・・。
へたれのイタリアに代表し基本的にへたれキャラばかりのヘタリアなので、その辺でキャラをいじりやすいのだろうか。
ちなみにGoogle先生に「ヘタリア 日本」まで入力すると検索候補に「ヘタリア 日本 受け」と出てくる。
どうやらGoogle先生的には日本は受けらしい。ちなみにドイツも受けのようだ。ドイツは受けキャラなのか・・・性格的に攻めかと思ったが。と言うか攻めは誰なんだ・・・。ヘタレ×ヘタレ祭りの悪寒。
そして受けの本命かと思われるイタリアはGoogle先生的に受けではないらしい。よくわからん。
で、ヘタリアには韓国もちょこっと出てくるのだが、例によって【韓国】「我が国を侮辱している!」… 日本アニメ『ヘタリア』の放送禁止を求める署名運動がネチズンの間で加速と言うことに。
まぁ韓国が常識的には考えられない斜め下の行動を取るのはいつものことなのでスルーだ。ちなみに放送禁止を求めているアニメ版に韓国は登場しない。
それよりもイタリアの反応が気になる。あまりのへたれ描写にこれはひどいと言いたくなるぐらいのフルボッコぶりだ。
まぁヘタリア的イタリアなら「わーい。僕がタイトルで表紙を飾ってるよ!いいでしょーうらやましいでしょードイツぅ」などと言いそうだし許してくれるのかもしれない。
2008年02月08日
GoogleのDIコンテナの本が出る

Googleが出した軽量DIコンテナのGuice解説本。
知るかぎりGuiceで初の本となるんだけどGuiceが出たのが去年の3月、Guiceはあんまり流行ってないのかな。
Springは大きなフレームワークだからGuiceのようにDI専用の軽量DIコンテナもありかなと思ったけど。
規模が小さい開発だとDIは必要なくて、規模が大きいとSpringのようなのが好まれるんだろうか。小さな開発でもユニットテスト用に使えそうだが。
洋書にしては安いので読んでみたいが・・・英語・・・。
英語も勉強しなくちゃと思いつつも・・・うう。
でもとりあえず買う。
買うと読むかもしれないし、読まないかもしれない。でも買わないと可能性はゼロだ。
2008年02月06日
暗号解読
ううむ、これはなかなかおもしろい本だった。どれぐらいおもしろいかというと本に集中してしまい電車を乗り過ごしてしまうぐらいだ。
この本は、古代ローマの時代のシーザー暗号から未来の暗号の量子暗号まで様々な暗号と、それに絡む人々や国々のストーリーとなっている。おそらく、各種暗号とその解読方法を示すだけならつまらなくて退屈な解説本になっていただろう。暗号の裏に表れる、人間のストーリーがとても興味深かった。
秘密の暗号の手紙が解読されれば死刑、解読されなければ無罪の囚われの女王メアリー。
第二次世界大戦時、無敵の暗号器エニグマに対し、ドイツの脅威を間近に受け、生きのびるためにエニグマ暗号を必死で解読するポーランドの暗号局ビュロ・シフルフ。
ロゼッタストーンに刻まれた難解な古代エジプトのヒエログリフの解読、また他の古代言語の解読の歴史とそれに伴う歴史の修正。
それまでの暗号の常識と欠点である、"鍵"の配布の概念を消し去る"安全な鍵交換"を実現するデフィーとヘルマンの物語。
また、その偉業を何年も前に実現していたイギリスの最高機密機関、英国政府通信本部(GCHQ)。GCHQの匿名の英雄たちとその組織の性格ゆえの隠蔽工作。
暗号の手法だけでなく、鍵までも公開する現在最強の暗号、公開鍵暗号のRSAを巡る3人の物語。
その最強のRSA暗号を解読する量子コンピュータ。
現在最強の暗号を打ち破ると同時に、"原理的に絶対に解読できない暗号"量子暗号を生み出す量子論。
どれもむちゃくちゃおもしろかった。同じ"暗号"にまつわるストーリーだけど、様々なバックグラウンド、人間模様、その暗号が解読されたことによる影響が違って次の物語を読むたびに新しい刺激があってすばらしかった。
個人的には日頃お世話になっているRSA暗号のあたりがおもしろかったな。
量子論の分野になると理解できる範囲を超えたが・・・。量子コンピュータはまだわかる。わかると言っても「ふーん」レベルだけど。でもよく考えると頭が混乱し出す・・・。多数の状態をシュレーディンガーの猫のような状態の重ね合わせの状態で表す。すると量子コンピュータ上の一つの状態で、現在のコンピュータで言う多数の状態を同時に表すことができると。多数の状態を一度に表すことができるのは良いとして、その多数の候補から求めている答えに絞り込むのはどうやるんだろうか。ヤングの実験を光子1個ごとを打ち出しても明暗の縞ができるように、そしてその明暗の縞が求める答えのような感じなんだろうか。多数の状態を持つ光子を打ち出して、量子論による恐るべきかつ神秘的な働きによってこの位置に光のピークを検出したので答えはXだ!みたいな。いや、適当だけど。
機会があったら量子コンピュータ関連の本にも手を出してみるか。生きてるうちに量子コンピュータのプログラミングをするかもしれないし。
さて、この「暗号解読」と同時に、同じ著者サイモン・シンの「フェルマーの最終定理」も買ってあるので次にそれを読んでみよう。

同じ著者でおもしろい、との評判だけで買ったので内容はさっぱり知らないが。
フェルマーの最終定理というと、結構昔のすごい人がすごいことを思いついたけど、肝心の所は書いてくれなくて、かつすごい難しいので、それ以降すごい数の数学者がすごいがんばったけど解けなくて、最近すごい数学者が答えを出した。ぐらいの知識しかないので理解できるかは不明だがw
でもきっとこの本がしばらく電車の退屈な時間を楽しい時間に変えてくれるだろう。
明日から楽しみだ!
2008年01月25日
Springの本
現在開発中のチャットプログラムの開発は、Struts + Spring + iBATISで行っている。
WebアプリケーションフレームワークにStruts、DIコンテナにSpring、O/RマッピングにiBATISだ。
Springに関する本を持っていなかったため、Webの情報に頼っていたが、やはり何か本を買った方がいいなと言うことで、以前図書館で借りたことがあるJava・J2EE・オープンソース Spring入門を購入。

読み返すと以前は返却期間もあって読み切れてなかったのか、今だからこそわかる発見みたいなのが合ってよかった。
内容は「入門」とあるように、全くの初心者にも優しい内容でわかりやすかった。
第1章はそもそもWebアプリケーションとは何か、なぜSpringのようなDIコンテナが必要になったのか、その歴史から解説してあるのでWeb開発初心者に優しい。ただしJavaの知識は求められる。Javaと言うよりオブジェクト指向か。安定依存原則、依存関係反転原則を実現するためにあると。これらの原則はこの本では軽く触れられている程度なので深く知りたい場合はプログラマのためのJava設計ベストプラクティスが詳しい。
そのほかSpringの導入と設定方法、DIとはどのようなもので、使うとどのような問題がどのように解決するか。Springによるアスペクト指向プログラミング(AOP)のやりかた。ここも、ある問題があり、それをどのようにAOPが解決してくれるかを提示してある。ちなみにAOPのサンプルとしては例外処理をAOPで解決するというのが例で出ていた。後はSpringによるDBトランザクションの管理、SpringとJDBC、Hibernate、iBATISとの連携方法の紹介。Hibernateは現在の最新である3系ではなく、2系を使用している。
これ一冊でDIとは何か、どのように使うとどのように便利になるのか、AOPとは何か、各種O/RマッピングフレームワークとSpringによるDBへの永続化の初歩などが理解できる。
が、やはり「入門」なので、そこから先に進もうと思うとこの一冊では当然物足りなくなる。
よって一緒にSpringによるWebアプリケーションスーパーサンプル
を購入したつもりだったのだが、StrutsによるWebアプリケーションスーパーサンプル第2版
を買ってしまっていた・・・orz
StrutsとSpringを見間違えていたようだ・・・。
まぁStrutsもそれほどディープに理解しているとはいえないのでこれを機にもうちょっと深く勉強するか・・・。
2007年12月10日
SICPの神っぷり
去年ぐらいから毎週やっているSICP勉強会は始めだしてから1年ほどたった。
そろそろある程度自由にSchemeのコードが書けるようになったけど、身につけたのはSchemeの知識以上のモノだった。
以前読んだブログの記事
プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10
でもSICPを参考にしたんじゃないかって言うぐらいSICPでの内容と一致してる。
O(n)でしか取り出せないLinkedListしか無い(?)Schemeなのでリストのソート系がSICPには書かれてないけど。
1番目のユークリッドの互除法なんて、Schemeでの四則演算から勉強しだして27ページ目にはもうユークリッドの互除法の事が出てるし、ニュートン法は41ページ目で出てる。Schemeの教科書という皮をかぶった恐ろしい本だぜ・・・ゴクリ・・・。
この記事を読んだ週にちょうどエラトステネスの篩を勉強したところで、SICPでエラトステネスの篩を知ったときは「ふーん」って感じだったけど、実はアルゴリズムの大御所だったんだな。
読み進めてもうそろそろ200ページに達する頃なんだけど、だんだん問題が難しくてきつくなってきた。
ストリーム(コンピュータ用語のストリームとは別)に関するところなんだけど、問題を解くのに必死でその問題の裏に隠された本質を理解するところまで力が回らない。でもストリームはなかなか他の事にも使えそうな概念で面白そうだ。
さらにそのストリームを"並び加速"で加速させ、さらにタブローを使って"超加速"させてより早く収束させるとかまだ理解するところまで行ってないけど面白そうだ。この加速はオイラーが考えたらしいけど特に名前は付いてないんかな。しかし数学者って言うのはすごいな、こんな便利なものばかり考えつくんだから。
ストリームの次は、とうとう第4章の「超言語的抽象」に入る。
一見全く意味不明の"超言語的抽象"と言う言葉だけどどんな"本質"が隠されているのか楽しみだ。
2007年08月25日
本
久々に技術書以外の本を読んでみた。
二人だけで生きたかった―老夫婦心中事件の周辺
アンダーグラウンド
最初の本はNHKのドキュメンタリーを単行本化したもの。
妻が痴呆症にかかってしまった老夫婦が主人公なのだが、夫が妻の介護に疲れてしまい遺書を残して死に場所を探しつつ25日間も旅をして、最後に海に入水し心中してしまうという話。
二人だけで静かに暮らしていたが、妻の痴呆症がひどくなったので息子夫婦の家に一緒に住むことになったが、そこは"他人の家"で自分たちの居場所ではない。タイトルにもあるが"二人だけ"で生きたかったんだろうな。同居後4ヶ月で心中を決意したようだ。夫はひそひそ声で話していたが、痴呆症の妻が「どこで死ぬの?いつ死ぬの?」と話しているの息子が聞いている。
もちろんその後話し合い、夫は老人ホームに入れてくれと話すが、息子は「親の面倒も見ずに老人ホームに入れたのでは世間に顔向けできない」という事もあり、同居を希望。その場は夫が納得をしたような形で話し合いが終わったがどうやら心中の決心はついてしまったようだ。
本の内容は夫婦の環境やいきさつなどを紹介して、後半心中のための旅の詳細を書いている。
とても悲しい内容で、中でも二人で心中の相談をして妻が「どこで死ぬの?いつ死ぬの?」と言ったのがなんだかとても悲しかったな。いつもは痴呆症のため会話にもほとんど無反応ということだったんだけど、さすがに心中の話題には反応したんだろうか・・・。
もうひとつは心中のための旅で捜索願対策か偽名で旅をしていたんだけど、最後の宿でなぜか本名で泊まった。しかもそこの主人と「これから東京に帰る」と話している。本では旅をしてその刺激で妻の痴呆症が一時的に改善したのではないか、その希望で心中を思いとどまったのではないか、と書いている。でもその直後二人はある海岸に姿を見せた。その姿を近所の人が見かけて、「仲のいい老夫婦に見えた」と話している。その3時間後、二人の死体が発見された。
この心中しようと死に場所を探す途中に希望の光が見え一度は帰ろうとしたんだけど、やっぱり妻の痴呆症の症状を目の当たりにし心中を決心するという希望と絶望がとても悲しかった。
二冊目は作家である村上春樹が、オウム真理教の起こしたいわゆる地下鉄サリン事件の被害者にインタビューして書かれた本である。
777ページと結構分厚い本で、事件の関係者(被害者や被害者を治療した医者など)62人の人にインタビューしている。
インタビューの内容は、あなたがどういう人か、事件の電車に乗ったいきさつ、事件の最中の出来事、事件での後遺症、事件後オウム真理教をどう思っているかということが書かれている。
この本は被害者の人たちには失礼だけど非常に興味深かった。そりゃ毒ガスで攻撃されるなんてテロに遭遇した経験なんてなかなか無いからなぁ。
印象深かったのは、当たり前だがたいていの人がサリンなんて凶悪な兵器で攻撃されているなんて思わず、「あれ、鼻水がいきなり出たぞ」「ちょっと息苦しいな」「周りが暗いぞ」ぐらいにしか思っておらず、今日は体調が悪いなとしか思っていなかったということだ。もちろん床に広がる不信な液体のせいだとわかって「窓を開けろ!開けないと死ぬぞ!」と叫ぶ人もいたようだけど。
もうひとつ印象深いのは、意外とオウム真理教の事を「今すぐ死刑にして欲しい!」と思ってる人は少なかったことだ。もちろんトラウマでもうかかわりたくない、思い出したくないと思っているのかもしれない。でもたいていの人がサリン事件という災害に巻き込まれてしまったと考え、直接実行犯や麻原には恨みを持ってないようにとれた。
と言う事で地下鉄サリン事件という特殊な事件に巻き込まれ、その体験をリアルに書いてあるこの本はとても面白かった。
またこの本の中で「人間(日本人)はとても他人に関心が無く、たとえ毒ガスでやられたとしても隣の人と「何かおかしくない?」などと話す事も無く、地上へ出て被害者の介抱をしても道の反対側の人たちはこちらを見るだけで手伝ってはくれず、こちらの異常な世界と道を挟んでの普通の世界にはとても大きな距離があった」的な事が書いてあったのが非常に印象に残った。
俺としても他人は他人、何か事故があっても野次馬根性を出すのは恥ずかしいというのがあったけど、これからは何か様子がおかしかったらとりあえず首を突っ込んでみようと思う。
2007年06月04日
Java関連の本
torutkの日記
書籍「Javaネットワークプログラミングの真髄」
ネットワークプログラミングで良い本があるらしい。
こういう情報はありがたいな。
と言うことで購入。
> この本の著者はかなりネットワークプログラミングに深い造詣を持っているようで、随所に濃い記述があります。
とのこと。わくわく。
torutkさんところで知った「Java並行処理プログラミング —その「基盤」と「最新API」を究める—」はそろそろ読み終わる。
原書持ってるけど英語読むのが大変なので翻訳された本の方も買ってしまったぜorz
この本の後半の、ブロックしない同期化アルゴリズムはすごいな。compare-and-swapと言うCPUに実装された命令によるロックを使用しない同期化を使うことで、よりスケーラビリティのあるプログラムを書くことが出来る。
マルチスレッドだったら危険な「i++」もCPUのCAS命令を使ったアトミックな変数を使うことで安全になる。Javaのatomicパッケージは単に中でsynchronizedしてくれるだけかと思ってたけど、そうではなくちゃんと考えられてるんだなぁ(もちろんCAS命令に対応していないCPUを使ってる場合はsynchronizedで同期してくれるらしい)
こういう濃い話をもうちょっとしてくれた方が個人的にうれしいけど、この本ではアトミック変数関連はわりとあっさり目のような感じ。この本ではJavaのConcurrent APIを使ったより実戦的な並行性プログラミングの解説が大半だ。
もちろんこっちの方もとても勉強になる。Javaは今ではThreadクラスを直接start()するのはもはや時代後れなのね・・・。またConcurrent APIに色々便利なクラスがあるのも知った。BlockingQueueとか便利なクラスがあったのか・・・。同じ奴をこの前仕事で使うために実装したよ・・・orz
もちろんBlockingQueueの存在を知ったのでそっちを使うように置き換えた。
「Java並行処理プログラミング」マジお薦め。
話は変わって今日は休み。
母親が最近風邪をひいてたんだけど、どうやら伝染ってしまったようだ。
まだ症状は軽いけど、どうせこのまま仕事行ったらひどくなるだろうし伝染してしまいそうなので休む。さ、さぼりじゃないよ!!
暇だし買って放置プレイだった結城さんの「Java言語で学ぶリファクタリング入門」を読むか。
結城さんの本はなんか優しさあふれる感じがいいな。
昨日の夜は暇だったのでニコニコで桜蘭高校ホスト部見てた。
やっぱこのアニメ面白いなぁ。テンポがよすぎる。
原作は少女マンガで、お金持ちのボンボンが集まる高校に普通の女の子である主人公が入学し、いろいろ訳あって金持ちが遊びで作ったホスト部に男のホストとして女の子に接待する羽目になるという逆ハーレムな話。
普通に考えるとドロドロしそうな話だけど主人公の女の子は男共に興味は無いし、男連中も主人公を含めたホスト部全員で家族愛的な関係になってあっさりした感じ。一部の男は主人公への恋愛感情に気づくけども今の家族設定を壊して先に進むべきか悩んだりとか。
ニコニコを見てると「ここは原作の方が良い」とか「ここは原作よりよかった」とあるので原作も読んでみようかなと思ったり。
TVに録画してあるんだけど、やっぱりニコニコの小さな画面で見てしまう。コメントある方がはるかにおもしろく感じるな。コメント無い方が良い場面ではコメント非表示にすればいいし。youtubeみたいに拡大表示する機能があればいいのにな。
さて、鼻が痛いからちょっと寝て回復させよっと。
2007年01月13日
本
バートランド・メイヤー 著「オブジェクト指向入門 第2版 原則・コンセプト」発刊
もうすぐ出ると言うのを聞いてて「読まなきゃな~」と思っていた本が出ていた。
1冊7500円。・・・・たけぇよ!!!
でも読まなければならない本だろう!
が、まだ読みかけの本があるので先にそっちを片付けてからにしよう。
↑今読んでいる本。
GWTはGoogleの作ったAjax用フレームワーク。Googleが作ったと言うだけあってなかなか刺激的な技術が使われている。JavaでSwing使ってウインドウを作るみたいにパネルにボタンやリストを作って、それにリスナを登録したりして画面を作成すると、それをJavaScriptに変換してくれてAjaxなページが出来上がる。
JavaScriptを一切書かずにリッチなページが出来上がると言うわけ。ちょっと使ってみたけどなかなか面白かった。Webアプリを作ってる感じがまったくしないのが良い感じ。
でもDojoのようなAjaxフレームワークに比べるとWidgetが貧弱かな。Dojoのは見た目的にもインパクトあるしユーザー受けはDojoのほうがよさそうだ。
GWT解説本自体の感想としては・・・。う〜ん、微妙ぽい。内容が薄い気がする。
しかも"手取り足取り本"のわりに書いてある通りにして動かないところあったし。
Ajaxインアクションは特定のフレームワークではなくAjaxと言う技術全般の詳細が書いてある本。まだ全然読めてないけど・・・。でも内容は濃いので読みきるとAjaxについてそこそこ知識が付きそうだ。高い本だったし積読するにはもったいないしね。
ニュースなどの情報源として、技術系のニュースを集めているニュースサイトオレンジニュースをいつもチェックしてる。
今日のエントリー Google Setsのように、入力したキーワードと関係が深いキーワードを推測するアルゴリズム「Bayesian Sets」 を見てみると・・・・。あれ?なんか見覚えのあるレイアウトと配色。と思ったらいつも一緒にお昼ご飯食べてる持橋さんじゃないですか!世間は狭い。
壮絶に頭の良い人なのでこの日記に書いてあることは1%も理解できないけど・・・。普段話してても"知っててあたりまえだよね!"的なのりで難しいことを言ってくるので(´・ω・`)?と言う表情をすることしかできないことが多い。コンピュータに関することはそこそこ付いていけるんだけど、数学とか研究に関することはさっぱりだなぁ。
なんか二日前ぐらいからのどが痛い。
咳も出始めた。風邪かな。はよ寝なくちゃ。
2006年10月06日
Java Concurrency in Practice
先日Amazon経由のcaiman(海外のCDやら本やらを買えるネットショップ)で買ったJava Concurrency in Practiceが届いた。ちなみに届くまで3週間かかった。
が、本を見てみると新品のハズだが妙に汚れている!
表紙には細かいキズがいっぱい付いているし、長い間本屋の棚においてあったかのようにカドは汚れて丸くなっている。本を高いところから落としたのか本のカドが衝撃で折れ曲がっている。しかも、裏表紙には10cmほどにわたってカッターナイフで切ったかのような切れ目がある。この切れ目は裏表紙を貫通して5ページほどにわたって切れてる!
なんじゃこりゃあ!コレで新品だと言われたら仏の俺もぶちギレ金剛ですよー!と思い、発送元のCaiman Americaを検索してみると出るわ出るわ悪評の数々がw
うおー、こいつは返品だー!と思ったが送り元はフロリダのマイアミ・・・。どうやって送り返せば良いんだろう・・・。
とりあえず、パッケージに入ってた紙に「なんか問題あったらココにメールしてね!」とあったので、そこに交換してくださいとメール。
すると次の日「手数料やら再発送にお金かかるし、代金は返金するのでその本は捨てちゃってクダサイ」とのこと。
おいおい、そんなんでいいのかよ。と言うことでAmazonで買ったら6000円以上する本がタダで手に入った。ボロボロだけど。
テクニカルエンジニアのネットワークの試験が来週あるので、それ終わったら読むとしよう。
内容は並列処理でもとから難しい上に英語なので読むのは大変そうだけど、まぁイイ勉強になるでしょう。
以下はネットワークの勉強で最近読んでる本。
しかし試験は知識を付けたところで受かる訳じゃなく、その知識をどう使うかの方が大切なんだよなぁ。その辺の技術はやっぱネットワークを仕事にしてる人じゃないと難しいなぁ。
入門編はホントに入門で、TCP/IPを知らない人向けだったようだ。あんまり読んでも面白くなかった。
ちょっと知ってる人はいきなり応用編でもイイかも。
IPsec編は、主にIPsecの仕様と使われている技術について詳しく解説してある感じ。でも試験範囲の内容は少ないな。それよりIPsecを使ったVPN構築の例や、導入時によく起こる問題とその解決策なんかが充実してる方がうれしかったな。まぁそれをマスタリングTCP/IPシリーズに求めるなって事なんだろうけど。
応用編はまだそんなに読んでないからわからないけど、Amazonのユーザ評価によると応用編でもそれほど深くは解説してない模様。そりゃ600ページぐらいでIPや関連プロトコルの詳しい説明ができるわけないもんな。
もっと詳しい内容は詳解TCP/IPシリーズの方が良いかもしれない。図書館で一度借りてて、もう一度借りようとしたら予約が多くて全然手配されない。借りてる人は試験受けるのか?受けるんだな!むぅ、ライバルめ。
さて、試験まであと1週間。合格率一桁の試験だし、日頃ネットワークを仕事にしてない俺が受かる確率は低いけどやれるところまでやってみるか。
2006年09月13日
無料で読める本:Java Generics And Collections
が、ここでPDFで読める。時間があるときに読もう。タイトル通りジェネリックとコレクション。
無料ではないけど、この本はマルチスレッドでのプログラミングをする上でナイスな本だと聞いたので買ってみた。アマゾンで買うと高いけどマーケットプレイスで安いのがあったのでそっちを買ってみる。
マルチスレッドだと同期が問題になるけど、この本ではいかに同期する部分を少なくするかというアプローチの本らしい。表紙がなぜか新幹線。
さぁ、俺にとって二冊目となる洋書だけどどうなる!
前回のRCPの本は、英語読むより乗ってるサンプルコード読んだ方がやりたいことがすぐわかるので、本文は補助的にしか読んでなかったw
もっと英語を身近にしないとダメって事は確実なのでがんばろっと・・・。
アメリカに占領されたときに英語を公用語にしてくれればこんな苦労はしなかったのに!!
英語がすらすら読み書きできる人がうらやましいぃ。
もちろんその人達は努力したから英語が読み書きできるのであって、生まれついての能力ではないというのはわかってるんだが・・・。ま、努力あるのみですな。努力嫌いだけど。
2006年07月13日
セキュリティウォリア
技術書をいろいろ買うが、さくっと読んでそのまま終わりにしてしまう本が多い。きちんと読んで内容を理解しないとお金がもったいないので、読んだ本の感想や内容をブログに書く。これによりきちんと読まないと感想など書けないのできちんと読む習慣にもなる。
と言うことでまずは以前にも書いた「セキュリティウォリア」を読んでみたので紹介してみる。
アマゾンによる目次は以下の通り。
1部 ソフトウェアクラッキング (アセンブリ言語 Windowsリバースエンジニアリング ほか)
2部 ネットワークからのストーキング (TCP/IP ソーシャルエンジニアリング ほか)
3部 ネットワーク攻撃方法 (UNIX防御 UNIX攻撃 ほか)
4部 ネットワーク防御方法 (監査証跡の解析 侵入検知システム ほか)
5部 付録(SoftlCEの便利なコマンドとブレークポイント)
サブタイトルが「Know Your Enemy 敵を知り己を知れば百戦危うからず」とあるように、システムへの攻撃者側に立った解説本となっている。システムへの侵入の痕跡を消す章では、システム防御側を「敵」と呼んで、その「敵」を欺き侵入するにはどうすればよいか説明するなどその辺徹底している。もちろんその後にはその攻撃に対する防御方法がきちんと書いてあるので安心だ。と言っても100%防げる方法などは存在しないけど。
目次をみたらわかるように、ソフトウエアのリバースエンジニアリング、ソーシャルエンジニアリング、ネットワーク経由の攻撃と、クラッカー(一般的にはハッカー)が行う攻撃方法が広く紹介されている。
500ページを超える本だけど、さすがに全部を詳しく紹介しているとページが足りないのか、さわり程度に紹介している部分もある。が、深いところはかなり深く説明されているので楽しい一冊だ。
本を開いていきなりアセンブラのリバースエンジニアリングなので濃い~一冊の予感。いきなりシェアウエアなどのパスワード回避の方法だ。デバッガでアセンブラをステップ実行して認証部分の命令を書き換えて認証成功後のルーチンにとばすように書き換えるとかを詳細に説明してある。
その割に攻撃によく使用されるバッファオーバーフローなどは軽めに説明してある程度。バッファオーバーフロー攻撃については
が詳しい。こっちの本も濃い内容なのでそのうち紹介したい。が、濃すぎてアセンブラなどCPUについてかなり詳しくないと理解できない内容なので俺も全然理解できてないw アセンブラを勉強して理解できるようになったらまた読み直してみよう。
この章で面白かったのは有名なトロイの木馬SubSevenをリバースエンジニアリングしてパスワード認証の部分を読むと、なんと開発者が仕込んだ秘密のパスワードを入力するとパスワードを設定してロックしたバックドアを開くことができると言うところ。そりゃ一般のアプリにもトロイが仕組まれてたりするぐらいなのにトロイの作成者が信用できるわけがない、と言ったところか。
2部 ネットワークからのストーキングは、ストーキングと怪しげなタイトルが付いてるけど、単に攻撃対象の情報収集(DNS情報やtraceroute、OSフィンガープリンティング)とソーシャルエンジニアリングの紹介なのでそれほど面白い内容ではなかった。見所は「10章侵入痕跡の隠蔽」ぐらいか。
3部 ネットワーク攻撃方法は、ネットワーク経由の攻撃対象システムへの攻撃とその防御方法を広く紹介してある。広く浅くなので特筆する内容は無いが、この章の内容の詳細が知りたければ
が詳しい。とりあえず侵入方法はいくらでもあるのでログとバックアップとっとけという感じ。
4部 ネットワーク防御方法は、ネットワークをどうやって守るか解説してある。この章は個人的には結構面白かった。ログは侵入された時の重要な情報なので攻撃者はそれを消そうとする。それをどうやってすり抜けて残すか。別のログサーバにログを送信しただけではそのログサーバも攻撃されれば終わりだ。そういう場合は、存在しない(別にしててもイイが)ホストに向かってログを送信し、その送信された情報を盗聴して保存すればイイ。攻撃者側は「設定ミスで存在しないところにログを送信してるな、ローカルのログだけ消せばOKだ」と思いログの保存はうまくいく。
こういう攻撃側と防御側の騙し騙されな部分が面白い。
後はネットワーク侵入検知システムやフォレンジックスの話題など。
セキュリティウォリアを読み終えて、攻撃者側に立った本はいくつもあるけどこの本の著者は攻撃対象を攻略すること、またそれを守ることどちらも楽しいと感じている気がしてなかなか面白かったな。セキュリティは攻撃側と防御側の頭脳勝負という感じ。もちろん攻撃側はゲーム感覚でも、守る立場からしたらうちの鯖を遊びで攻撃するんじゃねぇって感じだけど。
まぁどっちにしろ侵入を100%防ぐ事なんてできないから、ログなど侵入検知とバックアップをちゃんと取りましょうって事やね。
さて、Booksカテゴリなんて作ったけど三日坊主で終わらないように次の本も考えとかねば。

