青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Dragon  
Dragon
日歷
<2010年4月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
統(tǒng)計(jì)
  • 隨筆 - 58
  • 文章 - 0
  • 評(píng)論 - 55
  • 引用 - 0

導(dǎo)航

常用鏈接

留言簿(3)

隨筆分類(58)

隨筆檔案(58)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

 
GetCurrentProcessID 得到當(dāng)前進(jìn)程的ID OpenProcessToken 得到進(jìn)程的令牌句柄LookupPrivilegeValue 查詢進(jìn)程的權(quán)限 AdjustTokenPrivileges 判斷令牌權(quán)限

要對(duì)一個(gè)任意進(jìn)程(包括系統(tǒng)安全進(jìn)程和服務(wù)進(jìn)程)進(jìn)行指定了寫相關(guān)的訪問權(quán)的OpenProcess操作,只要當(dāng)前進(jìn)程具有SeDeDebug權(quán)限就可以了。要是一個(gè)用戶是Administrator或是被給予了相應(yīng)的權(quán)限,就可以具有該權(quán)限。可是,就算我們用Administrator帳號(hào)對(duì)一個(gè)系統(tǒng)安全進(jìn)程執(zhí)行OpenProcess(PROCESS_ALL_ACCESS,FALSE, dwProcessID)還是會(huì)遇到“訪問拒絕”的錯(cuò)誤。什么原因呢?原來在默認(rèn)的情況下進(jìn)程的一些訪問權(quán)限是沒有被使能(Enabled)的,所以我們要做的首先是使能這些權(quán)限。與此相關(guān)的一些API函數(shù)有OpenProcessToken、LookupPrivilegevalue、AdjustTokenPrivileges。我們要修改一個(gè)進(jìn)程的訪問令牌,首先要獲得進(jìn)程訪問令牌的句柄,這可以通過OpenProcessToken得到,函數(shù)的原型如下:

BOOL OpenProcessToken(
HANDLE ProcessHandle,
DWORD DesiredAccess,
PHANDLE TokenHandle
);
第一參數(shù)是要修改訪問權(quán)限的進(jìn)程句柄;第三個(gè)參數(shù)就是返回的訪問令牌指針;第二個(gè)參數(shù)指定你要進(jìn)行的操作類型,如要修改令牌我們要指定第二個(gè)參數(shù)為TOKEN_ADJUST_PRIVILEGES(其它一些參數(shù)可參考Platform SDK)。通過這個(gè)函數(shù)我們就可以得到當(dāng)前進(jìn)程的訪問令牌的句柄(指定函數(shù)的第一個(gè)參數(shù)為GetCurrentProcess()就可以了)。接著我們可以調(diào)用AdjustTokenPrivileges對(duì)這個(gè)訪問令牌進(jìn)行修改。AdjustTokenPrivileges的原型如下:
BOOL AdjustTokenPrivileges(
HANDLE TokenHandle, // handle to token
BOOL DisableAllPrivileges, // disabling option
PTOKEN_PRIVILEGES NewState, // privilege information
DWORD BufferLength, // size of buffer
PTOKEN_PRIVILEGES PreviousState, // original state buffer
PDWORD ReturnLength // required buffer size
);
第一個(gè)參數(shù)是訪問令牌的句柄;第二個(gè)參數(shù)決定是進(jìn)行權(quán)限修改還是除能(Disable)所有權(quán)限;第三個(gè)參數(shù)指明要修改的權(quán)限,是一個(gè)指向TOKEN_PRIVILEGES結(jié)構(gòu)的指針,該結(jié)構(gòu)包含一個(gè)數(shù)組,數(shù)據(jù)組的每個(gè)項(xiàng)指明了權(quán)限的類型和要進(jìn)行的操作; 第四個(gè)參數(shù)是結(jié)構(gòu)PreviousState的長(zhǎng)度,如果PreviousState為空,該參數(shù)應(yīng)為NULL;第五個(gè)參數(shù)也是一個(gè)指向TOKEN_PRIVILEGES結(jié)構(gòu)的指針,存放修改前的訪問權(quán)限的信息,可空;最后一個(gè)參數(shù)為實(shí)際PreviousState結(jié)構(gòu)返回的大小。在使用這個(gè)函數(shù)前再看一下TOKEN_PRIVILEGES這個(gè)結(jié)構(gòu),其聲明如下:

