Windows黑客程式設計基礎 一 系統服務

2021-04-16 05:10:53 字數 2536 閱讀 1251

windows黑客程式設計基礎()

系統服務

[email protected]

部落格:blog.csdn.net/shangguanwaner

前兩天和乙個同學聊天,他念的是xx大學計算機專業,他向我抱怨說天天在學校學的東西好象都沒什麼用,對hacker程式設計倒頗有興趣,就是不知到從何學起。於是本人不才,萌生了寫乙個關於黑客程式設計的系列教程。

這一系列教程全部基於windows作業系統,讀者需要具有一定的c語言和win32 sdk的基礎。每一講,我都會對涉及到的原理做較為具體的介紹,並給出相應的例項**。你可以跟我聯絡,大家共同**。

好,開始教程的第一篇,windows服務程式設計。

許多的病毒和木馬都將自己註冊為系統服務,來實現自啟動。有的註冊新的服務,有的替換現有服務實現隱藏。新增系統服務是windows木馬乙個普遍使用的技術,還是比較實用的。就讓我們來看看它是如何實現的。

先給出一段程式,說明如何新增乙個新的系統服務。

#include

#include

#include

#define srv_name    「srvsample」                        //服務名稱

#define srv_info              「乙個系統服務程式例項」

//服務說明

#define srv_path       「c:/srvsample.exe」               //系統服務程式的路徑

int main(int argc,char** argv)

service=createservice(scmgr,srv_name,srv_info,service_all_access,

service_win32_own_process,

service_auto_start,service_error_normal,

srv_path,0,0,0,0,0);

if(service)

printf(「create a new service successful!/n」);

else

printf(「failed to create a new service!/n」);

closeservicehandle(scmgr);

closeservicehandle(service);

return 0;

}**很簡單,先開啟服務管理器的控制代碼,然後呼叫api新增服務。幾個api的用法你可以查閱msdn。

下面給出**演示如何刪除乙個服務。標頭檔案包含和上面相同。為了簡潔起見,沒有進行錯誤處理。

int main(int argc,char** argv)

bool bsuccess=deleteservice(service);

if(bsuccess)

printf(「delete service successful!/n」);

else

printf(「failed to delete service!/n」);

return 0;

}下面給出乙個服務程式的模板。乙個服務程式必須有兩個函式,乙個是服務程式的主函式servicemain(),另乙個是服務程式的派遣函式servicehandler(),它負責處理外部控制訊息。

#include

service_status      servicestatus;

service_status_handle     hstatus;

void winapi      servicemain( dword dwargc, lptstr *lpszargv );

void winapi      servicehandler( dword fdwcontrol );

int main(int argc,char** argv)

//服務控制處理函式

void winapi servicehandler(dword fdwcontrol)

setservicestatus(hstatus,&servicestatus);

return ;

}//服務主函式

void winapi servicemain( dword dwargc, lptstr *lpszargv )

// 初始化結束,報告執行狀態

servicestatus.dwcurrentstate       = service_running;

servicestatus.dwcheckpoint         = 0;

servicestatus.dwwaithint           = 0; 

setservicestatus(hstatus, &servicestatus);

//在這裡做其他的工作

dowork();

}這是乙個模板,要實現你自己的服務,在dowork()中新增功能**即可。能做什麼只取決於的想象,呵呵。

Windows黑客程式設計基礎 一 系統服務

windows黑客程式設計基礎 一 系統服務 songnianhu 163.com 部落格 blog.csdn.net shangguanwaner 前兩天和乙個同學聊天,他念的是xx大學計算機專業,他向我抱怨說天天在學校學的東西好象都沒什麼用,對hacker程式設計倒頗有興趣,就是不知到從何學起。...

windows 黑客程式設計基礎技術

基礎技術 monday,february 3,2020 3 27 pm 1.介紹 研發時通常會使用第三方庫,但並非所有的第三方庫都會提供靜態庫,大多數會提供動態鏈結庫 dll。dll延遲載入優點是將必須的 dll檔案以資源檔案的形式插入到程式中。在正式呼叫到必須的dll之前,程式都可以正常執行。程式...

一 系統基礎 12 域

domain 內網環境 工作組 workgroup 預設模式,人人平等,不方便管理 域 不平等,集中管理,統一管理 特點集中 統一管理 組成a.域控制器 dc,domain controller b.成員機 域的部署 a.安裝域控制器 dc,domain controller 生成域環境 b.安裝活...