Copy On Write機制,全域性hook(二)

2021-09-30 07:55:09 字數 700 閱讀 3803

如果仔細閱讀前一篇文章的話,就知道只要pte的write(bit 1)位置1,就廢掉了copy-on-write機制(解釋一下,因為不可能產生異常了嘛),為了不影響系統的執行,我找了ntdll的檔案頭(7c800000)做實驗:

!process 0 0..

process 811ae9e0  sessionid: 0  cid: 015c    peb: 7ffde000  parentcid: 036c

dirbase: 0997f000  objecttable: e15114b0  handlecount: 126.

image: svchost.exe..

process ffa4fd88   sessionid: 0  cid: 0258    peb: 7ffd4000  parentcid: 0104

dirbase: 0712c000   objecttable: e104d8e0  handlecount:  28.

image: ezdriverinstaller.exe

kd> !vtop 0712c000 7c800000 (隨便找個程序,ezdriverinstaller.exe)

x86vtop: virt 7c800000, pagedir 712c000

x86vtop: pde 712c7c8 - 0b237867

x86vtop: pte b237000 - 0f7bd025

記憶體的COPY ON WRITE機制

剛了解到。趕快記下來。每個程式都有自己的資料段,段。補充 dll有自己的資料段,但沒有自己的堆疊。乙個dll,被很多程式呼叫,為什麼 段共享,資料段不共享?就是因為 記憶體的copy on write 機制 程式1呼叫這個dll,執行過程中,dll的資料段肯定會改變,那記憶體就會被copy乙份,原來...

CopyOnWrite容器理解

什麼是copyonwrite容器 copyonwrite容器即寫時複製的容器。通俗的理解是當我們往乙個容器新增元素的時候,不直接往當前容器新增,而是先將當前容器進行copy,複製出乙個新的容器,然後新的容器裡新增元素,新增完元素之後,再將原容器的引用指向新的容器。這樣做的好處是我們可以對copyon...

Copy On Write寫時複製

copy on write解決的問題 早期unix系統建立程序的方式存在缺陷 當發出fork 系統呼叫時,核心原樣複製父程序的整個位址空間並把複製的那乙份分配給子程序。這種行為是非常耗時的,因為它需要 為子程序的頁表分配頁幀 為子程序的頁分配頁幀 初始化子程序的頁表 把父程序的頁複製到子程序相應的頁...