typedef struct _TOKEN_PRIVILEGES {
DWORD PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[];
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
PrivilegeCount指的數(shù)組原素的個(gè)數(shù),接著是一個(gè)LUID_AND_ATTRIBUTES類型的數(shù)組,再來看一下LUID_AND_ATTRIBUTES這個(gè)結(jié)構(gòu)的內(nèi)容,聲明如下:

typedef struct _LUID_AND_ATTRIBUTES {
LUID Luid;
DWORD Attributes;
} LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES

第二個(gè)參數(shù)就指明了我們要進(jìn)行的操作類型,有三個(gè)可選項(xiàng): SE_PRIVILEGE_ENABLED、SE_PRIVILEGE_ENABLED_BY_DEFAULT、SE_PRIVILEGE_USED_FOR_ACCESS。要使能一個(gè)權(quán)限就指定Attributes為SE_PRIVILEGE_ENABLED。第一個(gè)參數(shù)就是指權(quán)限的類型,是一個(gè)LUID的值,LUID就是指locally unique identifier,我想GUID大家是比較熟悉的,和GUID的要求保證全局唯一不同,LUID只要保證局部唯一,就是指在系統(tǒng)的每一次運(yùn)行期間保證是唯一的就可以了。另外和GUID相同的一點(diǎn),LUID也是一個(gè)64位的值,相信大家都看過GUID那一大串的值,我們要怎么樣才能知道一個(gè)權(quán)限對(duì)應(yīng)的LUID值是多少呢?這就要用到另外一個(gè)API函數(shù)LookupPrivilegevalue,其原形如下:

BOOL LookupPrivilegevalue(
LPCTSTR lpSystemName, // system name
LPCTSTR lpName, // privilege name
PLUID lpLuid // locally unique identifier
);
第一個(gè)參數(shù)是系統(tǒng)的名稱,如果是本地系統(tǒng)只要指明為NULL就可以了,第三個(gè)參數(shù)就是返回LUID的指針,第二個(gè)參數(shù)就是指明了權(quán)限的名稱,如“SeDebugPrivilege”。在Winnt.h中還定義了一些權(quán)限名稱的宏,如:

#define SE_BACKUP_NAME TEXT("SeBackupPrivilege")

#define SE_RESTORE_NAME TEXT("SeRestorePrivilege")

#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")

#define SE_DEBUG_NAME TEXT("SeDebugPrivilege")

這樣通過這三個(gè)函數(shù)的調(diào)用,我們就可以用OpenProcess(PROCESS_ALL_ACCESS,FALSE, dwProcessID)來打獲得任意進(jìn)程的句柄,并且指定了所有的訪問權(quán)。

==微塵附加:完整源代碼, 出自Windows核心編程
BOOL EnableDebugPrivilege(BOOL bEnable)
{
      //Enabling the debug privilege allows the application to see
      //information about service application
     BOOL fOK = FALSE;     //Assume function fails
     HANDLE hToken;
     //Try to open this process's acess token
     if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
    {
         //Attempt to modify the "Debug" privilege
         TOKEN_PRIVILEGES tp;
         tp.PrivilegeCount = 1;
         LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
         tp.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;
        AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL);
        fOK  = (GetLastError() ==  ERROR_SUCCESS);
        CloseHandle(hToken);
   }
   return fOK;
}
      在我寫的程序中,用VS編譯平臺(tái)運(yùn)行可以殺進(jìn)程,但Release后殺不了進(jìn)程,后來加了這代碼就可以對(duì)指定進(jìn)程進(jìn)行寫操作。
轉(zhuǎn)自:http://m.shnenglu.com/tyt2008cn/archive/2008/02/17/42849.html
posted on 2010-04-20 13:03 Dragon 閱讀(1781) 評(píng)論(0)  編輯 收藏 引用 所屬分類: VC
 
