調整程序的特權

2021-04-13 22:06:12 字數 843 閱讀 7070

通過openprocess(process_all_access,false,did)獲取id較低程序的控制代碼時可能會得到錯誤**,這些程序都是保持系統活動的系統服務。乙個普通使用者程序不允許執行針對系統服務的所有操作。如果乙個程式意外終止了乙個系統服務,那麼整個系統都將崩潰。因此,乙個程序只有擁有確切的訪問許可權才會有適當的特權。

由於多種原因,偵錯程式必須擁有大量的許可權來完成他的工作。改變程序的特權可以通過以下三個簡單的基本步驟:

1.首先,必須開啟程序的訪問令牌(access token),使用advapi32.dll中的函式openprocesstoken()。

2.如果上一步正確完成,接下來就是準備token_privileges結構,該結構包含有關要請求的特權的資訊。這個工作需要advapi32.dll中的另乙個函式lookupprivilegevalue()的幫助。特權通過名稱來指定。sdk文件winnt.h定義了27中特權名稱和其對應的符號名稱。例如,除錯許可權的符號名稱為:se_debug_name,該名稱和字串「sedebugprivilege」等效。

3.如果上一步正確完成,就可以使用程序的令牌控制代碼(token handle)來呼叫adjusttokenprivileges()函式以初始化token_privileges結構。該函式也是advapi32.dll匯出的。

4.如果openprocesstoken()呼叫成功,要記得關閉其返回的令牌控制代碼(token handle)。w2k_dbg.dll包含乙個dbgprivilegeset()函式,該函式合併了這幾個步驟,還有w2k_dbg.dll中的另乙個函式:dbgprivilegedebug()。此函式是dbgprivilegeset()的乙個外包函式,為了便於設定除錯特權。

Android 調整程序的最大fd 數目

1.首先嘗試 ulimit n 4096 進步能正確更改程序的max fd 數目。2.後來發現可以很方便的在init.rc init.x.rc 裡面進行設定,通常設定分成兩種,2.1一種是for all user process,這種就是針對bootup 時對init process 進行設定.比如...

調整程序的優先順序的方法

linux下調整程序優先順序 程序的優先順序決定了程序是否優先被cpu分配資源進行處理。在cpu資源十分充足時,每個正在執行的程序都能分配到足夠的資源進行處理,此時調整程序的優先順序是沒有什麼意義的 如果cpu資源緊張時,top檢視cpu使用達到90 以上時,優先順序高的程序將被優先分配資源去執行。...

特權級之間的轉換

特權級之間的轉換包括 段之間的轉換和資料段之間的轉換。對於資料段之間的轉換,只檢查選擇子中rpl和段中dpl的值,如果rpl dpl則可以轉換,而對於 段之間的轉換,情況會稍微複雜。段之間特權級的轉換主要通過jmp和call指令實現,jmp和call的運算元可以直接是選擇子,但注意在用call時,要...