BitDefenderコマンドライン版 簡易インストーラ

2012年4月16日

Error: core initialization failed: (null)エラーについて


BitDefenderコマンドライン版でスキャンすると上記エラーが出て、スキャンができないという症状がおこっています。アップデート操作をしてもこのエラーが治らない場合には、BitDefenderコマンドライン版をインストールしたフォルダにあるPluginsフォルダの中のファイルの中で0バイトのサイズのものが存在していないかチェックをしてみて下さい。(Explorerを詳細表示にすると探しやすいです) 大抵の場合はemalware.298というファイルがそれに該当するようです。

こちらのページにアクセスして、0バイトのファイルと同名ファイルをダウンロードし、そのファイルでPluginsフォルダの0バイトファイルを上書きしてしまってください。これで治るはずです。

2010年6月17日

Vista/7におけるエラーについて

BitDefenderコマンドライン版をお使いの方で、平成22年6月8日頃より、スキャンの途中でアプリケーションエラーが起こりスキャンが出来なくなる現象が生じております。

このエラーに対応した簡易セットアッパーを作成しました。簡易セットアッパー解説ページをご覧下さい。

また簡易インストーラで作り上げた環境をアンインストールすることなく、このエラーに対応する実行ファイルを用意しましたので、ダウンロードしてご利用下さい。ただし、今後別のエラーが出るようになる可能性がありますので、できれば簡易インストーラをアンインストールし、簡易セットアッパーで再セットアップすることをお薦めします。

bdcore_update.zip(25KB)

ダウンロードした圧縮ファイルを展開し、添付テキストをお読みの上、EXEファイルを右クリック→「管理者として実行...」してください。

XP/2000/Me/98ユーザーなど、不具合が出ていない方には不要のものです。

2009年8月17日

重要なお知らせ

BitDefender公式サイトでは現在、BitDefender Free V.10 を配布していません。代替の入手先はこちらです。

BitDefenderコマンドライン版の導入は大変なので、簡単に導入できるように簡易インストーラを作りました。

BitDefenderのいかなるバージョン(V7/V8/V9/V10 フリー版/製品版など)においても、コマンドライン版ではなく通常の方法でインストールしてある方は、コマンドライン版の導入はしないでください。あるいは、そちらをアンインストールしてから導入してください。

OSはWindows 98/Me/2000/XP/Vista/7が対象です。(当方で確認したのは、XP Pro SP2/2000 Pro SP4/Vista Home Basic/Vista Home Premium/Vista Ultimate/98SE/Meのみ。2003/2008 Serverは体験版ではOK。あとは自己判断でお願いします。Win7は32bit/64bitともRC版で簡単に試しただけです。)

あと、Windowsインストーラがインストールされていることが必要です。最近のOSでは最初からインストールされていますが、Win98の初期状態では未導入です。ただし、その後WindowsアップデートやIEのバージョンアップなどで、知らない間にほとんどの環境で入っていると思います。確認方法は、「スタート」→「ファイル名を指定して実行...」でmsiexecと打って実行してください。「不正なコマンドv2.**」みたいな表示が出れば98でも導入済みです。もし未導入ならばMSサイトから入手できます。Windowsインストーラは一応Windowsの純正・推奨・王道・御用達インストーラなので、導入してない方はインストールしておいたほうが良いと思います。

1.BitDefender Free Edition のインストーラを入手

BitDefenderコマンドライン版は、BitDefender Free版 V.10 に含まれる一部のファイルを抜き出して利用します。現在このページの冒頭に書いたような状況なので、公式サイトにダウンロードページがありません。こちらから入手してください

2.簡易インストーラを入手

私が作った簡易インストーラです。ダウンロードしてローカルに保存してください。

bit_com.zip (2009/8/17更新)

2009/8/17更新 
・BitDefender公式サイトに存在する bitdefender_free_v10.exe を直接ダウンロードするように変更。→その後、公式サイトからもダウンロードできなくなったため、前の段落で指定したリンクから別途ダウンロードしておいてください。

2008/8/29更新
・bdc.ini内の記載を
UpdateHttpLocation = http://upgrade.bitdefender.com/update71
から
UpdateHttpLocation = http://upgrade.bitdefender.com/update_is_90
に変更。

2008/8/29以前の簡易インストーラでBitDefenderコマンドライン版をインストールしてある場合には

◎自分でbdc.iniを書き換える場合
 ○Vista以外、あるいはVistaでUACオフの方
  →Program Files\Common Files\Softwin\Bitdefender Scan Server内のbdc.iniをテキストエディタで開き、上のように記載された行を探して、update71をupdate_is_90に書き換えてください。
 ○VistaでUACオンの方
  →上記作業に加えて、%LocalAppData%\VirtualStore\Program Files\Common Files\Softwin\
