• <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
            精品久久久久久久| 69SEX久久精品国产麻豆| 国产高潮久久免费观看| 久久久精品久久久久影院| 欧美噜噜久久久XXX| 国产999精品久久久久久| 国产成年无码久久久免费| 国产日产久久高清欧美一区| 久久综合视频网站| 精品国产一区二区三区久久| 国产精品久久婷婷六月丁香| 久久国产精品-国产精品| 一本久久精品一区二区| 九九99精品久久久久久| 久久综合亚洲色一区二区三区| 久久精品一区二区| 亚洲AV无码久久精品成人| 一本色道久久88综合日韩精品 | 三级韩国一区久久二区综合| 久久亚洲日韩精品一区二区三区| 成人亚洲欧美久久久久| 精品少妇人妻av无码久久| 久久大香萑太香蕉av| 久久精品成人免费观看97| 久久久久国产精品| 欧美伊人久久大香线蕉综合69| 国产精自产拍久久久久久蜜| 久久综合久久综合久久| 久久AV高清无码| 久久久久人妻一区精品色| 久久久久av无码免费网| 久久国产亚洲精品| 中文字幕无码av激情不卡久久| 精品乱码久久久久久夜夜嗨| 久久亚洲色一区二区三区| 欧美伊香蕉久久综合类网站| 久久精品aⅴ无码中文字字幕重口| 久久精品黄AA片一区二区三区| 色综合久久综合中文综合网| 欧美熟妇另类久久久久久不卡 | 99久久免费只有精品国产|