2016-11-13 9 views
0

私はMachine Learning技術に基づいてマルウェアを検出するプロジェクトに取り組んでいます。私の主なターゲットはLinuxのデバイスです。私の最初の質問は、Linuxカーネルから機能を抽出するには?

  1. カーネルドライバを使用してLinuxカーネルからプロセスに関するデータを抽出するにはどうすればよいですか? 概念証明のためだけに、自分でプロセスを実行することに関するデータを初めて抽出したいと思います。後で私はそれを自動的かつリアルタイムで行うためのカーネルドライバを書くつもりです。
  2. ProcessName、PID、UID、IS_ROOTなどの実行中のプロセスのデータを抽出する他の方法はありますか?ユーザー空間からこれを行うには
+2

あなたの質問はあまりにも広く不明です。 "データを抽出する"?どのようなデータですか?誰(人、Cプログラム、ウェブページ...)によって抽出? 2番目のポイントについては、[/ proc filesystem](http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html)を介してユーザーレベルでさえもその情報を得ることができます – kaylum

+0

ありがとうございました。私はその記事を編集した。 procファイルシステムでは、結果をcsvまたは任意のタイプのファイルにエクスポートできますか?私はそれを行うためにPythonスクリプトを書くことができると思うが、私はそこにbashのショートカットがあるのだろうかと思っている。 @kaylum – mburakergenc

+0

申し訳ありませんが、stackOverflowは、研究、スペック(k)、開発、テストではなく、既存のコードを修正する手助けをしています。あなたのQを考えると、あなたの最終目標を定義するために多くの時間を費やし、それを達成しようとするいくつかのコードを書く必要があります。それが後につづれば、[MCVE](http://stackoverflow.com/help/mcve)のガイドラインに従ってQを投稿してください。がんばろう。 – shellter

答えて

3

ps -U <username/UID> | tr -s ' '| tr ' ' ','| cut -d ',' -f2,5 > out.csv 

カーネル空間から、モジュールとして:

#include <linux/init.h> 
#include <linux/kernel.h> 
#include <linux/module.h> 
#include <linux/sched.h> 

static int uid=0; 

static int procx_init(void){ 
    struct task_struct *task; 
    for_each_process(task) 
      printk ("uid=%d, pid=%d, command=%s\n", task->cred->uid, task->pid, task->comm); 
    return 0; 
} 
static void procx_exit(void) 
{ 
    printk("procx destructor\n"); 
} 
module_init(procx_init); 
module_exit(procx_exit); 
module_param(uid, int, 0); 

MODULE_AUTHOR ("[email protected]"); 
MODULE_DESCRIPTION ("Print process Info"); 
MODULE_LICENSE("GPL"); 

私はUIDをチェックしませんでしたが、あなたのようにそれを渡すことができますモジュールのパラメータまたはランタイムの通行人がkthreadを誘発する

+0

これは私が探している答えだと思います。私は、ユーザー空間からlstart、cmd、pid、ppid、uid、pgrp、pcpu、%mem、vsize、共有、cmin_flt、時間、サイズ、ruserを取得しようとしています。しかし、私はこれを初めて知ったので、あなたが言及した最初の方法を説明してください。たとえば、PIDとcmdをどのように印刷していますか?それは-sと-dですか? – mburakergenc

+0

私はそれを作ったと思う。 ps -eoコマンド、pid、ppid、uid、pgrp、pcpu、%mem、vsize、共有、cmin_flt、サイズ、ruser | tr -s '' | tr '' '、'> cleandata.csv – mburakergenc

+0

これは 'procfs'で利用できませんか? – 0andriy

関連する問題