• <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>
            Windows體系結(jié)構(gòu): 


            Windows內(nèi)核結(jié)構(gòu):



            Windows關(guān)鍵組件:
            hal.dll: 處于內(nèi)核中,硬件抽象層, 隔離各種硬件平臺(tái)
            ntoskrnl.exe: 操作系統(tǒng)內(nèi)核, 下層是微內(nèi)核(提供線程調(diào)度,中斷異常等), 上層是執(zhí)行體(在微內(nèi)核的基礎(chǔ)上實(shí)現(xiàn)基本的對(duì)象管理和功能組件的封裝)
            win32k.sys: Windows子系統(tǒng)內(nèi)核,提供窗口管理和圖形設(shè)備輸出, 上層的GDI/User32在內(nèi)核的實(shí)現(xiàn)。
            User32/GDI32/Kenel32: Windows子系統(tǒng)應(yīng)用層API接口

            Windows進(jìn)程創(chuàng)建過程: 



            下面介紹Windows進(jìn)程中比較關(guān)鍵的幾個(gè)數(shù)據(jù)結(jié)構(gòu): EPROCESS, KPROCESS, PEB, CSR_PROCESS, W32PROCESS。



            上面我們可以看到KPROCESS(PCB)是EPROCESS的一部分, EPROCESS存在于內(nèi)核上層的執(zhí)行體中, KROCESS(PCB)存在于內(nèi)核下層的微內(nèi)核中, 各施其職。
            每個(gè)進(jìn)程都在內(nèi)核中都有一個(gè)EPROCESS, 所有進(jìn)程共享同一個(gè)內(nèi)核空間, 內(nèi)核通過一個(gè)鏈表把所有的進(jìn)程內(nèi)核塊(EPROCESS)串連起來。
            EPROCESS包含了很多重要的進(jìn)程信息: PCB, 進(jìn)程ID, 進(jìn)程token, 進(jìn)程句柄表, 進(jìn)程環(huán)境塊(PEB), Win32進(jìn)程塊(W32PROCESS)。



            上面的是PEB的結(jié)構(gòu)圖, PEB即進(jìn)程環(huán)境塊,存在于用戶空間(非內(nèi)核), 所以我們應(yīng)用層可以直接訪問(先通過FS寄存器訪問TEB, 在通過TEB成員訪問PEB), PEB也包含了很多有用的信息: 模塊列表, 進(jìn)程參數(shù)信息, 線程本地存儲(chǔ)(TLS), 堆信息, 進(jìn)程的GDI table等

            我們每個(gè)Windows進(jìn)程在創(chuàng)建和退出的時(shí)候都要通知Windows子系統(tǒng), 在應(yīng)用層csrss.exe負(fù)責(zé)管理所有的windows進(jìn)程, 除了少數(shù)幾個(gè)系統(tǒng)進(jìn)程(sms.exe), 其他所有進(jìn)程在csrss.exe中都有自己的一份CSR_PROCESS數(shù)據(jù)。



            每個(gè)窗口進(jìn)程在Windows子系統(tǒng)內(nèi)核(win32k.sys)中都有一個(gè)W32PROCESS數(shù)據(jù)結(jié)構(gòu), 這個(gè)結(jié)構(gòu)包含很多窗口和GDI相關(guān)的數(shù)據(jù)結(jié)構(gòu)。
            下面再介紹下線程相關(guān)的數(shù)據(jù)結(jié)構(gòu): ETHREAD, KTHREAD, TEB, CSR_THREAD, W32THREAD.

            ETHREAD和KTHREAD分別在內(nèi)核的執(zhí)行體層和微內(nèi)核層。


            TEB(線程環(huán)境塊)存在于用戶層, 我們可以直接通過FS寄存器直接訪問。


            CSR_THREAD存在于csrss.exe進(jìn)程中, 每個(gè)Windows進(jìn)程創(chuàng)建線程后都會(huì)在這里登記。


            W32THREAD, 存在于win32k.sys內(nèi)核中, 每個(gè)UI線程在這里都有對(duì)應(yīng)的結(jié)構(gòu)。
            我們可以看到Windows的整個(gè)系統(tǒng)各組件相互獨(dú)立和協(xié)助的過程, 他們之間各個(gè)關(guān)鍵的數(shù)據(jù)結(jié)構(gòu)又可以直接通過指針相互訪問,有些存在于后臺(tái)內(nèi)核(ntoskrnl.exe), 有些存在于界面內(nèi)核(win32k.sys), 有些又存在于每個(gè)進(jìn)程的用戶空間。
            這樣我們也明白了為什么內(nèi)核對(duì)象(kernel object)句柄是每個(gè)進(jìn)程獨(dú)立, 但是內(nèi)核對(duì)象本身又是各個(gè)進(jìn)程都可以訪問的?
            因?yàn)閮?nèi)核對(duì)象句柄表存在于EPROCESS, 是每個(gè)進(jìn)程都獨(dú)立持有的, 但是內(nèi)核對(duì)象本身又存在于內(nèi)核, 是每個(gè)進(jìn)程都可以通過指針直接訪問的(需要open object)。

            為什么GDI對(duì)象是每個(gè)進(jìn)程獨(dú)有的, 其他進(jìn)程沒法訪問? 
            因?yàn)镚DI對(duì)象表存在于PEB中, 每個(gè)進(jìn)程都有自己的一份, 其他進(jìn)程沒法訪問。

            為什么User object只要得到句柄,就可以直接夸進(jìn)程訪問?
            User object(如window, menu, hook)明明在內(nèi)核中,為什么叫用戶對(duì)象, 因?yàn)樵贜T4.0之前他們是被放在csrss.exe中的,但是后來因?yàn)榭邕M(jìn)程性能太低,微軟把他們移到了內(nèi)核(win32k.sys)中, 每個(gè)session共享同一用戶對(duì)象列表, 所以它們以同樣的句柄值, 可以跨進(jìn)程直接訪問。 
            TLS(線程本地存儲(chǔ))又是怎么實(shí)現(xiàn)的? 
            在每個(gè)進(jìn)程的用戶空間的PEB和TEB中分配存儲(chǔ)空間。

            怎么實(shí)現(xiàn)進(jìn)程隱藏? 
            我們既可以直接通過Hook API實(shí)現(xiàn), 也可以通過直接修改進(jìn)程列表實(shí)現(xiàn), 我們看到CSR_PROCESS, W32PROCESS, EPROCESS 其實(shí)都是list, 我們只要修改這些列表,尤其是EPROCESS列表, 就可以實(shí)現(xiàn)徹底的進(jìn)程隱藏。

            SetWindowsHookEx是怎么實(shí)現(xiàn)的?
            Windows子系統(tǒng)內(nèi)核(Win32k.sys)在對(duì)消息進(jìn)行處理前對(duì)用戶態(tài)設(shè)置的回調(diào)函數(shù)進(jìn)行調(diào)用。
            posted on 2016-03-16 22:03 Richard Wei 閱讀(2761) 評(píng)論(0)  編輯 收藏 引用 所屬分類: windows desktop
            亚洲精品白浆高清久久久久久| 国产精品欧美久久久天天影视| 国产精品久久久久久久久久影院| 欧美激情精品久久久久久| 婷婷伊人久久大香线蕉AV| 青青青国产精品国产精品久久久久| 久久久综合香蕉尹人综合网| 色欲综合久久躁天天躁蜜桃| 久久精品国产99国产精品| 亚洲精品无码久久久久去q | 久久e热在这里只有国产中文精品99 | 国产精品久久精品| 久久免费视频1| 国产精自产拍久久久久久蜜| 亚洲国产精品无码久久久不卡| 久久久久久噜噜精品免费直播| 久久国产精品99国产精| 一本久久综合亚洲鲁鲁五月天| 国产高清美女一级a毛片久久w | 香蕉久久久久久狠狠色| 狠狠精品久久久无码中文字幕 | 国产亚洲精久久久久久无码AV| 狠狠色丁香婷综合久久| 亚洲狠狠婷婷综合久久久久| 亚洲国产日韩欧美综合久久| 国产午夜精品久久久久九九| 99久久婷婷国产综合亚洲| 少妇精品久久久一区二区三区| 奇米影视7777久久精品人人爽| 久久精品夜色噜噜亚洲A∨| 人人狠狠综合久久亚洲婷婷| 国产精品久久久久影院嫩草| 午夜精品久久久久久中宇| 久久久久亚洲精品无码蜜桃| 久久精品卫校国产小美女| 亚洲中文字幕无码久久综合网| 国内精品久久久久影院薰衣草| 日日躁夜夜躁狠狠久久AV| 国内精品久久人妻互换| 99久久人人爽亚洲精品美女| 国产免费久久精品99久久|