11

ユーザーからプロセスを隠す一般的な方法は、/proc ディレクトリの iterate 関数をハイジャックすることです。これは次のように行うことができます。

struct file *filep = filp_open("/proc", O_RDONLY, 0));
filep->f_op->iterate = p // We swap the pointer with our hacked iterate

元の繰り返し機能を復元したい検出方法に取り組んでいます(すでにハイジャックされていると仮定します)。/proc ディレクトリに使用される元の反復関数を見つける方法はありますか?

4

2 に答える 2

1

ヒューリスティックなアプローチを試すことができます。元の関数のアドレスは、他の proc 関数と同じ一般的な領域にありますが、ハイジャッカー関数のアドレスは著しく異なります。次に、ハイジャッカー関数のマシン コードを解析します。ハイジャッカー関数は、戻る前に元の関数に分岐する必要があるため、すべての分岐命令を調べて、どれが他の元のアドレスに適合するかを確認します。

于 2015-09-15T07:17:37.447 に答える
0

使用しているカーネルのバージョンを知っていると思いますか?

そのバージョンの関数をモジュールにコピーし、反復ポインターをコピーのアドレスでオーバーライドするだけです。

これは機能的に同等であるはずですが、rouge モジュールが他にどのような悪を解き放ったかはわかりません。

于 2015-10-29T21:08:15.643 に答える