Bitdefender Scan Server内のbdc.iniも同様に書き換えてください。(隠しフォルダです)

◎簡易インストーラを使う場合
 ○Vista以外、あるいはVistaでUACオフの方
  →簡易インストーラを使って、上書きインストールしてください。(うまくいかない場合のみ、下のやり方でやってみて下さい)
 ○VistaでUACオンの方
  →一旦コントロールパネルからBitDefenderコマンドライン版をアンインストールし、再び簡易インストーラを実行してBitDefenderコマンドライン版を再インストールしてください。

3.インストール

bit_com.zip を解凍して中身のbd_setup.exe を実行します。bitdefender_free_v10.exe を直接実行してしまうと、普通の【BitDefender V10 フリー版】のインストールになってしまうので、間違わないように。

あとはウィザードに従って進めてください。作業が終了したら、インストールに使用した2つのファイルは削除してかまいません。

あれほど面倒だった設定作業が、初級ユーザーでもできるようになりました。

【BitDefenderコマンドライン版】のインストールフォルダは、
<システムの入っているドライブ名>:\Program Files\Common Files\Softwin\BitDefender Scan Server
で固定です。これは、BitDefenderをコマンドライン版ではなく、通常版としてインストールした時にも、ユーザーが選択したインストール先に関わらず、コマンドライン版で使うファイル群である BitDefender Command line scanner は、この位置にインストールされます。この位置に置いておかないと何らかの不具合があるかもしれないので、ここにパスを固定しています。また【BitDefenderコマンドライン版】のインストールでは、このフォルダ以外の場所にファイルを作ったりしていません。ここに置かれたファイルと、コンテキストメニューを出すためのレジストリの設定だけで、機能を実現しています。

(パワーユーザー未満の制限ユーザーでは、このフォルダに書き込みができないし、コンテキストメニューを出すために使うレジストリのHKCRにも書き込めないので、
【BitDefenderコマンドライン版】をインストールするためには、パワーユーザー以上の権限が必要になります。

簡易インストーラでは、ユーザーがこのフォルダ内のファイルを直接操作する必要は全くありませんし、またアンインストールする時には、このフォルダは丸ごと消えるので、インストールフォルダのことはあまり気にする必要はありません。
ただし、9x系の方は普遍的な解説頁の4の設定は行ったほうが良いでしょう。

4.アンインストール

もしも【BitDefenderコマンドライン版】をアンインストールしたくなったら、コントロールパネルの「アプリケーションの追加と削除」(XPでは「プログラムの追加と削除」)経由でアンインストールします。【BitDefenderコマンドライン版】がインストールされていたフォルダを削除し、関連レジストリ項目を消去して、インストール前の状態に戻します。

プログラムの追加と削除

5.実際に使ってみる

初めて使う時は、ウィルス定義が空っぽなので、まずアップデートで定義を入手します。何でも良いので何かのアイコンを右クリックして、コンテキストメニューの『BitDefenderをアップデート(U)』を選びます。

コンテキストメニュー

下図のような画面が開き、自動的にアップデートされます。初回のみ少し時間がかかります。

アップデート画面

ウィルススキャンをする時は、スキャンしたいファイルなどのアイコンのコンテキストメニューから『BitDefenderでウィルススキャン』を選びます。

スキャン画面

このように結果が表示されます。

さて、ウイルスが見つかった時には赤い文字で表示されます。こうなったら気を引き締めてください。下図のように修復・削除・移動・無視・何もせず終了など、ユーザーの判断を選択するようなメッセージが英語で表示されます。(なお文字化けが激しいのですが気にしなくて結構です。2バイトファイル名でも中身はきっちりチェックします。表示だけの不具合です。)

ウイルス発見画面

これは、Winny無視リストサイトの情報を使って探してきた、ウイルス入りの危険なzipファイルをスキャンしたところです。コミックを炊いたもので、多くの画像ファイルの中に、たった1つだけ悪質な実行ファイルを混ぜてあるものでした。さてこのような場合、一般的な心情としてはDisinfectを選びたいでしょう。そこでdキーを押してみます。

修復失敗画面

結果は上図のとおりです。修復に失敗しました。修復に失敗とか言うと、「あー、やられた」と思うかもしれませんが、この段階ではまだ感染していません。そもそも、ウイルスとして専用に作られた実行ファイルを無害化(disinfect)できるとは考えないことです。

Moveに関しては、上のほうで作った Infected フォルダに感染ファイルを移動させますが、単純な移動に過ぎません。Infected フォルダが特別な防御機構を持ったフォルダというわけではないのです。あとでメーカーに検体を提出しようというような場合には適しています。提出が済んだら決して実行することなく手動で消去しておきましょう。

ちなみにXP Pro において、InfectedフォルダやSuspectedフォルダ内で実行ファイルを実行できないようにするには、「ファイル名を指定して実行…」からsecpol.msc /s と打ち、「ソフトウェア制限のポリシー|追加の規則」項目で右ペインで右クリックし、「新しいパスの規則...」で下図のようにInfectedフォルダなどを指定すれば、実行ファイルを実行できないフォルダになります。

特別な防御機構を持ったフォルダ

たとえばbdc.exeをInfectedフォルダ内にコピーして、ためしに実行してみようとすると、下図のようなアラートが出て実行できなくなります。

ソフトウェアの制限ポリシー

XP Home にはこの機能はありません。正確に言うと、機能はあるのだが、上で紹介したPro版のようなフロントエンドが用意されていないだけで、機能自体は存在するようです。同じことをしたければ、直接レジストリに書き込みます。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{11111111-2222-3333-4444-555555555555}]
"SaferFlags"=dword:00000000
"ItemData"="C:\\Program Files\\Common Files\\Softwin\\Bitdefender Scan Server\\Infected"

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}]
"SaferFlags"=dword:00000000
"ItemData"="C:\\Program Files\\Common Files\\Softwin\\Bitdefender Scan Server\\Suspected"

