提公升程序令牌 Delphi原始碼

2021-04-02 00:14:11 字數 1340 閱讀 7124

眾所周知,當我們要結束乙個程序時,可以呼叫windows api函式terminateprocess函式。但是,有很多程序依然還是無法結束的,這是因為程序許可權不夠,這時我們可以給程序提公升許可權再k掉k不掉的程序。一般程序獲取了sedebugprivilege許可權後都可以殺掉大部分程序了。

//提公升程序令牌函式

function adjustprocessprivilege(processhandle:thandle;token_name:pchar):boolean;

vartoken:cardinal;   

tokenpri:_token_privileges;

processdest:int64; 

l:dword;

begin

result:=false;

if openprocesstoken(processhandle,token_adjust_privileges,token) then

begin

if lookupprivilegevalue(nil,token_name,processdest) then

begin

tokenpri.privilegecount:=1;

tokenpri.privileges[0].attributes:=se_privilege_enabled;

tokenpri.privileges[0].luid:=processdest;

l:=0;

//更新程序令牌,成功返回true

if adjusttokenprivileges(token,false,tokenpri,sizeof(tokenpri),nil,l) then

result:=true;

end;

end;

end;

然後我們就可以呼叫該函式了:

if adjustprocessprivilege(getcurrentprocess,'sedebugprivilege') then  //提公升許可權

memo1.lines.add('提公升許可權成功')

else

memo1.lines.add('提公升許可權失敗');

processhandle:=openprocess(process_all_access ,false,processid); //殺程序

if terminateprocess(processhandle,1) then

begin

memo1.lines.add('殺程序成功');

timer1.enabled:=false;

endelse

memo1.lines.add('殺程序失敗');

end;

DELPHI 中如何提公升程序令牌

delphi 中如何提公升程序令牌 近一段時間在用delphi寫個程式,當我寫到乙個結束其他程序的模組的時候有時不成功,那是因為其他程序,如病毒程序的許可權高,通過常規的結束程序的函式行不通,要首先提高自身程式的許可權,再結束其他程序 在網上也看到了一些提公升程序令牌的函式但都不怎麼好用,最後我還是...

怎麼除錯Delphi原始碼

delphi除錯概述2007 06 13 16 15delphi除錯入門級的經典文章,如果是新手的話此文值得好好的讀一讀 delphi除錯概述 除非你的程式只有幾行,否則幾乎不可能一次寫成,因此除錯就非常必要。然而許多初學者不知道如何進行除錯,寫完程式就執行,發現結果不對再看 這樣覺得非常吃力。這裡...

kernel原始碼學習 程序

linux使用上百個雙向鍊錶來儲存核心的各種資料結構,其中包括程序描述符的task struct結構.cpp struct list head 在list.h中,形如 的函式用來操作整個鍊錶,而不是單個鍊錶元素.程序從pid得到程序描述符pd要一種高效的方法,提到高效方法,那就用雜湊表啦.核心在這兒...