トップページ⇒tech
95コメント30KB

ウィルスチェッカ作りたいんだが・・・

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/12/03(日) 23:39:13
何もノウハウが無い。
そして、参考書籍も参考ホームページもプログラムも何も無い。

誰か、俺にウィルスチェッカの作り方を手取り足取り教えてくれ。
0002デフォルトの名無しさん2006/12/03(日) 23:42:05
そんなもん作れないだろう…
0003デフォルトの名無しさん2006/12/03(日) 23:42:33
>>2
その心は?
0004デフォルトの名無しさん2006/12/03(日) 23:50:43
ノートン先生によるとwshは全部ウイルスだそうだから
拡張子が *.vbs, *.js のファイルはすべてウイルスだ。
0005デフォルトの名無しさん2006/12/03(日) 23:56:11
ふむ、どうやら2chでもわかる人はいないか・・・
この分野需要あると思うんだけどなぁ。
こうも参考文献が無いのも変な感じだ。
0006デフォルトの名無しさん2006/12/04(月) 00:03:04
>>1
http://www.clamav.net/

【AntiVirus】 アンチウィルスソフト総合スレ
http://pc8.2ch.net/test/read.cgi/unix/1046547211/

ウィルスかどうかを判定する一元的な方法も無いし、全てのウィルスを
事前に入手する事も不可能だから、個人では無理。
0007デフォルトの名無しさん2006/12/04(月) 00:32:09
オープンソースなセキュリティソフト探してみては?

って、探してないオレが言うのもなんだが、
スパイウェアチェックのオープンソースとかはあるんじゃ!?