{*******-****-****-****-************}という部分はGUIDと呼ばれる乱数です。上のように綺麗な数字の羅列ではなく、本来は乱数にすべきです。【GENGUID】などGUID作成ツールを使うと簡単に作れるので、自分で作成したGUIDで上の{}内を置き換えてから結合してください。当然1つめの{}と2つ目の{}のGUIDは異なるものにしてください。また、上の例はシステムがCドライブの例ですから、そうでない人は適宜書き換えてください。なお、レジストリを書き換えた場合は、一度OSを再起動しないと、この機能が有効になりません。

Ignore やQuit は選ぶ必要はないでしょう。

ということで、選択肢はDeleteが望ましいのです。lキー(アルファベットのエル)を押します。

駆除成功画面

今度こそ感染ファイルが削除されました。それ以外の感染していないファイルは残っています。すなわち、zip ファイルを解凍することなく、zip の中から感染ファイルだけを取り除いて、危険性のないzip ファイルとして残ったわけです。この状態は、理想的な修復状態ですね。(ただし感染していないからといって、こういう著作権違反のファイルを、このように入手してはいけません。)

さて次の例は、うじゃうじゃとウイルスが含まれているzip ファイルです。

ウイルス雨あられ

こうなると、lキー連打です。

駆除完了の図

結局、27個感染ファイルが含まれていました。27回キーを押しました。一応残りかすのようなzipファイルが残りますが、これを利用しようという猛者はいないでしょう。残ったものも即、手動で削除しました。

さて、今回お見せしたのは単独ファイルのスキャンでしたが、ドライブアイコンの右クリックでドライブを丸ごとスキャンすることも出来ます。しかし、かなり時間がかかる(数日単位になるかも)と思うので、お勧めしません。bdcscan.batの/list オプションを削除しておくと多少早くなるかもしれませんが、進行状態が把握できなくなってしまいます。

数日単位と書いたので、「ええっ!?ホントかよ」という意味の書き込みを2ちゃんねるで何度も見ました。これはお使いのPCの状態によるもので、PCの処理能力が低い、ドライブの使用容量が大きい、圧縮ファイルを多く保存しているなどの条件が重なるとスキャンに時間が掛かるようになります。特に圧縮ファイルは一々中身までスキャンするので、これが所要時間を決めるかなり大きな要素になります。Daemon のような仮想ドライブソフトで使うためにイメージファイルをたっぷり保存しているような方は、1個のファイルで10分以上ということもありえるので、全体では日にちをまたがってスキャンするようなことにもなりかねません。逆に、圧縮ファイルなどほとんど保存しておらずPCも高性能という場合は、ドライブスキャンでも30分以内で終わるような場合もあるでしょう。

「自分の場合はどうなんだろう?」と疑問を感じたら、実際にやってみて確かめるしかありません。やり始めたけれど、時間が掛かりすぎて途中で止めたくなったならば、
Ctrl+Cキーで止めることができます。

Ctrlキーを使って複数のファイルなどを選択しておいてのスキャンも出来ますが、DOS窓がたくさん開いて、かなりウザイです。このような場合、1階層上のフォルダを選択してスキャンしたほうが良いでしょう。

6.まとめ

コマンドライン版というと、なにかCUIみたいなイメージを持たれるかもしれませんが、実際の使い方は右クリックして実行するだけです。表示画面がコマンドプロンプトというだけなのです。

お勧めの使い方は、上の例のような、アングラなサイトやP2Pで入手したような出自が怪しいソフトをスキャンするようなやり方です。展開前の圧縮ファイルのままでウイルスを見つけ、駆除することができます。ISOファイルやISOをRARで固めたようなファイルにも対応しています。