Copyright © Dragon Powered by: 博客園 模板提供:滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜欧美精品久久久久久久| 中文av一区特黄| 亚洲一区尤物| 日韩一区二区福利| 亚洲精品一区二区三区99| 亚洲精品你懂的| 欧美国产日韩精品| 久久女同互慰一区二区三区| 久久国产视频网站| 噜噜噜久久亚洲精品国产品小说| 美女主播精品视频一二三四| 亚洲高清久久久| 免费亚洲电影在线观看| 欧美激情一区二区在线 | 欧美一区二区黄| 欧美在线啊v| 久久精品一区二区| 欧美福利视频在线| 国产精自产拍久久久久久| 国产亚洲欧美激情| 亚洲肉体裸体xxxx137| 亚洲天堂网在线观看| 久久先锋影音av| 亚洲综合首页| 亚洲欧美国产一区二区三区| 一区二区三区高清在线观看| 亚洲一区二区三区视频| 久久精品官网| 欧美三级免费| 在线免费观看日本欧美| 亚洲私人影院在线观看| 久久精品视频免费播放| 亚洲另类在线一区| 久久久亚洲高清| 国产精品草莓在线免费观看| 这里是久久伊人| 久久不射网站| 欧美日韩亚洲一区二区| 一区二区在线观看视频在线观看| 久久婷婷激情| 欧美日韩国产免费| 国产亚洲视频在线| 亚洲视频高清| 欧美国产91| 久久se精品一区二区| 欧美日韩无遮挡| 亚洲精品老司机| 女仆av观看一区| 久久成人18免费观看| 国产精品一区二区欧美| 中文无字幕一区二区三区| 男女av一区三区二区色多| 亚洲欧美日韩中文视频| 欧美日产国产成人免费图片| 99国内精品久久| 欧美一区二区三区免费视| 久热这里只精品99re8久| 国产精品一区二区久久| 亚洲午夜精品17c| 日韩视频在线一区二区| 欧美日韩国产成人| 一区二区日韩免费看| 亚洲国产日韩综合一区| 欧美国内亚洲| 99国产精品国产精品久久 | 欧美亚洲综合在线| 亚洲视频免费在线观看| 国产精品国产自产拍高清av| 中文在线资源观看网站视频免费不卡 | 久久xxxx| 欧美日韩伊人| 一区二区三区四区国产| 亚洲日本中文字幕| 欧美日本久久| 亚洲尤物精选| 亚洲一区在线播放| 国产亚洲一区二区在线观看| 久久精品视频在线播放| 久久黄色级2电影| 狠狠爱综合网| 欧美韩日一区二区三区| 一本大道久久a久久精二百| 麻豆精品传媒视频| 黄色成人在线| 亚洲国产成人午夜在线一区| 亚洲欧美激情视频| 欧美久久久久久久久| 亚洲区在线播放| 91久久久久久久久久久久久| 欧美精品在线一区| 亚洲综合三区| 久久国产一区二区| 亚洲精品久久久久久一区二区| 亚洲三级色网| 国产精品手机视频| 欧美aⅴ99久久黑人专区| 欧美精品在线一区二区| 久久精品免费看| 免费成人高清视频| 亚洲一区二区三区三| 久久精品亚洲热| 亚洲一级网站| 美女精品在线| 日韩午夜激情av| 欧美日韩在线一区二区三区| 欧美一区二区三区在线免费观看 | 国产在线精品一区二区夜色| 亚洲电影免费| 国产一区二区三区高清在线观看 | 亚洲精品一区二区三区婷婷月 | 一区二区三区在线看| 亚洲伦理自拍| 亚洲日本电影在线| 欧美影院在线| 亚洲欧美日韩一区在线观看| 欧美金8天国| 免费在线欧美视频| 国产一区二区三区最好精华液| 最新成人av网站| 亚洲国产精品传媒在线观看| 久久精品盗摄| 亚洲欧洲一区二区三区久久| 欧美体内谢she精2性欧美| 久久亚洲国产成人| 欧美日韩国产一级| 欧美激情精品久久久久久免费印度 | 免费在线日韩av| 亚洲美女中文字幕| 一本大道久久a久久精二百| 又紧又大又爽精品一区二区| 亚洲午夜激情免费视频| 一二美女精品欧洲| 欧美福利在线| 亚洲高清免费| 午夜精品久久久久久久久久久久| 99精品国产在热久久婷婷| 精品不卡在线| 久久成人精品| 性欧美8khd高清极品| 国产精品国产三级国产aⅴ入口 | 一区三区视频| 久久久综合网站| 欧美国产日韩精品免费观看| 亚洲国产婷婷香蕉久久久久久| 久久亚洲精品一区| 欧美国产日韩一区二区三区| 亚洲电影成人| 欧美成人乱码一区二区三区| 亚洲第一在线综合网站| 91久久综合亚洲鲁鲁五月天| 久久综合色影院| 欧美在线视频观看| 欧美在线网址| 黄色小说综合网站| 久久视频免费观看| 欧美激情一区在线观看| 日韩亚洲成人av在线| 欧美性jizz18性欧美| 性18欧美另类| 欧美高清成人| 亚洲一区二区三区精品在线观看| 国产精品vip| 久久激情五月丁香伊人| 欧美激情中文字幕乱码免费| 在线综合视频| 狠狠色2019综合网| 欧美精品videossex性护士| 国产精品99久久久久久久vr| 久久久另类综合| 亚洲视频精品| 亚洲黄页一区| 国产乱码精品一区二区三区不卡| 久久亚洲视频| 亚洲综合日韩在线| 欧美激情视频一区二区三区免费| 欧美激情一区二区三区高清视频| 亚洲国产一区二区三区a毛片| 欧美99在线视频观看| 亚洲大片免费看| 亚洲系列中文字幕| 狠狠色综合播放一区二区| 久热re这里精品视频在线6| 亚洲国产另类精品专区| 亚洲免费影院| 亚洲国产婷婷| 国产欧美日韩免费看aⅴ视频| 看片网站欧美日韩| 久久久综合激的五月天| 国产专区一区| 久久久女女女女999久久| 99国产精品久久久| 欧美h视频在线| 久久精品av麻豆的观看方式| 欧美午夜无遮挡| 欧美成人一区二区三区| 野花国产精品入口| 欧美 日韩 国产在线| 欧美一区二区免费观在线| 日韩视频精品在线| 永久免费精品影视网站|