あったとしたら、基本のロジックくらいは・・・(ってないか!?

それから、個別のウィルスうんぬんって話は、ウィルス定義の問題だろうなぁ
って訳で、
きっと、定義を作成したらヒューステリック(だっけか?w)あたりのロジックは別として、
個別のファイルの中に入って、個別の定義に当てはまるか否かのチェックロジック部分が判れば、
スレ主としてはOKなんじゃないのかぃ?
000872006/12/04(月) 00:34:45
あぁ・・・手取り足取りか・・・

最近さ、セキュリティソフト業界の求人も増えてるわけだし、
アセンブラや逆汗・デバッガの知識をそれなりに習得して就職しちまうのが早いんじゃ!?w
0009デフォルトの名無しさん2006/12/04(月) 00:47:44
>>8
んー。
なんだろ、例えばトロイに当てはまる動作をするプログラムとかを
メモリもしくはHDDに呼び込んだらそれを発見するとか、そういう
基本的なメソッドを知りたいんだよね、まずは。

そこからしてどう手をつければいいかプログラム中級(?)の俺には
わからん。一応、アセンブラやCは使えるんだが。
001072006/12/04(月) 00:52:54
トロイにしろなんにしろ、
「特徴的な動作」ってのがあるわけで、
その動作・振る舞いを実現するロジックを実現する部分は、
プログラマやコンパイラに依存するわけだ。

ということは、
そのウィルス的なモノを実際に作ってみて、
その結果、どんなコードになっているのかを作り手の立場から理解していく必要があるんじゃないかな?

つまり、
まぁ、>>6が言うように、
一元的には・・・ って話です。
0011デフォルトの名無しさん2006/12/04(月) 00:56:29
>>10
手順はわかるんだ。
でも、その実現方法がわからない。

例えばトロイをつくったとして、その動作をするというのをどうやって調べるのか?
一度実行させて実行前状態と実行後状態を比較してみるのか、それともバイナリを読んで
事前に動作を知るのか。

前者はロールバックできるような環境さえ整えれば可能かもしれないけどあまり現実的じゃない。
後者が理想的だけどまさしく実現方法がわからない。
001272006/12/04(月) 01:05:14
オイラもそんなに詳しい訳じゃないの・・それ前提で・・播(゚∀゚)ネッ!!

でもさ、セキュリティパッケージによっては、
その後者を実現している訳ですよ。
たしかに前者は現実的じゃないわけだしネw

後者を実現する方法だってさ、
対象の振る舞いの特徴次第じゃないかなぁ・・・

「一元的には・・」って意味はさ、
つまり、
コーディング的な観点からや、
メモリ上での存在方法や処理方法までを含めた観点、
ネットワーク的な観点、
果ては、ソーシャル的な観点まで波及するわけだ。

あなたの知識はその全てを網羅した上で、
そのロジックがかかれているコードをアセンブラ的に見いだせるか否か?って話になってしまうわけで、
「実現方法」って話になると、
結論としては、やっぱり、「個人じゃ無理」ってコトなんじゃないかなぁ・・・
0013デフォルトの名無しさん2006/12/04(月) 01:05:24
>>1
ウィルスかどうかの判定はウィルスの種類毎に大きくことなるから一概には言えないけど
Windows用のアンチウィルスソフトを作りたいならまずはWindowsDDKをゲットしる。
そんでファイルシステムフィルタドライバを作ってそこで全てのファイルへのアクセスを
フックしてウィルスかどうか判断してウィルスならファイルへのアクセスをブロックしれ。
001472006/12/04(月) 01:09:45
>>13
前向きで惚れそうデス
0015デフォルトの名無しさん2006/12/04(月) 01:16:32
10年ぐらい昔、chなんとかとかいうDOSのウィルスを解析してワクチン作ったことがある。
こいつは、先頭にjumpを挿入して後ろにくっつくタイプだったと思う。
このとき、感染前と後で比較をしてウィルス部分を特定したが、元ファイルの数バイトを暗号化して
ウィルス部分に持っていた。ディスアセンブルして複合化部分を抜き出し
感染した実行ファイルからウィルスを駆除することに成功した。

このときのウィルスチェックルーチンは、先頭のjumpの有無、
後ろのウィルスコードの一部(16バイトぐらい)を検査し、合致すれば感染していると見なした。

未知のウィルスじゃなければこの方法で逝けるが
個人で大量のウィルスを解析してシグネチャを取るのは不可能だと思う。

って、未知のウィルスを検出する方法だったら、がんばって開発汁!
きっと大金持ちになれまつよ><b
001612006/12/04(月) 01:17:48
>>12
このプログラムを実行したら「ファイルをデリートする」と言う事を実行前に
知りたいとしたらどうすればいいのか。その方法を知ることは多分一元的解決
法ではないにしろ、この分野では基本の基本として大事なことだと思う。

漏れも現実的に有用なチェッカをつくろうとは考えていないよ。
ただ、そういうものも作れるようになりたいだけで。勉強したいだけ。
実際のウィルス駆除ソフト屋は24時間体制で後出しじゃんけん的に
ウィルスを追っているらしいから、土台個人で無理なのは重々承知。
この辺断っておけばよかったね。スマソ

>>13
WindowsDDKダウンロードできない・・・
てか何するものなのかもよくわからん。
英語読むか・・・
001772006/12/04(月) 01:23:58
>>16
まさに 13 がヒントになっているのじゃないかと思うわけだが、
一つだけツッコミ。

「英語が読めなきゃコノ業界はムリポ〜」
話せるようになれとは言わん。
リアルタイムで理解できるようになれとも言わん。
が、「英語で書かれている文章を読み解ける位になるぞ!」という執念や想い、
そして、それを実現する力があれば、
大概のコトは先駆者が居るモンだ。
それに追随していくコトが、あなたの力になると、オレは思うゾ!
0018・152006/12/04(月) 01:24:39
ああそうだ、その頃は未知のウィルスに対抗する方法として全部の
実行ファイルのサイズと、CRCを書き出して一日一回全確認することで対抗してた。
だって、PC-98だったし。

メモリに常駐されると、だめそうだが。
001912006/12/04(月) 01:33:29
>>17
英語は別に苦じゃないんだけど。
Microsoftのリファレンスを前提知識少ない状態で読んで理解できたためしが
無いんだ、俺・・・orz

つか、卒論は全く別の分野やっとるからそんな本格的にやるつもりじゃないよ。
趣味と言うか好奇心と言うか。発作的に何かプログラム組みたいときってあるでしょ?
そんな感じでこのスレたてたんだけど。

>>18
PC-98・・・
大先輩ですな。
漏れはWinMEをゲームやりたくて買ってはじめてPCに触れました。
本格的に使ってるOSはUNIXという罠。しかもSolaris。

CRC書き出しってウィルス対策と関連があるんですか。
むぅ、奥が深いなぁ。
002072006/12/04(月) 01:36:49
1.メモリ上に存在するシステム各種に対してチェックをするために必要なコトは?
2.読み書きしようとするFAT上に存在する物理ファイルにアクセスする際、
 その処理が実行される前に、フックしてチェックするために必要なコトは?

って考えると、>>13 は2番を解決する一つの方法(唯一とは思わない)だと思うんだ。
あなたには、これらの解法を見いだす為のインスピレーションがあるんであれば、
あとはその実現するためのスキルを磨く努力をするのが良いんだよね。

いま、そのヒラメキが欲しいのであれば、
それをヒラメクための知識もありそうな訳だし、
とりあえずは>>13に乗るべく、
「あがいてみる」ってのが、趣旨に添ったオイラなりの回答。

いかがでしょ?
002172006/12/04(月) 01:41:45
>Microsoftのリファレンスを前提知識少ない状態で読んで理解できたためしが
たしかに・・w

あんなのはさ、
自分が「あがいた結果」を検証するために存在するモンだと思うわけです。
たたき上げのコーダー的なオイラとしては、
リファレンスの類なんて、自分の試行錯誤があって、初めて納得できるんだわさ・・
それは、オイラに予備知識がないから・・・ってのが主因なわけで、
学校や勤め先でそれなりの「学問的な知識」がある人にとっては、
最初からバイブルになり得るのかもしれないんですが・・・(・∀・)ニヤニヤ
002272006/12/04(月) 01:43:09
× 学校や勤め先でそれなりの「学問的な知識」がある人にとっては、
○ 学校や勤め先でそれなりの「学問的な知識を習得する機会」があった人にとっては、

002312006/12/04(月) 01:47:23
う〜ん、少なくとも俺にはならんね。
つか、これ学問的な知識いるんか?コンピュータは基本ScienceじゃなくてEngineering
だと思うんだが。
それにこの話自体凄い泥臭い感じがするし。

WindowsDDKの概念はわかった。
Filtering Driverを作るAPIみたいなものか。
0024デフォルトの名無しさん2006/12/04(月) 01:54:27
リファレンスの類を読むには必要さ、ある種の学問的な知識がさw

WindowsDDKがどんなモンか詳しくは知らんw
が、ファイルにアクセスする部分にフックさせなきゃ話にならないわけで、
>>13を信じるのであれば、
それを実現するために必要なドライバかその類が作れるDKなんだろうなぁ・・・
0025デフォルトの名無しさん2006/12/04(月) 01:57:57
http://www.xlsoft.com/jp/products/windriver/windriver.html
002612006/12/04(月) 02:00:42
>>24
そもそもファイルシステムフィルタドライバとやらがフックさせるものって書いてあるしね。
プロセス間通信を全てこのドライバを通して行うということか。
システムのスループット激オチしそうだ・・・
0027152006/12/04(月) 02:06:21
>>CRC書き出しってウィルス対策と関連があるんですか。
感染するタイプなら、サイズと内容に変化があるはずだから未知のウィルスでもわかる。
また、記録してない実行ファイルが増えていると、危険なファイルの可能性有り
という、子供だまし化石テク
0028デフォルトの名無しさん2006/12/04(月) 02:08:18
>システムのスループット激オチしそうだ・・・
その辺は、セキュリティ向上<>ユーザビリティ向上 の命題ダワサ

最近のフレームワークを探せば、ほかの方法が見つかるかもしれないけど、
その辺は、インスピレーション次第ってコトだと思うわけです。
0029デフォルトの名無しさん2006/12/04(月) 02:12:09
またクソスレ建てたな>>1
0030デフォルトの名無しさん2006/12/04(月) 02:13:07
クソスレあげんな
0031デフォルトの名無しさん2006/12/04(月) 02:14:32
そんなアナタがアゲアゲ〜

な〜な〜ななな〜♪w
003212006/12/04(月) 02:14:46
>>27
感染タイプと言うのは適当な既存のファイルに取り付くと言う意味ですか?
それなら確かに有効かも。でもCRCじゃなくても更新日時見るだけでわかるような気も・・・

つか、確かに原始的ですがかなり有効かも。
0033デフォルトの名無しさん2006/12/04(月) 02:16:58
>>32
更新日時はすぐにでもいじくれる
根本的なこと聞くが



  何がウィルスなの?



  何がウィルスじゃないの?
003472006/12/04(月) 02:18:58
>>32
その辺、「一元的」って話の延長ですよ、ダンナさん。
更新日時なんて、○| ̄|_ =3  プッ って話デス。

「ナニをもってウィルスとするか」を考えるセンス、もっと大事にしてくださいね。
0035152006/12/04(月) 02:21:11
感染するから、ウィルスなんだが・・・
サイズを合わせるタイプもあるはず。CRCのほうが確実かと。
0036デフォルトの名無しさん2006/12/04(月) 02:24:23
http://e-words.jp/w/E3839FE383A5E383BCE38386E383BCE382B7E383A7E383B3E59E8BE382A6E382A4E383ABE382B9.html
0037基本的なこと2006/12/04(月) 02:31:53
ウィルス:実行ファイルや、データなどに感染。
ワーム:感染しないが自己増殖する。
トロイ:感染しないが、主に起動後タイミングを見計らって破壊活動を行う。

現在はこれらの複合型とか、トロイが主流。

つーか、高度なウィルスすくないよなー。
馬鹿でも作れるトロイばっかだし。
0038デフォルトの名無しさん2006/12/04(月) 02:33:30
HDDを直読みしないと見つけられないウイルスもあるですよ
0039132006/12/04(月) 02:40:57
ファイルシステムフィルタドライバを使ってないWindows用のアンチウィルスソフト
なんて聞いたことがない。その他のテクも使うにしてもこれは必須。
以前はWindowsDDKとは別にFSFKitを購入(日本円で10万ぐらい)しなければならんかったけど
今はWindowsDDKに統合されている。WindowsDDKについてはこっちのスレでも見れ。

WindowsDDK各種についてのスレ
http://pc8.2ch.net/test/read.cgi/tech/1049116134/


英語に関しては俺もろくにわからんながらにこの業界で足掻き続けてる。>>1も根性見せてみろ。
あと、アドバイスしとくと英文を全部正確に理解しようとするな。
そんなことしてたら確実に挫折する。
0040デフォルトの名無しさん2006/12/04(月) 02:43:26
>>37
BIOSは保護されてるしMBRも保護されてるし
後はOS依存しかないけれど、OSに食いつくハッカーいなくなってるし(Windowsがどんどん気持ち悪くなってきてる)
もうVBSとかIEとか周辺分野しかないですよ
0041132006/12/04(月) 02:43:42
↑のスレにもあるがWindowsDDKはここからダウンロードできる。

414 名前:デフォルトの名無しさん[sage] 投稿日:2006/08/04(金) 15:35:58
いつの間にかDDKがダウンロードできるんだが
ttp://www.microsoft.com/whdc/devtools/ddk/default.mspx

Download the Windows Server 2003 SP1 DDK [236 MB ISO file]
Note: To download and use the DDK, you must burn the ISO file to a CD or DVD.
0042デフォルトの名無しさん2006/12/04(月) 02:53:48
2ちゃんねる:ヒトの心に感染。中毒を起こし、様々な症状が出る。
0043デフォルトの名無しさん2006/12/04(月) 02:58:04
>>1
clamavのソースでも見たらどうだ
004412006/12/04(月) 12:09:00
>>41
�dクス
Windows2003 Server SP1か。
XPでも動くかな?

>>43
clamavってこれか。
http://clamav-jp.sourceforge.jp/
UNIX系のオープンソースウィルス駆除ツールか。

本家のDonation->Skillsを見たんだが開発者募集はかけてないみたいだな。
ドキュメント作成や他のユーザ補助をしてくれって事しか書いてないや。

最も、俺のレベルではとてもじゃないが開発陣には加われないけど。
0045デフォルトの名無しさん2006/12/04(月) 12:19:44
プログラム自体はたいしたことはないが問題はウィルスの定義ファイルを作ったりするところだと思われ
あれ自体は恐らくパターン解析をしているだけだからそれほどたいしたことはない
ただ、そのウィルスのパターンファイルを作ったりそれがウィルスであるということの定義をすることは
研究機関等が集めているんだろ?もう売ってんだから買えばいいのに・・・
004612006/12/04(月) 12:30:02
いままでの流れをまとめると、

パターン1
�@プログラム実行
↓
�Aフィルタドライバによるウィルス定義に当て嵌まる不正動作検知
↓
�B動作停止・駆除

か、

パターン2
�@バイナリリード(メモリ上 or HDD上?)
↓
�Aウィルス定義と一致する危険コード発見
↓
�B駆除

の2パターンがあるって事だよね。
とすると、手軽にウィルスチェッカつくった気分になるにはパターン1のテンプレート
作成かな?
0047デフォルトの名無しさん2006/12/04(月) 19:20:05
手軽じゃないがな。
サンドボックスとか調べてみそ。
0048デフォルトの名無しさん2006/12/04(月) 23:46:04
>>46
つまりVMを作ると
そこにプログラムを囲うと

すばらしく泣ける気がする
0049デフォルトの名無しさん2006/12/05(火) 02:01:42
今の先端技術だしな
0050デフォルトの名無しさん2006/12/05(火) 12:45:37
実行ファイル全てさくっと削除しちまえよ
0051デフォルトの名無しさん2006/12/05(火) 13:31:57
男らしいな
0052デフォルトの名無しさん2006/12/05(火) 13:32:14
ソレなんてウィルス?
0053デフォルトの名無しさん2006/12/05(火) 19:34:54
実行ファイルだけといわずハードディスク初期化でいいじゃん
0054デフォルトの名無しさん2006/12/05(火) 20:08:12
それは女々しいな
0055デフォルトの名無しさん2006/12/05(火) 21:32:38
そういう労力がかかってお金になる技術はあんまり表に出てこないね
0056デフォルトの名無しさん2006/12/06(水) 00:33:18
だって最先端だしな
0057デフォルトの名無しさん2006/12/06(水) 02:50:21
俺んち最北端ですが何か?
0058デフォルトの名無しさん2006/12/06(水) 13:16:38
おい>>1

まずてめーでウイルス作ってみろ


それとDDK使うならまずフィルタドライバじゃなくて普通のデバイスを動かす
デバイスドライバ作れ

話しはそれからだ
0059デフォルトの名無しさん2006/12/06(水) 16:11:32
最低底ですが何か?
0060デフォルトの名無しさん2006/12/11(月) 22:31:41
定期age
0061デフォルトの名無しさん2006/12/11(月) 22:38:13
AVG辺りの定義ファイルを解析して
自分でチェックすればよくね?
0062デフォルトの名無しさん2006/12/14(木) 18:33:56
ってゆうかavgを起動してウィルスチェックするプログラム作ればいいんでね?
0063デフォルトの名無しさん2006/12/15(金) 16:50:09
スーパーバッチプログラマーの出番か
0064デフォルトの名無しさん2006/12/16(土) 17:17:46
×ウィルス
〇ウイルス
0065デフォルトの名無しさん2006/12/16(土) 17:29:29
×ウイルス
○ビールス
0066デフォルトの名無しさん2006/12/16(土) 17:35:32
ヴァイラス
0067デフォルトの名無しさん2006/12/17(日) 00:22:52
×ウィルス
〇ウイルス
0068デフォルトの名無しさん2006/12/17(日) 02:17:28
×ウイルス
〇ウイノレフ、
0069デフォルトの名無しさん2006/12/17(日) 03:24:07
ういのれふ、ってなんだ?
0070デフォルトの名無しさん2006/12/17(日) 12:59:31
なんだぁ?
ウィって
酔っ払ってんのか?
0071デフォルトの名無しさん2006/12/17(日) 13:49:28
──┐
   │               [任天堂]
   │   J( '∀`)し       (´∀` ) <Wiiなら本体にソフト付けても安いよ
   │     (  )\('∀`)ノロロヾ(  )
   │     ||  (_ _)ヾ     ||
0072デフォルトの名無しさん2006/12/18(月) 11:58:41
ウィ〜
いまかえったよぉ
0073デフォルトの名無しさん2006/12/29(金) 04:37:58
VVirii
0074デフォルトの名無しさん2007/01/14(日) 17:26:19
新年あけま
0075デフォルトの名無しさん2007/03/09(金) 17:10:10
age
0076デフォルトの名無しさん2007/03/09(金) 17:17:15
おもしろそうなスレだなと思ったがすでに崩壊してるのか
ざんねん 1のぼうけんは これで おわってしまった?
0077デフォルトの名無しさん2007/03/09(金) 20:20:53
アンチウィルス作るためには、まずウィスル作らな
0078デフォルトの名無しさん2007/03/10(土) 00:16:35
とりあえずVirtualPC上で自作ウィルスつくって
その動作フックしてそれを止めればいいんじゃね?

0079デフォルトの名無しさん2007/03/10(土) 01:46:56
チェック用のVirusならEICARがあるだろ。
0080デフォルトの名無しさん2007/03/13(火) 09:11:10
実用的なやつを作ったらトレンドマイクロかノートン先生に消されるって本当ですか?
0081デフォルトの名無しさん2007/03/19(月) 00:37:33
>>80
金で買われて世の中には出回らないんじゃないか?w
そしてそれを飲み込んでさらに重くなってゆく二つのウィルスソフトwwwww
0082デフォルトの名無しさん2007/03/19(月) 23:48:33
×ウィルス
○ウイルス
0083デフォルトの名無しさん2007/03/20(火) 20:41:10
>>82
×ウイルス
○ヴァイラス
0084デフォルトの名無しさん2007/03/20(火) 22:19:05
×ウイルス
×ビールス
0085デフォルトの名無しさん2007/03/20(火) 23:55:59
×ビールス
×ヴァイラス
○ウイルス
0086デフォルトの名無しさん2007/03/21(水) 00:25:26
×ブルース・ウィルス
○ブルース・ウィリス
0087デフォルトの名無しさん2007/03/21(水) 01:05:09
×ブルース・ウィリス
○禿げ
0088デフォルトの名無しさん2007/03/21(水) 01:08:47
×禿
○損
0089デフォルトの名無しさん2007/03/21(水) 02:17:07
○ウイルス
×その他
0090デフォルトの名無しさん2007/03/21(水) 22:27:04
>>1
今からだともうダメだと思う。理由は、「あまりにも数が多すぎる」から、
実用になるものを作っても、次から次へとウィルスは出てくる。
トレンドマイクロあたりだと、「ウィルス発見と共に、数時間以内に
自動的にパターンファイルが吐き出されるところまで自動化されている」
という噂まである。まあ、「カスケード単体検索」とか、「ブラスター単体
を検索、除去」というように、一つのウィルスだけを探し出すというので
あれば良いと思う。
0091デフォルトの名無しさん2007/03/21(水) 22:45:50
>>90
×今からだともうダメだと思う。理由は(以下略
○ウィルス
0092デフォルトの名無しさん2007/03/21(水) 23:07:20
>>91
×ウィルス
○ウイルス
0093デフォルトの名無しさん2007/03/21(水) 23:33:39
>>92
×ウイルス
○ウィノレス
0094デフォルトの名無しさん2007/03/27(火) 20:08:18
×ウィンドウズ
○ウインドウズ
0095デフォルトの名無しさん2007/03/27(火) 20:34:04

×ウインドウズ  ▽
○ワインドウゾ っ⊥
■ このスレッドは過去ログ倉庫に格納されています