linux核心有沒有hook機制

時間 2021-06-25 14:47:02

1樓:匿名使用者

有啊,一切順序邏輯,都有被hook的可能。 下面是一個linux上的hook的例項

截獲write系統呼叫:

#ifndef module

#define module

#endif

#ifndef __kernel__

#define __kernel__

#endif

#include

#include

#include

#include

#include

#include

/*#include

#include

#include

#include

#include

#include

#include

#include

*/ module_license("gpl");

struct descriptor_idt

;static struct __attribute__ ((packed)) idt48;

static unsigned int sys_call_table_addr;

void **sys_call_table;

int base_system_call;

int (*orig_write)(unsigned int fd,char *buf,unsigned int count);

unsigned char opcode_call[3]=;

int match(unsigned char *source)

return 1;

}int get_sys_call_table(void)}}

printk(kern_alert "can't find the address of sys_call_table\n");

return -1;

}int hacked_write(unsigned int fd,char *buf,unsigned int count)

else

}int init_module(void)

void cleanup_module()

2樓:萊龍

有的呀,strace的作用不就是監控syscall麼?linux為了除錯等目的,設計了ptrace,你可以瞭解一下,現在安卓手機上的外掛, 很大一部分就是利用這個來實現的

什麼是hook技術

3樓:ooo藉口

hook技術是windows訊息

處理機制的一個平臺,應用程式可以在上面設定子程式以監視指定視窗的某種訊息,而且所監視的視窗可以是其他程序所建立的。當訊息到達後,在目標視窗處理函式之前處理它。鉤子機制允許應用程式截獲處理window訊息或特定事件。

鉤子實際上是一個處理訊息的程式段,通過系統呼叫,把它掛入系統。每當特定的訊息發出,在沒有到達目的視窗前,鉤子程式就先捕獲該訊息,亦即鉤子函式先得到控制權。這時鉤子函式即可以加工處理(改變)該訊息,也可以不作處理而繼續傳遞該訊息,還可以強制結束訊息的傳遞。

4樓:懂梗菌

hook原本指鐵鉤、圈套,在說唱圈指一首歌中能勾住別人的注意力、令人印象很深的點,一般是副歌部分最關鍵的詞或一句話。也有一些歌曲的hook是在舞蹈或旋律上,如《we will rock you》裡,hook就是開頭那段很有節奏感的打擊節拍。

5樓:清茶半盞

hook技術:在windows系統下程式設計,應該會接觸到api函式的使用,常用的api函式大概有2000個左右。今天隨著控制元件,stl等高效程式設計技術的出現,api的使用概率在普通的使用者程式上就變得越來越小了。

當諸如控制元件這些現成的手段不能實現的功能時,我們還需要藉助api。最初有些人對某些api函式的功能不太滿意,就產生了如何修改這些api,使之更好的服務於程式的想法,這樣api hook就自然而然的出現了。我們可以通過api hook,改變一個系統api的原有功能。

基本的方法就是通過hook“接觸”到需要修改的api函式入口點,改變它的地址指向新的自定義的函式。api hook並不屬於msdn上介紹的13類hook中的任何一種。所以說,api hook並不是什麼特別不同的hook,它也需要通過基本的hook提高自己的許可權,跨越不同程序間訪問的限制,達到修改api函式地址的目的。

對於自身程序空間下使用到的api函式地址的修改,是不需要用到api hook技術就可以實現的。

api hook技術是一種用於改變api執行結果的技術,microsoft 自身也在windows作業系統裡面使用了這個技術,如windows相容模式等。 api hook 技術並不是計算機病毒專有技術,但是計算機病毒經常使用這個技術來達到隱藏自己的目的。

如何 原始檔 檢視 linux 核心 版本

根目錄下的makefile裡頭內容如下 do not edit this file include build core do not edit this file 貌似沒有!如何檢視linux核心版本?如何檢視linux核心版本及發行版本 如何檢視linux使用的核心版本 一種檢視核心版本的方法是...

在linux核心檔案中arch檔案作用

笨自己 arch 這個子目錄包含了此核心源 所支援的硬體體系結構相關的核心 如對於x86平臺就是i386。include 這個目錄包括了核心的大多數include檔案。另外對於每種支援的體系結構分別有一個子目錄。init 此目錄包含核心啟動 mm 此目錄包含了所有的記憶體管理 與具體硬體體系結構相關...

linux的核心版本表示是怎樣的

1 什麼是linux核心 linux是一個一體化核心 monolithic kernel 系統。核心 指的是一個提供硬體抽象層 磁碟及檔案系統控制 多工等功能的系統軟體。一個核心不是一套完整的作業系統。一套基於linux核心的完整作業系統叫作linux作業系統,或是gnu linux。裝置驅動程式可...