Lessons IV : Kill Protected Processes

Kill Protected Processes

 

Trong Task Manager nếu bạn dùng chức năng End Process thì bạn chỉ kết thúc được một số Process của các chương trình bình thường. Đối với các Process được bảo vệ như tiến trình của OS hay các trình diệt virus thì bạn không thể kết thúc dễ dàng như thế. Điều này cũng tương tự khi ta dùng hàm API TerminateProcess().

Nguyên lý: Một process có thể Kill một Process khác được bảo vệ nếu như process này có đặc quyền DEBUG các process khác, sau đó process này có thể dùng hàm API TerminateProcess(hProcess,0)!
Đoạn mã sau dùng để gán quyền DEBUG cho một process:

Code:

void GetDebugPriv( void )

{

HANDLE hToken;

LUID sedebugnameValue;

TOKEN_PRIVILEGES tkp;

 

if ( ! OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) )

return;

 

if ( !LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) )

{

CloseHandle( hToken );

return;

}

 

tkp.PrivilegeCount = 1;

tkp.Privileges[0].Luid = sedebugnameValue;

tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

 

AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL );

 

CloseHandle( hToken );

}

 

ngoalong(HVA)

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: