windows linux劫持技術

2021-09-07 11:33:45 字數 2996 閱讀 4136

realse  模式劫持,除錯的程式不能夠

函式劫持能夠實現的效果。

函式的劫持原理

我們怎樣實現-detours

detours是微軟亞洲研究院出品的資訊保安產品。主要用於劫持。

detours依據函式指標改變函式的行為,

攔截不論什麼函式,即使作業系統函式。

1.安裝detours

2.構建庫檔案-nmake編譯

3.包括標頭檔案還有庫檔案

#include

#pragma comment(lib, "detours.lib")

4.定義舊函式指標指向原來的函式

static int (winapi *old_messageboxw)(hwnd hwnd, lpcstr lptext, lpcstr lpaptioin, uint utype) = messageboxw;

定義新的函式

int winapi  new_messgebox(hwnd hwnd, lpcstr lptext, lpcstr lpcaptioin, uint utype)

5.開始攔截

void hook()

取消攔截

void unhook()

6.改動自己,直接掛接函式就可以

改動外部程式

須要作為模組注射,須要匯出宣告

__declspec(dllexport)

劫持system函式

#include#include#include#include#include"detours.h"

#pragma comment(lib, "detours.lib")

//劫持自己

static int (*poldsystem)( const char * _command)=system;//儲存函式指標位址

int newsystem(const char * _command)

int newsystema(const char * _command)

else

return 0;

}//開始攔截

void hook()

void main()

編寫成dll檔案,注入到其它的程式中,從而可以實現劫持其它應用程式,達到過濾的效果。假設交了保護費,就行不去劫持你的程式。實現猥瑣的技術。

#include#include#include#include#include"detours.h"

#pragma comment(lib, "detours.lib")

static int(*poldsystem)(const char * _command) = system;//儲存函式指標位址

int newsystem(const char * _command)

//開始攔截

void hook()

//匯出函式,能夠載入的時候呼叫

_declspec(dllexport) void go()

createprocessw函式是用來建立程序的。

#include#include#includevoid main1()

; //啟動資訊

process_information pi;//儲存了程序的資訊

si.dwflags = startf_useshowwindow; //表示顯示窗體

si.wshowwindow = 1; //1表示顯示建立的程序的窗體

wchar_t cmdline = l"c://program files//internet explorer";

createprocessw(null, cmdline, null, null, 0, create_new_console, null, null, &si, &pi);//建立程序

}

在windows平台下能夠使用掛鉤(hook)技術,將系統中的滑鼠、鍵盤等事件攔截下來。以加入實現自己的功能。相同的。在linux系統中也有類似的技術。都能夠起到掛鉤(hook)攔截的作用。能夠實現攔截的功能。攔截技術的實現是通過環境變數ld_preload設定優先被載入器載入的動態庫(下面簡稱攔截動態庫)。這裡應該設定ld_preload=「***.so」

樣例:

/* 檔名稱:verifypasswd.c */

/* 這是一段推斷使用者口令的程式。當中使用到了標準c函式strcmp*/

#include #include int main(int argc, char **ar**)

if (!strcmp(passwd, ar**[1]))

printf("invalid password!\n");

}

編譯程式:

$ gcc -o verifypasswd verifypasswd.c

測試一下程式:(得到正確結果)

$ ./verifypasswd asdf

invalid password!

在上面這段程式中。我們使用了strcmp函式來推斷兩個字串是否相等。以下。我們使用乙個動態函式庫來過載strcmp函式:

#include int strcmp(const char *s1, const char *s2)

編譯程式:

$ gcc -shared -o hack.so hack.c

設定ld_preload變數:(使我們重寫過的strcmp函式的hack.so成為優先載入鏈結庫)

$ export ld_preload="./hack.so"

再次執行程式:

$ ./verifypasswd  asdf

hack function invoked. s1=s2=

correct password!

DNS劫持 流量劫持,HTTP HTTPS劫持

dns劫持 dns劫持就是通過劫持了dns伺服器,通過某些手段取得某網域名稱的解析記錄控制權,進而修改此網域名稱的解析結果,導致對該網域名稱的訪問由原ip位址轉入到修改後的指定ip,其結果就是對特定的 不能訪問或訪問的是假 從而實現竊取資料或者破壞原有正常服務的目的。dns劫持通過篡改dns伺服器上...

windows linux 檔案互傳

putty實現檔案互傳的命令詳解 利用putty互傳檔案例項 putty的各種設定 scp god 192.168.1.105 home god licence c 在putty安裝目錄下,存在可執行檔案pscp.exe,用法跟scp命令相似,win r 輸入 cmd進入命令列,比如要將本地的lic...

windows linux檔案轉換

一 windows的檔案到linux下的轉換方法 1.用sed命令替換 sed e s m g original.txt target.txt 注意 m 在linux unix下是這樣輸入的 先按ctrl v,接著按ctrl shift m,呵呵 其實俺主要就是為了記錄一下這個輸入方法 2.在vi中...