簡體   English   中英

如何從linux內核中提取功能?

[英]How to extract features from linux kernel?

我正在開發一個基於機器學習技術檢測惡意軟件的項目。 我的主要目標是linux設備。 我的第一個問題是;

  1. 如何使用內核驅動程序從Linux內核中提取有關進程的數據? 我想首次提取有關運行進程的數據,這只是為了概念驗證。 后來我想編寫一個內核驅動程序來自動實時地執行此操作。
  2. 有沒有其他方法可以為ProcessName,PID,UID,IS_ROOT等運行進程提取數據?

要從用戶空間執行此操作:

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 ("sundeep471@gmail.com");
MODULE_DESCRIPTION ("Print process Info");
MODULE_LICENSE("GPL");

我沒有檢查UID,但您可以將其作為模塊參數或運行時傳遞程序傳遞以觸發kthread

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM