スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

バッファオーバーラン

バッファオーバーラン関連についての豆知識。

バッファオーバーランは、別名バッファオーバーフローと言われます。
よくこれを悪用して、悪意のあるコードが実行されます。Windowsのことですが・・・

まず、バッファオーバーランの仕組みについて説明します。
プログラムは固定長または非固定長のデータ領域をメモリ上に確保します。
データ領域(変数)には、数値、文字、メモリアドレスなどが格納され、順番にCPUが読み込んで処理していきます。
確保されるデータ領域は、予め指定された(固定長)又は、扱うデータサイズ分(非固定長)確保されます。
このメモリ上に確保されたデータ領域よりも大きなデータが格納されると、バッファオーバーランになるのです。
buf1無駄にデカイ
図だとこんな感じになります。

OSや別プログラムが使用している領域までもが書き換えられるかもしれません。
この場合、最悪OSがハングアップしますし、他のデータが破損します。
もちろん、殆どの場合バッファオーバーランを起こしたプログラムもエラーになります。
これがバッファオーバーランの仕組みです。

いかに危険なことか理解できたでしょうか。

次に何故悪意のあるコードが実行できてしまうのか説明しましょう。
*プログラミングをやっている方なら理解しやすいのですが、難しい説明になります。
なので読みたい方は続きを読んでください。

Read more
スポンサーサイト

tema:プログラミング - Genre:コンピュータ

  1. 2010/04/19(月) 13:08:52|
  2. 豆知識
  3. | Track back:0
  4. | Comment:3

「スパゲティ・コード」何それ、おいしいの?

スパゲティ・コードについて適当に解説します。
名前的に電気コードでスパゲティでも作ったみたいな名前ですねw
スパゲティ・プログラムとも言います。
処理の流れ(制御)が複雑で理解しにくく、修正や機能の追加が難しいプログラムのことです。
「goto文」などを多用したプログラムが典型的な例です。

*「goto文」とは、プログラムの処理から別の処理へジャンプする命令のこと

処 理 A←--+
|   ↓   |
|  処理B←+----+
↓   ↓   |    |
処 理 C----+   |
    ↓        |
処 理 D---------+
    ↓
    ・
    ・
    ・                 図書くの下手orz ぐーぐるくろーむで書いた。IEだと崩れる。

処理Aから処理Cにジャンプし、それから処理Aに戻ったり、処理Bへ行ったり・・・
または、A→B→C→D→B→C→Aとなったり・・・
このように、goto文を多用すると、かなり解りずらいプログラムとなってしまうのです。
これがスパゲティ・コードの正体です。

この名前の由来は、プログラムを修正するときに一部を変更すると、全体を変更しなければならないことが、スパゲティを少し取ろうとすると全部付いて来てしまう様子と似ているからだそうです。

このようなコーディングはバグを生みますし、バグの発現条件の特定を困難にさせます。
またバグを直したつもりが新たなバグを生み出してしまうこともあります。
これを改善する方法は、プログラムを一から作り直すことです。(急がば回れとはこのこと)

プログラミングの書籍にはgoto文は「あまり多用しない」又は、「使ってはいけない」と書かれています。
しかし、goto文は多重ループを一気に抜けたい場合とても重宝します。

スパゲティ・コードは特に初心者が起こしやすいです。
慣れて来るとgoto文とは別の方法で上記の処理を書く事ができるようになりますし、もっとシンプルな処理の流れが組めるようになります。
プログラミング初心者の方は気を付けてくださいね。
以上解説終了。

tema:プログラミング - Genre:コンピュータ

  1. 2010/03/28(日) 14:34:36|
  2. 豆知識
  3. | Track back:0
  4. | Comment:0

ハッカーとクラッカーの違い2

以前にもハッカーとクラッカーの違いを説明しました。
なぜ、今回も同じことを説明するかと言うと
ハッカーとクラッカーの違いが解らない中二病患者がブログやっていたのを見つけたからです。
リンクは張りませんが「中学生 ハッカー」と調べれば出てくると思います。

では、説明に入りましょう。