2ちゃんのダウソ板の住人などには、必携のソフトです。

補足1

BitDefender コマンドライン版を導入すると、関連付けされていない拡張子を持つファイルをダブルクリックするとスキャンが始まってしまうという現象が出ることがあります。関連付けの無いファイルをダブルクリックしたときには、「ファイルを開くプログラムの選択ダイアログ」が出て欲しいという場合は、レジストリエディタで、HKEY_CLASSES_ROOT\*\shellの既定値に「open」を入れて見てください。

open作成

Regファイルの書式ならば以下のようになります。(Win9Xに合わせてREGEDIT4にしていますが、2000/XPでも機能します)

REGEDIT4

[HKEY_CLASSES_ROOT\*\Shell]
@="open"

もしも、上の設定を元に戻したければ

REGEDIT4

[HKEY_CLASSES_ROOT\*\Shell]
@=-

ただしWin9X系では上の @=- というのは機能しないようなので、戻したい場合はレジストリエディタで直接上図の反転している(標準)キーを削除してください。

残念ながら、openという値を書き込む方法ではもダメな場合もあります。この場合のみ、以下のRegファイルを結合してください。

REGEDIT4

[HKEY_CLASSES_ROOT\*\Shell\open\command]
@="RUNDLL32.EXE shell32.dll,OpenAs_RunDLL %1"

これで、関連付けの無いファイルをダブルクリックすると「ファイルを開くプログラムの選択ダイアログ」が出るようになるはずです。もしも上の設定を元に戻したければ、

REGEDIT4

[-HKEY_CLASSES_ROOT\*\Shell\open]

で該当キーが削除できます。

補足2

『Web経由で入手したインストーラー用ファイルをBitdefenderコマンドライン版でスキャンしようとすると、スキャンじゃなくインストールが始まってしまう』という誤解があるようなので、ここで補足説明をしておきます。

例として、ダウンロードしてきたばかりのBitdefender Free V.10 のインストーラをBitdefenderコマンドライン版を使ってスキャンしてみます。すると次のようなダイアログが開きます。。

セキュリティの警告ダイアログ

これをみて、「うわっ、インストールが始まっちゃう」と早とちりしてはいけません。構わずに実行してください。すると何事も無かったように、インストールではなく、下図のように普通にウイルススキャンが始まります。

普通にスキャンされる

これは、上の図にもある、Zone Identifier という仕組みのせいです。Windows XP SP2以降で採用されています。Internet Explorerなどを使ってWebからダウンロードした特定の拡張子を持つファイルを実行しようとすると、ユーザーに対していったん確認を求める仕様になっているのです。このページで解説しているBitdefenderコマンドライン版では、このZone Identifier によるチェックを回避できません。よって上の例のようになってしまうわけです。ただしワンクリック手間が増えるだけで、決してスキャンが行われないとか、インストールされてしまうとか言うわけではないということは理解しておいてください。

もしも事前に警告ダイアログを出ないようにしたい場合には、対象ファイルを右クリックしプロパティを選んでください。全般タブで下図のようにブロックの解除をしてからOKしておけば、そのファイルに関しては、それ以降警告が出なくなります。

ブロックの解除

さらに、このファイルに対してなどという限定的なことではなく、今後一切Zone ID による警告を出さないようにしたいという場合には、レジストリを書き換える必要があります。savezoneinformationでGoogle検索すると、具体的なやり方が見つかると思います。またレジストリを直接いじりたくない方などは、「いじくるつくーる」の「システムの禁止設定(個人用設定)」にこの設定があります。

 わざわざレジストリをいじらなくても、3つ上の図の段階で「この種のファイルであれば常に警告する」のチェックをはずせばよいだろうと考えますよね。ところがやってみるとわかりますが、次に別の拡張子EXEのファイルをダウンロードして保存し、いざ実行すると意に反して同じ警告が出てしまいます。Windows日本語版の訳し方に問題があるとのことらしいのですが、ここのチェックをはずすことは、すぐ上の図で「ブロックの解除」をすることと同義に過ぎないようです。

余談ですが、保存したファイルを実行する段階ではなく、IEでWebからダウンロードしようとしたときに出る「ファイルのダウンロード」ダイアログにも「この種のファイルであれば常に警告する」というチェックボックスがあります。ややこしいことに、ここのチェックは日本語の意味そのままのものです。つまり一度チェックをはずしてしまうと、同種のファイルでは2度とダイアログが出なくなるのでご注意下さい。回復する方法はありますが、レジストリを直接修正する必要があります。このページではこれ以上詳しく書くことは本論から大きく脱線してしまうので、ここまでにしておきます。興味のある方は"この種のファイルであれば常に警告する"でGoogle検索してください。

<ホームへ>