sysinternals Autoruns のようなツールがスタートアップの場所を認識しないのはなぜでしょうか?

sysinternals Autoruns のようなツールがスタートアップの場所を認識しないのはなぜでしょうか?

自動実行のヘルプ ファイルから:

注意: Autoruns によって見落とされていると思われる自動起動場所を報告する電子メールを送信する前に、Autoruns がその場所をカバーしていないことを確認し、その場所が実際に機能することを確認してください。

Autorunsは基本的に既知のスタートアップ場所のリストであり、これによってスタートアッププログラムを見つけることができると理解しています。私が理解できないのは、プログラムがスタートアップ時に起動する場合、Windowsはわかっているファイルは起動時に実行される必要があり、またどこスタートアップファイルの場所がわからないと、スタートアップ時に実行できません。では、なぜこのようなツールで「既知の可能性のある」場所に頼らずにWindowsのスタートアップファイルの場所を知ることができないのでしょうか。なぜすべての場所が知られている特定のデバイス上で?

私の質問は、「なぜこれがこのように動作するのか」であり、「どうすればこれを回避できるか」という質問ではありません。私は、前者ではなく後者の種類をたくさん見つけました。

答え1

Autorunsが存在する理由は、複数の場所で実行できる単一の「起動時に実行」機能があるわけではないからです。むしろ、起動プロセスには複数の段階1があり、様々なものそれぞれ異なる理由で、それぞれの環境で起こります。

たとえば、ドライバーは OS カーネルにロードされる .sys ファイルであり、サービスは特別な方法で起動される .exe ファイルです。これらのリストは、「スタートアップ」フォルダーに配置するアプリのショートカットとはまったく異なる方法で管理する必要があります。(言うまでもなく、各ユーザーには独自のスタートアップ フォルダーがありますが、サービスには単一のグローバル リストがあります。)

さらに、オートランで見られる場所の多くは、意味起動時に何かを実行するのではなく、起動時にも呼び出される、一見無関係な Windows コンポーネントによって使用されるモジュールのリストです。

  • たとえば、オーディオ コーデックの .dll ファイルは、Windows が起動時にサウンドを再生するように指示され、そのコーデックを呼び出す必要がある場合を除き、「起動時に実行」する場所とは見なされません。
  • MSIE Web ブラウザのツールバー アドオンは「起動時に実行」される場所ではありませんが、以前は Windows エクスプローラーが文字通り MSIE であったため、ローカル フォルダを開くたびにアドオンも読み込まれていました。

その結果、Windowsのさまざまな部分を実行する方法は数多くあります。何か起動プロセス中のさまざまな時点で実行され、Windows にそれらすべてのリストを一度に生成するように要求する方法は 1 つもありません。Autoruns は、互いに何の共通点もない (何らかの形で何らかのファイルを指しているが、必ずしも .exe ファイルである必要はない) 多数のリストを集めようとするだけです。

基本的に、Autorunsはマルウェアファインダースタートアップのマネージャー以上のものです。

残念ながら、Autoruns は現在 Microsoft の Web サイトで見つかりますが、Windows とは独立して開発されています。起動時に何かを起動するために使用できる (または悪用される) 新しい場所または機能が Windows 内にある場合、Autoruns はこれを自動的に認識しません。


1「いくつかの段階」についての補足として、最も一般的に使用される「shell:startup」の場所は、Windowsの起動時にも使用されず、ユーザーログインこれは、OS の起動が完了してから数時間または数日後に発生する場合もあります。

答え2

プログラムは別のプログラムによって実行された可能性があります。または、スケジュールされたタスクから起動された可能性があります。別のスタートアップ プログラムによって読み込まれた dll によって実行された可能性があります。

Autoruns は、プログラムを実行するための「標準」の場所のみをカタログ化できます。その後、プログラムがプロキシ プログラムまたは他のツールやシステム アクションによって起動された場合、Autoruns はそれを認識できません。

基本的にAutorunsは、ウィンドウズプログラムの起動に使用します。これらのプログラムの 1 つが別の方法でプログラムを起動するものをインストールした場合、Autoruns はそれを認識できません。

関連情報