まず、ハッカーとクラッカーは対極の存在です。
ハッカーは「造る」クラッカーは「壊す
ハッカーと言うと一般的なイメージは「壊す」方のクラッカーですが、これは間違いです。

次に、コンピューター技術に関して
ハッカーは一流のスペシャリストです。
もちろんハッキングすることも出来ますが、必要な場合に限られます。
ハッキングをする場合とは、サーバーの脆弱性を証明する場合などです。
このとき破壊行為やデータの無断使用などはしない。
様々な技術を生み出し、修正したりします。

クラッカーは二流いや三流の悪餓鬼です。
他のクラッカーが作成したツールを使用して破壊行為をする悪です。
クラッカーたちは、所詮猿真似です。
中にはハッカー級の技術を持つ者も居るでしょうが、扱いはクラッカーです。
クラッカーは技術を作ることは出来ない、出来ることは脆弱な部分に対して攻撃方法を摸索するだけです。
自分一人の技術で何も出来ない人です。

ハッカーは目立ちたがりません。
真に力を持った人が、周囲からハッカーと呼ばれるのです。
決して自分から名乗るような低脳なことはしませんし、派手なハンドルネームを使いません。
例としてFALCONなどです(ブラッディ・マンデイとか特に、あれはドラマだからいいけど)。
自らハッカーと名乗る人はクラッカーです。

まぁ、説明はこんなもんです。
詳しくはHow To Become A Hacker

Read more
  1. 2010/02/10(水) 10:56:55|
  2. 豆知識
  3. | Track back:0
  4. | Comment:1

USBのお手入れ

最近買ったUSB外付けDVDドライブDVR-U20Eですが
映画の鑑賞中に何の前触れも無く、勝手に切断・再接続をしてしまうという現象が起こった。

酷いときは10分ごとに起き、とても映画を見てられない。

原因はUSB端子の接触不良だろうと思い
解決策をサーチしたところ、お手軽に接触不良を直す方法があった。

●接触不良USBを救うコンタクトRのナゾ

コンタクトR(レシートですよ)でUSB端子を研磨して、伝導率をあげるということです。
これを実践したところ、2時間もある映画は無事中断することなく、見ることが出来ました。
いや~メデタシ、メデタシ。

これで解決しないなら、もう一つ方法がある。
近年のUSB端子は寸法精度がいい加減で、許容範囲を超えたサイズの場合があり。
USB端子の銀の部分を1.0mm程削る又は、白い部分を0.5mm程削り、許容範囲内に収める。
これで、USBが奥まで刺さり、接触不良が解消されるだろう。

しかし、それでもダメなら、ケーブルの何処かが断線しているか、USBを挿す側の問題である。
前者は、買い換えればいいが。
後者なら、修理に出すしかないでしょう。
または、USBインターファイスを増設ですね。

以上豆知識でした。

・補足
そういえば、鉛筆で接触不良を直すことが出来るようですが
これは鉛筆に含まれる黒鉛が接触をよくしてくれるからです。
しかし、最近の鉛筆には黒鉛含まれてないそうです。
なので、鉛筆でむやみにやたらにこすり付けると、逆に悪化しますので気をつけてください。
  1. 2010/02/07(日) 12:50:27|
  2. 豆知識
  3. | Track back:0
  4. | Comment:0

南京錠をピッキング

今日はあまりにも暇すぎて
さらに私の視界に南京錠が映ってしまったことから始まった
南京錠のピッキングを紹介しようと思います。

最初は自力でなんとか開けようと、クリップ二本でがんばった。
けど、開かなかった。
今度はヘアピンとクリップで頑張った。

・・
・・・
・・・・無理!

となり、ネットでだらだら検索。
普通にありますね。
http://power-cool.hp.infoseek.co.jp/picking.html

・・・カチャッ
結果成功!!
その後何度かやってたらヘアピンだけでも開けれるようになった。

タラララ~タッタ~♪(ドラ○エ、レベルUP音)
『管理人はピッキングレベル2になった。』
  1. 2010/01/20(水) 22:41:12|
  2. 豆知識
  3. | Track back:0
  4. | Comment:0