freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)優(yōu)秀課程設計-資料下載頁

2025-07-07 14:14本頁面
  

【正文】 open this process39。s access token if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, amp。hToken)) { // 指定 的數(shù)組大小 // 因為只修改 SE_DEBUG, 所以一個足矣 TOKEN_PRIVILEGES tp。 = 1。 // 找到 SE_DEBUG 的權(quán)限屬性 ,并根據(jù)需要寫入 // 第一個 NULL 表示在 Local System 查找 LookupPrivilegeValue(NULL, SE_DEBUG_NAME, amp。[0].Luid)。 [0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0。 // 提權(quán) // 如果不保存先前的權(quán)限狀態(tài),第四個參數(shù)可以是 NULL AdjustTokenPrivileges(hToken, FALSE, amp。tp, sizeof(tp), NULL, NULL)。 fOk = (GetLastError() == ERROR_SUCCESS)。 CloseHandle(hToken)。 } return(fOk)。}/////////////////////////////////////////////////////////////////////////////////讀 出 數(shù) 據(jù)inline BOOL CToolhelp::ReadProcessMemory(DWORD dwProcessID, LPCVOID pvBaseAddress, PVOID pvBuffer, DWORD cbRead, PDWORD pdwNumberOfBytesRead) {/*第 一 個 參 數(shù) 是 遠 程 進 程 ID。 被 讀 取 者     第 二 個 參 數(shù) 是 遠 程 進 程 中 內(nèi) 存 地 址 。     第 三 個 參 數(shù) 是 本 地 進 程 中 內(nèi) 存 地 址 . 函 數(shù) 將 讀 取 的 內(nèi) 容 寫 入 此 處 第 四 個 參 數(shù) 是 要 傳 送 的 字 節(jié) 數(shù) 。 要 寫 入 多 少     第 五 個 參 數(shù) 是 實 際 傳 送 的 字 節(jié) 數(shù) . 函 數(shù) 返 回 時 報 告 實 際 寫 入 多 少*/ return(Toolhelp32ReadProcessMemory(dwProcessID, pvBaseAddress, pvBuffer, cbRead, pdwNumberOfBytesRead))。 //返回這五個參數(shù)}////////////////////////////////////////////////////////////////////////////////*下 面 是 一 個 進 程 獲 取 函 數(shù)當 我 們 利 用 函 數(shù) CreateToolhelp32Snapshot()獲 得 當 前 運 行 進 程 的 快 照 后 ,我 們 可 以 利用 processFirst 函 數(shù) 來 獲 得 第 一 個 進 程 的 句 柄 */inline BOOL CToolhelp::ProcessFirst(PPROCESSENTRY32 ppe) const { BOOL fOk = Process32First(m_hSnapshot, ppe)。 if (fOk amp。amp。 (ppeth32ProcessID == 0)) fOk = ProcessNext(ppe)。 // Remove the [System Process] (PID = 0) return(fOk)。}inline BOOL CToolhelp::ProcessNext(PPROCESSENTRY32 ppe) const { //與 ProcessFirst 合用獲得所有的進程 BOOL fOk = Process32Next(m_hSnapshot, ppe)。 if (fOk amp。amp。 (ppeth32ProcessID == 0)) fOk = ProcessNext(ppe)。 // Remove the [System Process] (PID = 0) return(fOk)。}inline BOOL CToolhelp::ProcessFind(DWORD dwProcessId, PPROCESSENTRY32 ppe) const { BOOL fFound = FALSE。 for (BOOL fOk = ProcessFirst(ppe)。 fOk。 fOk = ProcessNext(ppe)) { fFound = (ppeth32ProcessID == dwProcessId)。 if (fFound) break。 } return(fFound)。}///////////////////////////////////////////////////////////////////////////////inline BOOL CToolhelp::ModuleFirst(PMODULEENTRY32 pme) const { return(Module32First(m_hSnapshot, pme))。}inline BOOL CToolhelp::ModuleNext(PMODULEENTRY32 pme) const { return(Module32Next(m_hSnapshot, pme))。}inline BOOL CToolhelp::ModuleFind(PVOID pvBaseAddr, PMODULEENTRY32 pme) const { BOOL fFound = FALSE。 for (BOOL fOk = ModuleFirst(pme)。 fOk。 fOk = ModuleNext(pme)) { fFound = (pmemodBaseAddr == pvBaseAddr)。 if (fFound) break。 } return(fFound)。}inline BOOL CToolhelp::ModuleFind(PTSTR pszModName, PMODULEENTRY32 pme) const { BOOL fFound = FALSE。 for (BOOL fOk = ModuleFirst(pme)。 fOk。 fOk = ModuleNext(pme)) { fFound = (lstrcmpi(pmeszModule, pszModName) == 0) || (lstrcmpi(pmeszExePath, pszModName) == 0)。 if (fFound) break。 } return(fFound)。}///////////////////////////////////////////////////////////////////////////////inline BOOL CToolhelp::ThreadFirst(PTHREADENTRY32 pte) const { return(Thread32First(m_hSnapshot, pte))。}inline BOOL CToolhelp::ThreadNext(PTHREADENTRY32 pte) const { return(Thread32Next(m_hSnapshot, pte))。}///////////////////////////////////////////////////////////////////////////////inline int CToolhelp::HowManyHeaps() const { int nHowManyHeaps = 0。 HEAPLIST32 hl = { sizeof(hl) }。 for (BOOL fOk = HeapListFirst(amp。hl)。 fOk。 fOk = HeapListNext(amp。hl)) nHowManyHeaps++。 return(nHowManyHeaps)。}inline int CToolhelp::HowManyBlocksInHeap(DWORD dwProcessID, DWORD dwHeapID) const { int nHowManyBlocksInHeap = 0。 HEAPENTRY32 he = { sizeof(he) }。 BOOL fOk = HeapFirst(amp。he, dwProcessID, dwHeapID)。 for (。 fOk。 fOk = HeapNext(amp。he)) nHowManyBlocksInHeap++。 return(nHowManyBlocksInHeap)。}inline BOOL CToolhelp::HeapListFirst(PHEAPLIST32 phl) const { return(Heap32ListFirst(m_hSnapshot, phl))。}inline BOOL CToolhelp::HeapListNext(PHEAPLIST32 phl) const { return(Heap32ListNext(m_hSnapshot, phl))。}inline BOOL CToolhelp::HeapFirst(PHEAPENTRY32 phe, DWORD dwProcessID, UINT_PTR dwHeapID) const { return(Heap32First(phe, dwProcessID, dwHeapID))。}inline BOOL CToolhelp::HeapNext(PHEAPENTRY32 phe) const { return(Heap32Next(phe))。}inline BOOL CToolhelp::IsAHeap(HANDLE hProcess, PVOID pvBlock, PDWORD pdwFlags) const { HEAPLIST32 hl = { sizeof(hl) }。 for (BOOL fOkHL = HeapListFirst(amp。hl)。 fOkHL。 fOkHL = HeapListNext(amp。hl)) { HEAPENTRY32 he = { sizeof(he) }。 BOOL fOkHE = HeapFirst(amp。he, , )。 for (。 fOkHE。 fOkHE = HeapNext(amp。he)) { MEMORY_BASIC_INFORMATION mbi。 VirtualQueryEx(hProcess, (PVOID) , amp。mbi, sizeof(mbi))。 if (chINRANGE(, pvBlock, (PBYTE) + )) { *pdwFlags = 。 return(TRUE)。 } } } return(FALSE)。}//////////////////////////////// End of File ///////////////第四章 實驗心得通過這次對代碼的仔細分析,我學習很多以前沒有接觸過的新東西,雖然不太熟悉,但是通過查找資料,還是學習了很多東西。如 MFC 類 ,Windows 程序設計中的一些函數(shù)。 有些人說寫代碼是件枯燥乏味的事情,但是在我看來卻不然,認識新知識,學習新知識,這個過程是一個快樂的事情。代碼的學習可以從讀代碼開始,這是一個學習的好方法。具體還有如下收獲: Windows 應用程序, Windows 提供了大量預定義的用 C 語言編寫的函數(shù),這些函數(shù)叫做 API 函數(shù)。API 函數(shù)幾乎包含了 Windows 程序中的所有操作功能,大體上分為三類:a. 窗口管理函數(shù):實現(xiàn)窗口的創(chuàng)建、移動、和修改等功能。b. 圖形設備函數(shù):實現(xiàn)圖形的繪制及操作功能,這類函數(shù)的集合又叫做圖形設備接口。c. 系統(tǒng)服務函數(shù):實現(xiàn)與操作系統(tǒng)有關(guān)的一些功能。Windows 應用程序中的數(shù)量非常大,為了提高應用程序的可讀性,Windows 給許多基本數(shù)據(jù)類型定義了別名。注:Windows 自定義數(shù)據(jù)類型的關(guān)鍵字都要大寫。 應用程序的結(jié)構(gòu):一個 Windwos 程序一般由頭文件、源文件、動態(tài)鏈接庫、資源等幾部分
點擊復制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1