デモ中に「カーネルメモリパッチ」という用語が見つかりました。 Googleを試しましたが、どこかで正しい答えが見つかりませんでした。私が理解しているように、カーネルメモリパッチは、カーネルのメモリサイズまたはカーネルがアクセスするアドレス空間を何とか追加または増やすのでしょうか?誰かが私を修正できますか?または、このプロセスに関する追加情報を提供してください。
また、次の違いは何ですか?
- カーネルメモリパッチ
- カーネルパッチ
- ロード可能なカーネルモジュール
ベストアンサー1
説明しやすいので逆順で説明します。
ロード可能なカーネルモジュール:実行時にカーネルによってロードされる可能性があるコードの断片を表します。通常、これはドライバですが、場合によってはハードウェアやプロトコルに依存しない追加機能(追加のアカウントやデバッグ情報の追加など)を提供することもできます。デフォルトでは、カーネルモジュールはユーザー空間プログラム用の動的ライブラリと同じ機能を持っています(低レベルリンクははるかに複雑ですが)。 Linuxシステムでは、カーネルモジュールはに保存され
/lib/modules
、NetBSD(およびOS Xを除く他のほとんどのBSDシステム)ではに保存され、/stand
Windowsではさまざまな場所にありますC:\Windows
。カーネルパッチ:ライブパッチとオフラインパッチの2種類があります。オフラインカーネルパッチは本質的にカーネルアップグレードです(カーネルバイナリにパッチを適用する代わりに実行する必要があります)。ライブカーネルパッチを使用すると、ダウンタイムなしで実行中のオペレーティングシステムカーネルにアップデートを適用できます。少なくともLinuxでは、ライブカーネルパッチは特別なカーネルモジュールに含まれています。ライブカーネルパッチは次のとおりです。いいえ以前のバージョンをアンインストールした後、新しいバージョンのドライバをロードするのと同じです(Windowsが特定の種類のドライバを更新したときに実行するのと同じ)。
カーネルメモリパッチ:これは文脈的にあいまいな用語ですが、私が見たすべての文脈では、これはライブカーネルパッチの一部として実行されているカーネルのメモリ内のデータ構造を更新することを意味します。また、エクスプロイトをトリガーするためにカーネルメモリを修正するためにいくつかのマルウェアによって使用される技術を意味することもあります。システムのメモリ量に関連することはほとんどなく、メモリの追加と削除はしばしば「ホットスワッピング」と呼ばれます。