[-]=======================================================================[-] Wizard Bible vol.11 (2004,6,27) [-]=======================================================================[-] x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第0章:目次 --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○第1章:交通事故って儲かる!? 〜たくさん慰謝料を受け取るために〜 山本洋介山 著 ○第2章:Pingプログラムを作ろう Kenji Aiko 著 ○第3章:制限ユーザーの存在においてのコンピュータ環境構築のTips IPUSIRON 著 ○第4章:DJ&DTM 速報&能書き2 MaD 著 ○第5章:お知らせ ○第6章:著者プロフィール x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第1章: 交通事故って儲かる!? 〜たくさん慰謝料を受け取るために〜 --- 著者:山本洋介山 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  最近、何かいい加減なことを書き散らすだけで「不正アクセス禁止法の教唆」 とかのワケの分からない理由で警察に連れて行かれそうなので、ハッキングなん かの原稿は怖くて書けない気分です。そんなわけでたまには別のアングラなこと を。 ■0x02.) 交通事故って怖いね  あまり、交通事故なんて遭いたくもないものですが、そう思っていてもこれだ け車の多い世の中ですから、いろいろと降りかかってきて、自慢になりませんが、 私なんかは大きいもの、小さいものを含めて5回も遭っています。  まあ、そんなわけで、以前その折に経験したことと保険屋に教わったことを書 いてみます。知らないと、もらえるものももらえないわけで、知っておくといい ことがあるかもしれません。なお、事故としてはよくあるムチ打ち、捻挫程度の そんなにひどくない怪我を想定しています。  なお、ここで書いてることを参考にして、ひどい目にあったからと言って責任 は取りませんし、任意保険に入っていればいろいろな交渉は保険屋が代行してく れますので、任意保険は入っといた方がいろいろとお得だと思います。しかし、 こちらが歩行者だったり同乗者だったりすると、まるで使えない保険屋だったり することもままあるわけで、まあ、知っておいてもいいかもしれません。 ■0x03.) 事故に遭ったときにすべきこと  事故は当たり屋でもない限り何の前触れもなく起こるもので、特に初めて遭っ た時は軽いものであっても何がなんだかわからなくなって、軽いパニック状態に 陥ると思います。  そこでまず、事故に遭った時に何をすればいいのかを、思い出せずに後で後悔 する羽目に陥らないように、覚えやすく少しだけ書いておきます。 ・何が何でも警察に電話  まずは警察に連絡しましょう。何を今さらこんな子供でもできることを、と思 う人もいるかもしれませんが、事故に遭った後はこんな基本的なことも考えられ ないくらい混乱することもあるのです。急に地震に遭った時に枕を抱えて走った、 という笑い話を聞いたことがある人もいるでしょう。  ともかく、警察に電話することだけ覚えておけばいいでしょう。ただ、そこそ こ目立つ事故ならば、よっぽどの山の中でもない限り、見ている人が連絡してく れるものです。  相手が逃げることも考えて相手の特徴を覚えておいた方がいいのかもしれませ んが、幸いにも私は逃げられたことはありませんので、詳しい追い込みについて は知りません。  警察に連絡するのは当たり前だと思う人も多いでしょう。しかし、相手によっ ては、免許の点数や仕事などの都合で、内々で処理したいと話を持ちかけてくる 人もいます。  これは基本的には止めておいた方がいいでしょう。  相場より高めの慰謝料をもらえそうだからといって、これを承諾してしまうと、 教えてもらった連絡先が嘘だったり、警察が事故証明を発行してくれない(届け てないから当たり前)ので保険金が請求できなかったりと、後々トラブルの原因 になります。 ・絶対謝らない  日本人はなあなあで物事を済ませようとしがちで、こちらが悪くもないのに、 一応お互い様ということですぐに謝る人がいると思いますが、これは交通事故の 時にはやってはいけないことです。  特に出会い頭の事故などで自分に非があるのかないのかよくわからない場合な どは、先に謝ったということで、貴方が責任を認めたということを示した、とい うことになります。また、自分に全く非のない場合でも、過失割合(後述)の算 定のときに不利に働いてきます。 ・救急車を呼ぶ  普通、救急車を呼ぶかどうかを警察に聞かれますので、何が何でも救急車を呼 んでもらい、病院に連れて行ってもらいましょう。  事故に遭った時は興奮しているので、少々の怪我だと痛くないものです。興奮 が冷めてから急に痛くなってきます。ちょっとシチュエーションは違いますが、 私の友人でバイクでがけから落ちて(自損)大腿骨を骨折しているのに現場検証 に付き合った剛の者がいますが、救急車で運ばれるまでは痛くなかったそうです よ。  どうせ頭を打ったりしているので、よっぽどの用事がなければ1晩くらいは検 査入院してもいいでしょう。  また、救急車で運ばれていくことで、ほぼ人身事故確定になりますので、保険 金の面からも救急車で運ばれることは重要です。逆に大した外傷がないからとい って救急車を呼ばなくて、後で痛みが出てきても物損扱いで処理されてしまい、 保険金が払われない可能性がないとは言えないので、これは基本です。  交通事故には大きく分けて、物損と人身の2種類に分けられ、基本的に人身の 方が相手の責任が重くなり、点数の引かれ方も違ってきます。  事故を起こした相手が物損ですませたい、といってきたところで、こちらには 何の得にもなりませんし、事故に遭う前は全くの他人なのですから、情けをかけ ることは無用です。  また、その優しさで痛い目に会うこともあります。物損ですませると慰謝料を 多く払うから、と言ってきたところで所詮口だけで払われないケースもあります ので、地道に病院に通って慰謝料を稼いだ方が、身体にも財布にも優しいと言え ます。 ■0x04.) 上手な慰謝料のもらい方  事故に遭って病院に行った後は、怪我の治療のフェーズに入ってきます。もち ろん、よりよく保険金をもらうにはここからが本番です。  さて、事故に遭って怪我をした場合、誰が治療費を払うのでしょうか。  怪我をさせたにせよ他人の治療費なんか払いたくない、払えない、という人が いますが、そういう人に事故を起こされても必要最小限の保障を受けられるよう に自賠責保険というものがあり、すべてのナンバーを付けた車は強制的に自賠責 保険に加入しています。  もし、自賠責保険に入ってない車に乗っていて、捕まったときには、即免許取 り消しになります。  また、別に自賠責保険で保障しきれない分や物損の処理のためにドライバーが 独自に入るで任意保険というものがあり、常識的なドライバーはこれにも加入し ていると思われます。  小さな事故の場合は、自賠責保険を使うことになります。  自賠責保険の限度は120万円で、これは治療費、休業補償、慰謝料などすべて含 めたものです。自賠責保険の限度を突破してしてから後はいろいろと面倒なこと になってくるので、軽い怪我なら限度いっぱいに近付いてきたら、だらだら通院 するよりも職場復帰するくらいの方が効率的だと思います。  自賠責保険の限度ギリギリまで近付くには治療費、休業補償、慰謝料の計算方 法を知っておいたほうがいいと思いますので、簡単に解説します。  まず、治療費ですが、この治療費というものは意外と曲者です。自賠責保険を 使うと健康保険が使えないと言われますから、自由診療10割負担で、これが思っ たよりもコストがかかってしまうものです。これだと入院1日1万円とか、MRI1回 5万とかかかったりします。軽い怪我でもまめに通院していれば、自分が考えてい るより治療費はかかります。しかも、保険金が支払われるまでは自己負担だった りもします。  とはいえ実は健康保険が使えたりするので、面倒でなければ病院に言ってみる といいでしょう。120万円から治療費を引いたものが休業補償+慰謝料の限度額な ので、治療費を減らせば、もらえるお金が増える可能性も上がってきます。  次に休業補償です。入院したり通院で会社を休んだりすると、休業補償という のがもらえます。これは日給の8割くらいもらえますので、慰謝料と合わせると 下手に会社に行くより儲かってしまいますね。怪我したんだからそれくらいはも らっても当然だとは思いますが。また、休業補償は治療のために有給休暇を消費 してもその分支払われますので忘れないようにしましょう。  そして、みんな大好きな慰謝量です。慰謝料は自賠責保険の場合、1日4100円× 直るまでの日数と決まっています。とはいえ病院に通ってないとそんなに出ませ ん。きっちり慰謝料をもらうには、だいたい2日に1回くらいのペースで通えばい いと思います。それ以上通っても慰謝料は増えることはありません。  その他、入院している場合は諸経費として1000円程度支給されたり、通院や検 査で別の病院に行く際の交通費なども請求できます。  とはいえムチ打ちで3ヵ月くらい通院して、リハビリ、検査を続けているだけで 簡単に120万の限度くらいは突破してしまいます。意外とお金って使っているもの で、怪我を機会にだらだら過ごそうと思ってもそんなには簡単にいかないもので す。 ■0x05.) 大きい事故の場合  自賠責保険では120万円しかカバーしてくれませんが、これをオーバーした場合 にはどうすればいいでしょうか。  いちばんよくあるのは相手方の任意保険から払ってもらうことです。これは対 人無制限とか1億円とか言ってますので、いくらでも払ってくれそうな気がします が、自賠責のような被害者保護の観点からの慈善事業じゃないのでそんなに甘い もんではありません。もっとも、大怪我をした時なんかはそんなことも言ってら れません。  そんなわけで相手の任意保険から払ってもらうことが多いのですが、この任意 保険というものは自賠責と違って、過失割合というものによってもらえる金額が 変わってくるシステムになっています。事故のシチュエーションに応じて加害者、 被害者、双方の過失を判定して、その割合に応じて双方が相互に補償を負担しあ うというものですので、被害者なのに相手の保障をする必要があります。困った ものですが、これは物損(後述)でも同様です。  その過失割合ですが、車対車、バイクの場合、自分が悪くないと思ってもまず 割合が0:100になることはありません。  私の経験で言いますと、信号無視の酔っ払いの車に突っ込まれたときはさすが に0:100でしたが、直線で急にヨレた車に巻き込まれても10:90でした。10はそこ にいたから、と保険屋に説明されました。保険屋によると0:100にするためには相 手によっぽどの過失がない限りダメだということで、その分は自己負担になって しまいます。  詳しい割合については青本、赤本と呼ばれている「損害賠償額算定基準」なん ていう本があり、事例ごとに「交差点でバイクと自動車の出会い頭事故の場合、 バイク:車 70:30」などのように絵入りで割合が解説されてますので、その辺 を参考にしてください。「判例タイムス」の別冊でも似たようなものがあります が、基本的に同じです。  一般的に保険屋はこれを使って大まかな割合を判断し、修正要素と呼ばれる、 一時停止義務違反だと-10、信号無視だと-20のような細かなシチュエーションに 応じた修正を施したものを過失割合としてこちらに持ちかけてきます。向こうも 始めにはちょっと相手寄りに言ってきますので、ちょっとゴネると5〜10%くらい は修正されたりしますので、とりあえず鵜呑みにはしない方がいいと思います。  その過失割合に応じて保険金が支払われるわけですが、自賠責の範囲を超えて 得をしないケースを考えてみることにします。過失割合が70:30くらいで、ちょ っとしたムチ打ちでだらだらと治療を引き延ばして、医療費など150万円くらいか かった場合です。  この場合、相手が支払うのは105万円ですが、これはすでに自賠責保険で払われ ているので、任意保険からは1円も入ってこないことになります。しかも自賠責の 範囲を超えた30万円分は自分の支払いということになり、大損ということになり ます。早めに治療を切り上げて仕事でもしといた方がいい場合もあることは知っ ておいた方がいいでしょう。しかも慰謝料の計算方法も変わってくるので、運が 悪いと減らされる場合があるかもしれません。  ムチ打ちとか言っても3ヵ月もするともう、ええやろ、治ったやろと保険屋から 電話がかかってきます。それでもしばらくは通ってもいいのですが、任意保険を 使うようになると、通院の慰謝料にしても半年も経つとほとんど増えることはな いので、そこそこ治っていれば休業補償がもらえるなどの理由がない限り示談し た方がいいかもしれません。  それでも、のらりくらりと1年くらい引き伸ばすと、さすがに保険屋から、もう ええやろ、このへんで症状固定にせえへんか、と聞かれます。症状固定というの は後遺症が残ったことにしてその分の慰謝料を上乗せする代わりにこれで終わり、 ということです。  そうなるとこれ以上の上積みはほぼ望めませんので、症状を固定させて、示談 した方がいいと思います。あまりに長引くと保険屋に嘘つき呼ばわりされて、し まいにはブチ切れられて、いい加減にせんと訴えるぞコラ、とか言われたりしま す。  運良く身体がほぼ完治しているなら、お小遣い程度が慰謝料に上積みされるく らいですが、運悪く本当に身体が悪いままなら、診断書の提出が必要になります。  保険屋に指定された病院で検査(神経障害ならMRIとか筋電図とか)されて「こ りゃおかしい波形でとるわ、お前、あかんわ」とか言われ、調べてもらっている ところ以外にも悪い場所が発見されたりして、めでたく障害が認定されると等級 に応じた慰謝料がもらえることになりますが、きっとあまりうれしくないでしょ う。健康第一です。  ちなみにムチ打ちでちょっと神経がやられているくらいなら75万、ひどいもの だと200万くらい上積みされるはずです。  もし、相手が任意保険に入っていない場合は直接請求することになります。任 意保険に入ってなくて事故を起こすような奴はだいたい金がないので、自賠責以 上の上積みは期待薄です。それほど怪我がひどくないならあきらめて働いた方が 時間効率の面からは上かもしれません。  また、タクシーも任意保険に入っていないことが多いので、タクシー会社の担 当者との交渉になりますが、タクシー会社はかなり無茶なことを言ってきます。  どちらにせよ、ちゃんともらえない場合は、裁判でがっつり頂く、ということ になります。  そういえば昔の映画「トラック野郎」でも人を撥ね殺して慰謝料が払えなくて 逃げた人が出てきましたね。 ■0x06.) 物損はどうする?  今までは主に怪我のことを書いてきましたが、最後に物損について触れておく ことにします。  物損とはその事故で壊れた、車、パーツ、服などのことで、これも相手に保障 を求めることができます。とはいえ物損は自賠責保険ではカバーしてくれません ので、任意保険を使うか、自力で何とかする、ということになります。  ただし、こちらがもらえる、ということは、相手にも同様の権利があるわけで、 もし、自分が歩行者でも、信号無視や前方不注意などこちらに何かしらの過失が ある場合、その少しの過失分を負担する必要が出てきます。  ここでも、過失割合というのが問題になってきます。過失割合に応じて評価が 決まってきますので、実際の計算としては 自分の損害×自分の過失割合−相手の損害×相手の過失割合 ということになります。  私が遭遇した事故の中では、相手がクラウン、こちらが250CCバイク、交差点で 巻き込まれて過失割合が2:8のとき、こちらが全損、相手がフェンダーとライト 交換で、相手の2割の方が金額として大きくなり、結果、巻き込まれたのに自分が 金を払う、というひどいケースもありました。  もし、相手がフェラーリなどの高価な車が全損した場合、相当の値段だという ことは想像できるでしょう。たとえ過失割合が0.5:9.5であっても、その5%が鼻 血が飛び出そうな値段になってしまうのです。  歩行者優先の世の中ですが、リスクを考えるとむやみに信号を無視したり飛び 出したりはしない方が無難です。また、バイクでも任意保険に入った方が安心だ といえるでしょう。 ■0x07.) 最後に  ざっと、交通事故での保険金について書いてきましたが、事故は突然降りかか ってくるもので、急に事故に遭ったらどうしていいのかわからない人がほとんど だと思います。これくらい知っておけば、いざ加害者や保険屋と話をする段階に なって、冷静に対応ができるのではないでしょうか。  あと、面倒なら行政書士や弁護士などに頼むという手もありますが、最低1割は 持っていかれますので、その点はご注意を。  最後に、入院すると自分名義で入っている傷害保険からも結構もらえますので、 これに請求するのも忘れないようにしましょう。昔、親が勝手に自分名義や家族 名義で入っていた傷害保険が結構な小遣いになったものでした。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第2章: Pingプログラムを作ろう --- 著者:Kenji Aiko x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  何故pingが必要なのか? それは、インターネットが宛先にパケットを届ける ことを保証しないからです。さらに、インターネットはパケットを送信した順番 に相手に届けることさえも保証しません(ただしこれはTCPを利用することで解決 していますが)。インターネットではデータはパケット単位で分割されて送信さ れます。つまり一見いっぺんにデータを送信したように見えても、実は内部的に はいくつかのパケットに分割されて送信されているわけです。  さてさて、例えばパケットを宛先に送信したとしましょう。しかし、ネットワ ーク機器のトラブルや混雑などで宛先にパケットが正しく届かなかった、もしく は途中でパケットデータが壊れてしまったとします。そのとき、そのパケットは 破棄されます。送信元にはなんの通知もありません。なんの通知もなく、ただパ ケットだけを破棄、消滅させる、それがインターネットです。  私が、恋人に手紙を送ったとします(恋人いませんけどね T_T;)。その手紙は 郵便局へ渡り、さらに別の郵便局へ渡り、どんなに道が混んでいようと、どんな に道が破壊されていようと、どんなにトラブルにみまわれようと、郵便局の人は 必ず手紙を届けてくれるでしょう。しかし、インターネットはそうではないので す。インターネットの場合、道が混んでたら「メンドクサ」という言葉を吐き捨 て、その場で手紙を破り捨ててしまいます。ものすごい自分勝手なやつです(メ ンドクサとは言いませんけどね^^;)。  しかし、これじゃまずいので、ある人がpingというプログラムを作りました。 このプログラムから送られたパケットに限っては、もし、なにかのエラーに見ま われたときにもパケットを破棄して知らん顔ではなく、ちゃんとその原因を送信 元に教えてくれます。  もし、道が混んでいたら、「ごめん、道が渋滞しててさぁ、お前の手紙送れな かったよ」といって戻ってきます。道が壊れてたら、「わりっ、国道4号線が工事 中だったのでお前の手紙遅れなかったのよ」といって戻ってきます。いやー、と ても便利になりましたね。  ということで、今回はこのpingプログラムを作ってみることにします。 ■0x02.) ping(Packet INternet Groper)とは  インターネットやイントラネットなどのTCP/IPネットワークを診断するプログ ラム。接続されているかどうか調べたいコンピュータのIPアドレスを指定すると、 ICMPを使って通常32バイト程度のデータを送信し、相手のコンピュータから返信 があるかどうか、返信がある場合はどのくらい時間がかかっているか、などのデ ータを元にネットワークを診断する。  IT用語辞書e-wordsより(http://e-words.jp/w/ping.html)  pingコマンドは、Linuxはもちろん、Windowsにもデフォルトでインストールさ れています。コマンドプロンプトに以下のように入力するとこで、引数に渡した ホストまでのネットワーク状況が正常であるかどうかを判断できます。 ----- コマンドプロンプト C:\>ping -n 1 yahoo.co.jp Pinging yahoo.co.jp [211.14.15.5] with 32 bytes of data: Reply from 211.14.15.5: bytes=32 time=101ms TTL=244 Ping statistics for 211.14.15.5: Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 101ms, Maximum = 101ms, Average = 101ms C:\> ----- ■0x03.) ICMP(Internet Control Message Protocol)とは  IPのエラーメッセージや制御メッセージを転送するプロトコル。 TCP/IPで接続 されたコンピュータやネットワーク機器間で、互いの状態を確認するために用い られる。ネットワーク診断プログラムpingが使う。  IT用語辞書e-wordsより(http://e-words.jp/w/ICMP.html) ■0x04.) ICMP Header Format ----- Echo or Echo Reply Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+- (RFC792より) -----  最初の4バイトであるType以外はTypeの値によって可変します。詳細はRFC 792 をみてください。 ----- Type 8(Echo Request) echo要求 Type 0(Echo Reply) echo応答 -----  接続されているかどうか調べたいコンピュータへTypeを8にしたICMPパケットを 送信すると、そのコンピュータからTypeを0にしたパケットが返答されます。これ がpingの仕組みです。  Typeにはパケットのタイプが指定されます。pingには基本的にEcho Requestと Echo Replyを利用しますが、パケットタイプは他にも多々あります。  Codeにはエラーコードが入れられます。エラーがない場合は0が入れられていま すが、エラーの場合は0以外のエラーに対応した値が入れられます。送信側は基本 的に0を指定しておけば問題ないでしょう。  Checksumはデータが壊れているかどうかを判断するフィールドです。どうして たった2バイトで判断できるのかは割愛させていただきます。  Identifierとはいわゆる識別子ですね。識別子とはつまり、識別するための値 です。はい、そのままですね(ぉぃ。つまり、送信元がまず識別子を適当な値に 設定して宛先にデータを送信します。宛先はこの識別子を変更せずに送信元へ応 答データを返信します。すると送信元はどの送信パケットに対しての応答パケッ トであるかが分かるわけです。どのパケットに対しての答えであるのか、を明確 にするために、識別子は用いられます。  Sequence Numberはよくわかりません(^^;。RFC792には以下のように書かれてあ ります。 ----- rfc792引用 Sequence Number If code = 0, a sequence number to aid in matching echos and replies, may be zero. Description The data received in the echo message must be returned in the echo reply message. The identifier and sequence number may be used by the echo sender to aid in matching the replies with the echo requests. For example, the identifier might be used like a port in TCP or UDP to identify a session, and the sequence number might be incremented on each echo request sent. The echoer returns these same values in the echo reply. Code 0 may be received from a gateway or a host. -----  というようにあります。要するに「エコーの送信側が応答とエコー要求との対 応付けの手がかりとして使用可能である。」とありますので、適当な値で構わな いということでしょう。 ■0x05.) ソースコード  Windows Ping のソースコードは以下です。「Borland C++ Compiler 5.5」と 「Visual C++.NET」でコンパイルを確認しています。 http://kenjinet.s26.xrea.com/windows/win_ping.cpp  では早速解説を始めます。まずは関数の説明をします。 ----- USHORT ip_checksum(USHORT *data, int size) { unsigned long sum = 0; while (size > 1) { sum += *(data++); size -= 2; } if (size > 0) { sum += (*data) & 0xff00; } sum = (sum & 0xffff) + (sum >> 16); return ((~(USHORT)((sum >> 16) + (sum & 0xffff)))); } -----  チェックサムを計算する関数です。これはそのままコピペすれば、別のプログ ラムでも利用できます。といっても「チェックサム」で検索すれば、結構同じよ うなプログラムがでてきます。この関数についての詳細は 「http://kenjinet.s26.xrea.com/html.cgi?checksum.txt」などをご覧ください。 ----- int host2ip(char *hostname, sockaddr_in &dest) { UINT addr; if((addr = inet_addr(hostname)) == INADDR_NONE){ struct hostent *hp; if ((hp = gethostbyname(hostname)) == NULL) { return -1; } memcpy(&(dest.sin_addr), hp->h_addr, hp->h_length); dest.sin_family = hp->h_addrtype; }else{ dest.sin_addr.s_addr = addr; dest.sin_family = AF_INET; } return 0; } -----  ホスト名、もしくはIPアドレスからネットワークバイトオーダーに変換する関 数です。まずはIPアドレスだと仮定して、inet_addrで取得しています。もしエラ ーがでるようならば、おそらくホスト名だろうということで、gethostbynameで再 チャレンジします。これでもダメならエラーということで-1を戻り値として返し ます。 ----- void init_ping_packet(ICMPHeader *icmp_hdr, int packet_size, int seq_no) { icmp_hdr->type = ICMP_ECHO_REQUEST; icmp_hdr->code = 0; icmp_hdr->checksum = 0; icmp_hdr->id = (USHORT)GetCurrentProcessId(); icmp_hdr->seq = seq_no; icmp_hdr->timestamp = (ULONG)GetTickCount(); const unsigned long int deadmeat = 0xDEADBEEF; char *datapart = (char *)icmp_hdr + sizeof(ICMPHeader); int bytes_left = packet_size - sizeof(ICMPHeader); while (bytes_left > 0) { memcpy(datapart, &deadmeat, min(int(sizeof(deadmeat)), bytes_left)); bytes_left -= sizeof(deadmeat); datapart += sizeof(deadmeat); } icmp_hdr->checksum = ip_checksum((USHORT *)icmp_hdr, packet_size); } -----  pingパケットを作成しています。ソースコードの最初の方に ----- struct ICMPHeader { BYTE type; BYTE code; USHORT checksum; USHORT id; USHORT seq; ULONG timestamp; }; -----  というようにICMPHeaderが定義されてますので、それぞれICMPヘッダフォーマ ットと照らし合わせて調べてみてください。BYTEは1バイトの変数を定義します。 USHORTは2バイトですね。そしてULONGは4バイトです。timestampはデータ部にい れられていますが、これはパケットが返信してくる時間測定のために利用するデ ータです。  init_ping_packet関数はパケットの長さを引数にとります。このプログラムで は、パケットの長さ、つまりどれだけ大きなデータを相手に送信するのかをユー ザーが決めることができるので、その長さになるまでICMPパケットに適当なデー タでパディングしなければなりません。そのパディングするデータが 「deadmeat = 0xDEADBEEF」ですね。  whileでまわしてmemcpyでパディングしています。そして、最後にチェックサム を計算して、ICMPパケット完成となります。 ----- int send_ping(SOCKET sd, const sockaddr_in& dest, ICMPHeader *send_buf, int packet_size) { cout << "Sending " << packet_size << " bytes to " << inet_ntoa(dest.sin_addr) << "..." << flush; int bwrote = sendto(sd, (char *)send_buf, packet_size, 0, (sockaddr *)&dest, sizeof(dest)); if (bwrote == SOCKET_ERROR) { cerr << "send failed: " << WSAGetLastError() << endl; return -1; }else if (bwrote < packet_size) { cout << "sent " << bwrote << " bytes..." << flush; } return 0; } -----  関数名をみれば分かりますが、これはパケットを送信する関数です。送信すべ きパケットのデータをcoutで出力して、sendtoで送信しています。ここは特に説 明の必要は無いと思います。 ----- int recv_ping(SOCKET sd, sockaddr_in &source, IPHeader *recv_buf, int packet_size) { int fromlen = sizeof(source); int bread = recvfrom(sd, (char *)recv_buf, packet_size + sizeof(IPHeader), 0, (sockaddr *)&source, &fromlen); if (bread == SOCKET_ERROR) { cerr << "read failed: "; if (WSAGetLastError() == WSAEMSGSIZE) { cerr << "buffer too small" << endl; }else { cerr << "error #" << WSAGetLastError() << endl; } return -1; } return 0; } -----  返答の受信パケットです。recvfromを呼んでいるだけですね。エラーの場合は WSAGetLastErrorに適切なエラーコードが入れられるので、それを表示しています。 ----- void die(ICMPHeader *&send_buf, IPHeader *&recv_buf) { if (send_buf != NULL) { delete[]send_buf; } if (recv_buf != NULL) { delete[]recv_buf; } WSACleanup(); exit(1); } -----  dieはそのままプログラムを終了する関数です。main関数でメモリを確保してい るので、終了プログラムにメモリの開放をしています。この関数はエラーにより 終了した場合などに呼び出されます。 ----- int decode_reply(IPHeader *reply, int bytes, sockaddr_in *from) { USHORT header_len = reply->h_len * 4; ICMPHeader *icmphdr = (ICMPHeader *)((char *)reply + header_len); if (bytes < header_len + ICMP_MIN) { cerr << "too few bytes from " << inet_ntoa(from->sin_addr) << endl; return -1; } -----  decode_replyは、受け取ったパケット(つまりサーバからの返答パケット)を 加工する関数です。header_lenには、reply->h_len * 4が代入されますが、これ は、IPヘッダの長さをあらわしています。そのIPヘッダの長さをパケットのポイ ンタに加算するとICMPヘッダの位置になります。それをicmphdrに代入しています。 ----- if (icmphdr->type != ICMP_ECHO_REPLY && icmphdr->type != ICMP_TTL_EXPIRE) { cerr << "Unknown ICMP packet type " << (int)(icmphdr->type) << " received" << endl; return -1; } if (icmphdr->id != (USHORT)GetCurrentProcessId()) { return -2; } -----  次はTypeを検査しています。ICMP_ECHO_REPLY、つまりTypeが0ではない、かつ ICMP_TTL_EXPIREでもないならば、エラーとみなし「ICMPパケットのタイプでは無 い」というような出力をします。  GetCurrentProcessIdはこのプログラムのプロセスIDです。init_ping_packetで ICMPの識別子にはプロセスIDをいれるようになっていますので、もし識別子が違 うようならば、これもエラーとみなします。 ----- cout << endl << bytes << " bytes from "; cout << inet_ntoa(from->sin_addr) << ", icmp_seq " << icmphdr->seq << ", "; if (icmphdr->type == ICMP_TTL_EXPIRE) { cout << "TTL expired." << endl; } else { cout << nHops << " hop" << (nHops == 1 ? "" : "s"); cout << ", time: " << (GetTickCount() - icmphdr->timestamp) << " ms." << endl; } return 0; } -----  ここは、取得したパケットデータ解析後に、出力する部分です。返答にどれだ け時間がかかったのかなども表示しています。  では、いよいよmain関数に入ります。 ----- int main(int argc, char *argv[]) { ICMPHeader *send_buf = NULL; IPHeader *recv_buf = NULL; if (argc < 2) { cerr << "usage: " << argv[0] << " [data_size] [ttl]" << endl; cerr << "data_size can be up to " << MAX_PING_DATA_SIZE << " bytes. "; cerr << "Default is " << DEFAULT_PACKET_SIZE << "." << endl; cerr << "ttl should be 255 or lower. "; cerr << "Default is " << DEFAULT_TTL << "." << endl; return 1; } -----  メチャクチャお決まりのソースですけど、プログラムが引数にホストとパケッ トのサイズと、ttlの値をとります。ホストのみ必須ですので、2以下ならばエラ ーとし、終了します。 ----- int packet_size = DEFAULT_PACKET_SIZE; if (argc > 2) { packet_size = atoi(argv[2]); } int ttl = DEFAULT_TTL; if (argc > 3) { ttl = atoi(argv[3]); } -----  もしパケットサイズが指定されなかったら、DEFAULT_PACKET_SIZEに設定します。 同じく、ttlも設定されなかったら、DEFAULT_TTLに設定します。 ----- WSAData wsaData; if (WSAStartup(MAKEWORD(2, 1), &wsaData) != 0) { cerr << "Failed to find Winsock 2.1 or better." << endl; return 1; } -----  Windowsネットワークプログラムには必須の項目です。おまじないとかそういう 感じでいいでしょう。ちなみにバージョン2.1を利用します。 ----- SOCKET sd; if ((sd = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, 0, 0, 0)) == INVALID_SOCKET) { cerr << "Failed to create raw socket: " << WSAGetLastError() << endl; die(send_buf, recv_buf); } -----  rawソケットを使います。Windowsって少し前までrawソケットが使えなかったよ うですね。それ、かなり終わってるやん。正直Hackingもなにもない。そう考える と、いまのWindowsってだいぶ進化してるなぁ。結構、安定してるし。と、まぁ関 係ない話でした(^^;。 ----- if (setsockopt(sd, IPPROTO_IP, IP_TTL, (const char *)&ttl, sizeof(ttl)) == SOCKET_ERROR) { cerr << "TTL setsockopt failed: " << WSAGetLastError() << endl; die(send_buf, recv_buf); } -----  ここは、ttlのためだけに書かれています。ttlは残念ながらICMPヘッダではな く、IPヘッダにあるので、IPヘッダのTTLだけ設定するためにsetsockoptを使って いるわけです。ちなみにttlとは、パケットの寿命です。ルータを通るたびにこの 値が1ずつ減算されていって、0になるとパケットが破棄されます。TTLは1バイト なので、最大で255までしか設定できませんが、そんな数のルータを通ることなん て、意図的に構築しない限りありえませんので、まず問題ありません。 ----- sockaddr_in dest, source; memset(&dest, 0, sizeof(dest)); if (host2ip(argv[1], dest) < 0) { cerr << "Failed to resolve " << argv[1] << endl; } packet_size = max(sizeof(ICMPHeader), min(MAX_PING_DATA_SIZE, (UINT)packet_size)); -----  まずは宛先の設定ですね。住所を書いてるわけです。そして、パケットのサイ ズを決めます。 ----- if ((send_buf = (ICMPHeader *)new char[packet_size]) == 0) { cerr << "Failed to allocate output buffer." << endl; die(send_buf, recv_buf); } if ((recv_buf = (IPHeader *)new char[MAX_PING_PACKET_SIZE]) == 0) { cerr << "Failed to allocate output buffer." << endl; die(send_buf, recv_buf); } -----  ここはメモリ管理です。まぁみればわかるので、説明不要ですね。Cならmalloc やcallocなどを使いますが、C++なのでnewでやっています。 ----- int seq_no = 0; init_ping_packet(send_buf, packet_size, seq_no); if (send_ping(sd, dest, send_buf, packet_size) < 0) { cerr << "send_ping function error." << endl; die(send_buf, recv_buf); } -----  送信処理です。それぞれの関数にデータを渡して、送信処理をしています。 ----- while (1) { if (recv_ping(sd, source, recv_buf, MAX_PING_PACKET_SIZE) < 0) { unsigned short header_len = recv_buf->h_len * 4; ICMPHeader *icmphdr = (ICMPHeader *)((char *)recv_buf + header_len); if (icmphdr->seq == seq_no) { break; } cerr << "bad sequence number!" << endl; continue; } if (decode_reply(recv_buf, packet_size, &source) != -2) { break; } } -----  受信処理ですね。まず応答パケットを受信して、そのデータをdecode_replyに 渡して、コンソールへ出力しています。 ----- delete[]send_buf; delete[]recv_buf; WSACleanup(); return 0; } -----  最後にメモリを開放して終了となります。  では、コンパイルして実行してみてください。 ----- コマンドプロンプト C:\>myping yahoo.co.jp Sending 32 bytes to 203.141.35.113... 32 bytes from 203.141.35.113, icmp_seq 0, 12 hops, time: 30 ms. C:\> C:\>myping yahoo.com 64 Sending 64 bytes to 66.218.71.198... 64 bytes from 66.218.71.198, icmp_seq 0, 17 hops, time: 151 ms. C:\> -----  こんな感じですね。無事、送受信ができています。 ■0x06.) さいごに  さて、いかがだったでしょうか。Windowsも派手なGUIなどだけではなく、地味 にrawソケットに対応させたり、OS自体の安定性をあげたりと頑張ってるみたいで す。「でも、安定性とか、rawソケットとか、それって普通OSとして当たり前の機 能じゃないのか?」という素朴な疑問は置いておいて、Windowsも悪く無いなぁと 思う今日この頃です。ロングホーンも当分先の話っぽいので、気長にXPでも使っ ていようかなと思います。実は、今回使ったプログラムを書くときに「Winsock Programmer's FAQ」というサイトに非常にお世話になりました。というかこのサ イトにあるpingのサンプルソースコードをC++風に書き直しただけだったりするの が、今回の私が書いたサンプルソースなのですが(^^;。Winsockに関して詳しく知 りたい方にはお勧めのサイトです。さて、最後になりましたがここまで付き合っ て読んでくださった方本当に有り難うございました。  では、また会う日まで... ■0x07.) 参考ソース  Winsock Programmer's FAQ  http://www.kt.rim.or.jp/~ksk/wskfaq-ja/index.html x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第3章:制限ユーザーの存在においてのコンピュータ環境構築のTips --- 著者:IPUSIRON x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  生徒用、子供用、ゲスト用(友人など)に部屋にあるPCを触らせる機会もある ことでしょう。しかしながら、コンピュータに直接触らせるということは相手に 全ての権限を与えることと同値です。そのようなとき、こちらが備えるセキュリ ティを相手に把握させなければ、権限を上昇させることを防ぐことができます。 正体不明なものが一番恐怖に感じるというのとちょっと似てますね。  このような場面で役に立つようなテクニックを少し紹介します。 ■0x02.) ログオン前に指定したメッセージを表示  ログオン前にコンピュータの利用における制限事項を表示することで、生徒、 受講者などの利用ユーザーに注意を促すことができます。 対象OS:Windows2000/XP Pro/XP Home  レジストリの「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon」において、「LegalNoticeCaption」の値が表示するダイアロ グ名、「LegalNoticeText」が表示する制限事項を指定するところです。  例えば、「LegalNoticeCaption」に「注意事項」、「LegalNoticeText」に「勝 手に設定を変更しないでください。」と入力することもできます。  もし、表示さないように戻す場合は、「LegalNoticeCaption」と「LegalNotic eText」のデータを空白にしておけばOKです。 ■0x03.) コントロールパネルの制限  利用ユーザーにコントロールパネル経由で設定変更を禁止または一部禁止した い場合に行う設定です。 対象OS:Windows2000/XP Pro ●コントロールパネルを開かせたくない場合 1:「ファイル名を指定して実行」において、「gpedit.msc」(グループポリシー エディタ)と入力して、グループポリシーを立ち上げます。 2:「ユーザーの構成」>「管理用テンプレート」>「コントロールパネル」を選 択します。 3:右側から「コントロールパネルへのアクセスを禁止する」という項目をダブル クリックします。 4:「コントロールパネルへのアクセスを禁止するのプロパティ」ウィンドウが表 示されたら、「有効」というラジオボタンにチェックをします。 5:これで完了です。 ●特定のコントロールパネルだけを許可  上記設定のステップ2までは同じです。 3:右側から「指定されたコントロールパネルの項目のみを表示するのプロパティ」 という項目をダブルクリックします。 4:「指定されたコントロールパネルの項目のみを表示するのプロパティ」ウィン ドウが表示されたら、「有効」というラジオボタンにチェックをして、[表示]ボ タンを押します。 5:「内容の表示」ウィンドウが表示されるので、[追加]ボタンを押します。 6:「項目の追加」のおいて、許可するコントロールパネル項目のファイル名を指 定して、[OK]ボタンを押します。すると、「内容の表示」ウィンドウに戻るので、 これを繰り返して許可する特定のコントロールパネルを設定します。  ここで、コントロールパネル項目のファイル名というものが現れましたが、主 なものは次の通りです。 ===== ファイル名 コントロールパネル項目 access.cpl ユーザー補助のオプション ユーザー補助のオプション appwiz.cpl プログラムの追加と削除 desk.cpl 画面、画面のプロパティ hdwwiz.cpl ハードウェアの追加 inetcpl.cpl インターネットオプション intl.cpl 地域と言語のオプション main.cpl マウス マウスのプロパティ mmsys.cpl サウンドとオーディオデバイスのプロパティ ncpa.cpl ネットワーク接続 nusrmgr.cpl ユーザーアカウント odbccp32.cpl ODBCデータソースアドミニストレータ powercfg.cpl 電源オプション sysdm.cpl システムのプロパティ telephon.cpl 電話とモデムのオプション timedata.cpl 日付と時刻 wuaucpl.cpl システムのプロパティの「自動更新」タブ =====  ちなみに、「*.cplファイル」は、「%SystemRoot%\system32」の下に存在しま す。 7:これで完了です。設定後、コントロールパネルを開いても、指定されたコント ロールパネル項目しか表示されていないはずです。 ■0x05.) コントロールパネル内のフォルダを非表示  0x04の方法ではコントロールパネル項目は制御できても、「タスク」や「フォ ント」といったフォルダまでは非表示にできません。そこで、これらも非表示に するために、次の設定を行います。 対象OS:Windows2000/XP Pro 1:「ファイル名を指定して実行」において、「gpedit.msc」(グループポリシー エディタ)と入力して、グループポリシーを立ち上げます。 2:「ユーザーの構成」>「管理用テンプレート」>「コントロールパネル」を選 択します。 3:右側から「指定されたコントロールパネルのアプレットを非表示にする」とい う項目をダブルクリックします。 4:「指定されたコントロールパネルのアプレットを非表示にするのプロパティ」 ウィンドウが表示されたら、「有効」というラジオボタンにチェックをします。 5:これで完了です。 ■0x06.) ドライブを使用不可にする  利用ユーザーに勝手にFDDやCD-ROMを使用されたくない場合の設定です。 対象OS:Windows98/98SE  「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \Explorer」に、エクスプローラーの各種ポリシーが設定されています。ここで、 「NoDrives」を作成すれば、CD-ROMやFDDのドライブを見えなくすることができま す。さらに、「Nofind」を作成することで、ドライブを探索することができなく なります。この2つの設定をしてこそ効果があります。片方だけではあまり意味が ありません。 ■0x07.) Windows Messengerの停止  利用ユーザーにWindows Messengerを利用したチャットを禁止したり、不要なネ ットワークトラフィックを軽減したい場合に有効な方法です。 対象OS:Windows2000/XP Pro 1:「ファイル名を指定して実行」において、「gpedit.msc」(グループポリシー エディタ)と入力して、グループポリシーを立ち上げます。 2:「コンピュータの構成」>「管理用テンプレート」>「Windowsコンポーネン ト」>「Windows Messenger」を選択します。 3:右側から「Windows Messengerの実行を許可しない」という項目をダブルクリ ックします。 4:「Windows Messengerの実行を許可しないのプロパティ」ウィンドウが表示さ れたら、「有効」というラジオボタンにチェックをします。 5:これで完了です。ただし、この設定を反映させた場合、リモートアシスタント やMSNエクスプローラにおいて、Windows Messengerを利用した機能を実行するこ とはできません。 ■0x08.) コマンドプロンプトの使用禁止  CUIベースのアタックツールなどを勝手に利用されたり、設定変更ツールなどを 不正に利用されることを禁止するために、コマンドプロンプトの使用禁止をオス スメします。 対象OS:Windows2000/XP Pro 1:「ファイル名を指定して実行」において、「gpedit.msc」(グループポリシー エディタ)と入力して、グループポリシーを立ち上げます。 2:「ユーザーの構成」>「管理用テンプレート」>「システム」を選択します。 3:WindowsXPならば、右側から「コマンドプロンプトにアクセスできないように する」という項目をダブルクリックします。一方、Windows2000ならば、「コマン ドプロンプトを無効にする」という項目をダブルクリックします。 4:「コマンドプロンプトにアクセスできないようにする」ウィンドウが表示され たら、「有効」というラジオボタンにチェックをします。バッチファイルのみ実 行するという設定にしたければ、「コマンドプロンプトスクリプト処理も無効に しますか? 」というところで「はい」を選択します。 ■0x09.) MMCの利用 対象OS:Windows2000/XP Pro/XP Home  イベントビューア、管理ツールやグループポリシーエディタは、MMC(Microso ft管理コンソール)と呼ばれるMMCコンソール(管理ウィンドウ)で操作します。 MMCを使うことで、サービス管理のためのコンポーネント(スナップイン)を操作 することができます。スナップインを追加していくことで、MMCコンソールを作成 することができるわけです。  これを利用することで、オリジナルのMMCコンソールを作成することができます。 ただ、作成には作成者モードとユーザーモードの2つがあります。前者は作成者で なくてもMMCコンソールの内容を変更できる保存方法で、後者は変更できないモー ドです。一般的に、ユーザーモードで保存しておくほうがよいでしょう。 ■0x10.) CD-ROMの共有を禁止  Windows 2000/XP Proの場合、CD-ROMドライブをネットワーク越しに共有して使 用することができます。これでは、0x06の方法でローカルマシンのCD-ROMドライ ブを使用不可にしても、ネットワーク越しで持ち込まれたPCからインストールさ れてしまいます。  この設定により、CD-ROMからのインストールを制限することができます。 対象OS:Windows2000/XP Pro ●WindowsXPの場合 1:スタートメニュー>「コントロールパネル」を開きます。 2:「パフォーマンスとメンテナンス」>「管理ツール」を選択します。 3:「ローカルセキュリティポリシー」>「ローカルポリシー」>「セキュリティ オプション」を選択します。 4:右側から「デバイス:CD-ROMへのアクセスを、ローカルログオンユーザーだけ に制限する」をダブルクリックします。 5:「デバイス:CD-ROMへのアクセスを、ローカルログオンユーザーだけに制限す るのプロパティ」ウィンドウが表示されたら、「有効」というラジオボタンにチ ェックをいれて、[OK]ボタンを押します。 ■0x11.) ドメイン環境におけるローカルユーザーの緊急追加  ドメイン環境では通常、AdministratorアカウントとGuestアカウントしかない ことが多いですが、緊急ゲストアカウント(Guestアカウントとは別。WB4の第9章 を参照)を追加するとき、ワークグループに戻して登録するのは面倒です。なん とか、ドメイン環境のままでローカルユーザーを登録したいところです。 1:「コントロールパネル」>「ユーザーアカウント」(「ユーザーとパスワード」) >「詳細設定」タブ(「招待」タブ)を選択します。そこで、[詳細設定]ボタン ([詳細]ボタン)を押します。 2:「ローカルユーザーとグループ」ウィンドウが表示されたら、左側の「ユーザ ー」フォルダを右クリックして「新しいユーザー」を選択します。 3:すると、「新しいユーザー」ウィンドウが表示されます。そこに、ユーザー名、 フルネーム(省略可能)、説明(省略可能)、パスワードを入力します。  そして、「ユーザーは次回ログオン時にパスワードの変更が必要」というチェ ックボックスのチェックをはずします。  後は、[作成]ボタンを押します。 4:これで、ローカルユーザーの一覧に登録したユーザが表示されるはずです。 ■0x12.) おわりに  今回はレジストリエディタやポリシーエディタを使ったテクニックを紹介しま した。レジストリエディタはWindowsをカスタマイズするために使ったことがある 方も多いと思いますが、ポリシーエディタは今回初めて使用した人もいることで しょう。これをきっかけに、ポリシーエディタも使い倒しておくと、いつか役に 立つかもしれません。  次回はハードウェアによるセキュリティについて紹介するつもりです。  では、来月また会いましょう。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第4章: DJ&DTM 速報&能書き2 --- 著者:MaD x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  「DJ」のシンボルという意味では、多くの人が「ターンテーブル」を頭に浮 かべるのではないでしょうか? ここで、このDJのシンボルともいうべき「タ ーンテーブル」について、その歴史を振り返りながら、Technicsが満を持して発 売するDJ用CDプレイヤー「SL-DZ1200」を紹介します。 ■0x02.) DJ定番ターンテーブルの誕生  1978年にTechnicsが当時ブームとなっていた「カラオケ」を目的とした店舗を ターゲットとして、レコードの回転数を上げ下げすることにより、ピッチ(音程) を歌い手に合わせることができる専用コントローラーを備えたカラオケ向けレコ ードプレイヤーとして開発された「SL-1200シリーズ」ですが、これは「第一興商」 といった機材レンタル業者により、国内で、カラオケ店を中心に広がり始めます。  SL-1200シリーズの専用コントローラーと、ハイトルク(高い回転動力)に着眼 した世界中のDJたちが使い始めて、そこから「DJの定番ターンテーブル= Technics SL-1200」の歴史が始まります。 ■0x03.) DJ向けCDプレーヤーの誕生  そして、1986年にSL-1200の型番を継承したCDプレーヤー「SL-P1200」が発売 されます。これは当時のCDプレーヤーとしては珍しいデスクトップ型で、ピッ チコントローラーを備えたカラオケ(=DJ)目的として開発されました。  当時、DJプレイに使えるCDプレイヤーは、この一機種のみとなっていまし た。しかし、数分でピッチ合わせからスタンバイができるほどの機能性はありま せんでした。ただ「使える機種がこれしかない」という理由で、根性の入ったク ラブではよく設置されていました。 ■0x04.) DJ定番CDプレーヤーの誕生  そうした中、1994年に突如、Pioneerが完全なDJ向けをうたった「CDJ-50」と いうCDプレイヤーをリリースします。こちらはSL-P1200では実現できなかった 部分が解決されており、特に「マスターテンポ機能」を搭載したことで大ブレー クをしました。「マスターテンポ機能」とは、BPMを上げ下げしても、オリジナル のキーを保ったままで発音可能となる機能のことで、サンプラーなどのタイムス トレッチに相当する技術で、これにより、プレイの幅を広げたいと考えるDJの 間でCDというソースがDJプレイに取り込まれることになります。つまり「C DJ」というDJスタイルの幕が開き、ここからDJの中でも「アナログ派」と 「デジタル派」というDJスタイルに分かれることになるわけです。 ■0x05.) DJ定番スクラッチCDプレーヤーの誕生  DJ定番CDプレーヤーの定番と呼ばれる「CDJ-50」の成功により、Pioneerは 続々と新機種をリリースするのですが、いずれの機種もTechnics SL-1200シリー ズにある、アナログ的な操作性と比較すると、圧倒的にTechnics SL-1200シリー ズに軍配が上がり、特にHIPHOP系プレイヤーの間では「コスれない」という理由 から、まだまだDJ用CDプレーヤーとして受け入れられないものとなっていま した。筆者も実際のところDJ用CDプレーヤーを使いこなすための技術が未熟 であったため、綿密なミックスをおこなう場合にはTechnics SL-1200シリーズを 仕方なく選んでいました。ロングミックスの際、ビートが一度狂い始めると、手 の付けられないような結果となることが多かったからです。  そうした中、2001年の夏、Pioneerが完全なスクラッチDJ向けをうたった「C DJ-1000」というCDプレイヤーをリリースします。  これの目玉は「VINAL機能」というもので、このモードにするとどのような位置 であってもガシガシとコスることができるのです。これには驚きました。「いよ いよ、DJ用CDプレーヤーの時代がきたな」と思いました。世間でよくいわれ る「スクラッチができる」ということではなく、つまり、それはコスりをしない ハウス系のプレイヤーであっても、任意の位置をTechnics SL-1200シリーズのよ うに、キュルキュルと回せば、簡単にサーチできるため、これによりTechnics S L-1200シリーズと同じ扱いができるということになり、しかも、針が飛ばない、 一枚のCDがあれば、何枚でも複製を作れるわけですから、二枚買いをしなくと も、CD-Rさえあればいくらでも焼けることになります。  こうした事情も含めて、DJ用CDプレーヤーは、新時代を迎えることになり ます。 ■0x06.) Technics VS Pioneer  DJ用CDプレーヤーは「Pioneer」が完全なスクラッチDJ向けをうたった 「CDJ-1000」は、アナログ派の間でも受け入れられるようになり、以降、この路 線の廉価版として「CDJ-800」をリリースしてさらなる広がりを見せはじめます。  そして、2003年にはDENONよりジョグ部分がアナログ同様に回転する「DN-S500 0」がリリースされ、さらなる進化を遂げます。そして、この機種あたりから「M P3」を扱えるようにもなり、今後は、いずれのメーカーもMP3の機能を重視しなく てはならない状況になっているようです。  こうした中で、Technicsが重い腰を上げてリリースするのが「SL-DZ1200」とい うことです。いよいよ「Technics VS Pioneer」とした構図でDJ用CDプレーヤ ーをめぐっての定番機種としての熱い戦いが繰り広げられることになります。実 売価格は、100,000円前後となっています。けっこう安いのは次のサイトとなりま す。  http://www.otaiweb.com/player/cd.htm ■0x07.) スペックがショボい「SL-DZ1200」  ウリは「SL-1200から継承されたダイレクトドライブ」という点ですが、スクラ ッチの操作性は、DENON DN-S5000/3000に軍配が上がるかと思います。ハウス系な どでキモとなる、皿のフチを押したり、抑えたりする微妙な操作では申し分あり ません。ここがよくできています。しかし、それ以外では、なんら新しさを感じ ません。すぐに購入したのですが、一台にしておけばよかったと禿げしく後悔し ています。ただ、現場でMP3を使うような度胸のあるプレイヤーには最高かと思い ます。  筆者は、SL-1200MK3しか使えないので、できればブラックバージョンがあれば と思います。ちなみに同時発売されたDJ MIXERの「MZ-1200」ですが、これは糞で す。現在はすでにデジタルインを4系統装備した機種(NUMARK、DENON)があるわ けですので、少なからず各モジュールにデジタルインを搭載すべきだと思います。 さらに内部でDSP処理をおこなえるはずですので、せめてフィルターくらいは搭載 すべきです。あと、セパレートアウト。「CH1、CH2をフロントへ、CH3、CH4をリ アへ分割して出力します」。いらないです(怒)。  http://www.sl-1200.com/ ■0x08.) おわりに  次回は、DJ MIXERのルーティングを基礎から学ぶというスパルタ教室をおこな います(笑)。  …ということで、nyの開発者様、長い間、開発お疲れ様でした。  あなたの逮捕は、警察の「メンツ」を立てるための逮捕に他なりません。  目下、トップたちの目的は「インターネットとは、なにをしてもいいというも のではない。底辺のクズどもに自重をうながすことができればなんでもいい。そ のためには、大学関係者をアゲろ。非常に分かりやすいだろ? hehehe...」とい うことです。ご愁傷様でした。  なお、その他の事件についてはノーコメントとします。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第5章:お知らせ --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○Wizard Bible(http://2600ch.com/)では随時、執筆ライターを募集していま す。  扱う内容のテーマは広義での「under ground」です。例えば、ハッキングから サリンガスの合成法などと幅広い内容を考えています。また、各種、特殊な職業 や趣味を持った方のレクチャーなども含まれます。  一回きりでも構いません。また、必ず、毎回連載する義務もありませんのでで きる範囲で構いません。気軽に声をかけてください。もちろん一回書いたことが ある人も気軽に声をかけてください(全く気にしていない性格なので)。 ○Kenji AikoさんがQ&Aを作ってくれました。初めて参加する人でもわかりやすく 書かれていますので、参考にしてください。 http://akademeia.info/wizardbible/wbQandA.html ○支援者、参加希望者用のスレッドを立てました。 http://ruffnex.oc.to/ipusiron/cgi/forum/patio.cgi?mode=view&no=17 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第6章:著者プロフィール --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x  今回は各著者に印象深いゲームを紹介してもらいました。 ■山本洋介山 ●Job:怪我人 ●Web:bogus.jp(http://bogus.jp/) ●Mail: bogus@bogus.jp ●Team(Group):N/A ●Comment:  後遺症を持つ身としては梅雨はどうしても身体の具合が悪くなってきます。皆 さん、事故には注意しましょう。 ●印象深いゲーム:「オランダ妻は電気ウナギの夢を見るか」  「三国志」や「信長の野望」で有名な光栄が出していた「ストロベリーポルノ」 シリーズの1つで、奪われたダッチワイフ「南極X号」を取り戻すエロアドベンチ ャー。内容はともかくいろいろと斬新な要素満載だが、光栄は触れたくない過去 のようです。 ■Kenji Aiko ●Job: Student ●Web: http://ruffnex.oc.to/kenji/ ●Mail: kenjinet@s26.xrea.com ●Team(Group): N/A ●Comment:  前回の記事で、今回はLinuxのネタになるとかいっておいて、またWindowsネタ になってしまいました(^^;。この次こそはLinuxネタでいこうと思ってます。それ はそうと、またIEのセキュホが発見されたようですね (http://www.itmedia.co.jp/enterprise/articles/0406/12/news009.html)。 私はこのようなセキュリティホールが発見されるたびに、攻撃コードを探しにネ ット上をうろうろしています(^^;。だってIEで閲覧させただけで、相手のPCで任 意のコードが実行できるんですよ。こんな面白そうなことないですって(笑)。 でもいろんな攻撃コード試してたら、以前にも増してOSが不安定になったとか、 なんとか。 ●印象深いゲーム:「MOTHER」  「MOTHER」ですね。「MOTHER2」もいいです。少し前にゲームボーイアドバンス で発売されたようですが、できればファミコンでやったほうがいいです。どちら かというと、適度に音や色が制限されているファミコンの方があうと思います。 でもゲームボーイアドバンスでもいいです(^^;。エンディングのあと、感動でも ない、驚きでもない、達成感でもない、別の何かが伝わってくるゲームです。そ してラスボスとの対決は、おそらく一生忘れないものになると思います(少し大 げさでかな(笑))。でもホントいいゲームです。というかクリア後に残るゲー ムだと思います。そういう意味で印象深いゲームです。 ■MaD ●Job:DATA HOUSE ●Web:http://www.data-house.co.jp/ ●Mail:mad@data-house.co.jp ●Team(Group):secret ●Comment:  元ハカージャパソと危ない28号の百円ライター。趣味は、空き缶拾いと牛乳瓶 のフタ集め。2ちゃんねるでは「矢崎マサユキ」、「白鶴・丸」、「大同曲芸人 」、「泥棒・詐欺師」として通っている。ウソばかりつくので友達はいない。  現在は会社でヒッキーをしているが、将来はネットカフェの店員なるという目 標に向かってまっしぐら。とぁっ!(`Д´)。 ●印象深いゲーム  もともとアーケイドゲームのドス黒いブローカーをやっていましたので、ゲー ムはアーケイドしかやりません。メイン筐体はセガのエアロシティを4台くらい 置いていまして、部屋がゲーセンとDJブースのようになっていたのです。  ——能書きはおいといて、根性入ったゲームの紹介といきまひょ。 ○グラディウス1  -12Vのパワーサプライを必要とする変態基板として、その筋では有名なコナミ のバブルシステム基板。ユニット式だからツインビーにも対応。  ゲーム内容は簡単なんだけど、10周とかするときはオシッコとか我慢しないと いけないから、そこらが勝負の別れ目。2周目以降はザブよけがスリル満点!  最終面の一個手前の面のボスのとき、ある位置でダブルを打ちながら玉よけして、 ボスが自爆すると、最終面がバグり始めて、最後は画面が真っ赤になる。リセッ トしないと直らないので、よくゲーセンでそれをやったまま放置して帰りました。 ○グラディウス2  -12Vを必要としなくなったが、2枚基板で1枚(上側)がROM基板だから、別の ゲームはROM基板の交換でいくつか対応してはず。とても重い基板でした。  火山の面はフォースフィールドをつけると岩を通り抜けられるとか、異常なく らい安地が多かったことで有名。片手で煙草を吸いながら安地でオート連射を使 ってのんびりとできるゲームの秀作。二面目の最初のザコのとこで連射ボードを 最高のクロックにするとリップルの音がフォードバックを起こしてリングモジュ レーションみたいな素敵な音が忘れられない。 ○グラディウス3  最近でもしますけど、1周できなくなってます(笑)。トリプルコアの自爆技 をまだ思い出せないのが痛い。大体、火の面でもう一回死んで、最終面で頭がゴ チャゴチャになってクラブにペシャンコにされてしまいます。発売当初に無敵モ ードが広がってゲーセンで禁止例が出たいわくつきの基板。難易度は異常に高い けど、ぼくの中では、これを越える面白さのゲームはありません。とにかく根性 がいるゲームです。最高は2週目のバブルが限界でした。死ぬまでに一度でいい から3週目までいきたいです。問題となる氷よけも、PS版で鍛えたから、そこ は簡単になったのだが……。 ○グラディウス4  うんこ。  いらない。 ○グラディウス5  PS版がいよいよですねヽ( ´ー`)ノ。  でも、グラ3を1周するまではやらない。  物事には順序があるわけ。  それが真のグラファンなのだ。  おい! おまいら! 「ゲーム」ゆうたらバキバキに撃って撃って撃墜や!  「阪神尼崎」ゆうたら「アマ」のことや! 根性入ったジャージのオッサンや!  基本を覚えとけや! うんこ! ■IPUSIRON ●Job:サイト更新 ●Web:- Security Akademeia -(http://akademeia.info/) ●Mail:ipusiron@ruffnex.oc.to ●Team(Group):TeamSA ●Comment:  セキュリティ板で叩かれるのは想定してましたが、大規模MMORPG板で叩かれる とは思ってもいませんでした(笑)。  デストロイヤー向けのWebサイトも作成しました。  http://www.akademeia.info/main/lineage/  「Wizard Bible読みました」と最初にWisしてくれた方(いるのか? )がいれ ば、著書をプレゼントします。4鯖IPUSIRONでプレイしているのでよろしくです。 ●印象深いゲーム:「たけしの挑戦状」  これほどインパクトが強く謎満載のゲームはプレイしたことがありません。理 髪店に行けば剃刀で頭を切られてしまいライフが減り、社長を殴ると強い警備員 がかけつけてきたり、自宅に帰れば子供と妻が攻撃してきたり・・・。日本からハワ イに移動するときの飛行機が基本的に爆発するになっている仕様も意味不明です (笑)。  3DのMMORPGの「たけしの挑戦状2」があったらどんなふうになるのか、想像する だけで結構楽しい。