原创 進程地址空間與虛擬存儲空間區別

在進入正題前先來談談操作系統內存管理機制的發展歷程,瞭解這些有利於我們更好的理解目前操作系統的內存管理機制。 一 早期的內存分配機制 在 早期的計算機中,要運行一個程序,會把這些程序全都裝入內存,程序都是直接運行在內存上的,也就是說程序中

原创 連設計圖都不會畫,你還想做“系統架構師”?

什麼是系統架構師?系統架構師是一個既需要掌控整體又需要洞悉局部瓶頸並依據具體的業務場景給出解決方案的團隊領導型人物。一個架構師得需要足夠的想像力,能把各種目標需求進行不同維度的擴展,爲目標客戶提供更爲全面的需求清單。架構師在軟件開發的整個

原创 VS2013開發實用快捷鍵大全

1.Peek Definition (Alt + F12) 允許大家在Editor內部查看定義而無需額外開啓新的文檔標籤。 2.工具-》選項-》文本編輯器-》所有語言-》滾動條   增強滾動條(Enhanced Scrollbar)

原创 Visual Leak Detector工作原理(舊版本)

      下面讓我們來看一下該工具的工作原理。        在這之前,我們先來看一下Visual C++內置的內存泄漏檢測工具是如何工作的。Visual C++內置的工具CRT Debug Heap工作原來很簡單。在使用Debug版

原创 PE文件結構及其加載機制(三)

上次我們學習了IMAGE_OPTIONAL_HEADER的前十個參數,下面我們繼續學習。第十一個值SectionAlignment,表示節對齊粒度。這個值一定要大於或等於文件對齊粒度。The alignment of sections l

原创 如何判斷一個C++對象是否在堆棧上

要解答這個問題,其實就是要知道的堆棧的起始地址, 而我們知道堆棧其實就是一段有相同屬性的內存頁面,而Windows也是有API讓我們查詢虛擬內存的頁面分配情況的。所有我們可以通過VirtualQuery這個API來獲取堆棧的起始地址,然

原创 PE文件結構及其加載機制(二)

以及對應的結構體 typedef struct _IMAGE_OPTIONAL_HEADER { WORD Magic; BYTE MajorLinkerV

原创 PE文件結構及其加載機制(四)

下面我們開始學習節表。 不知道還記不記得在前面哪個結構體中出現過節的數量?   嘿嘿,忘記了吧,我們翻開以前的記錄,看看。 原來是 typedef struct IMAGE_NT_HEADERS   {    DWO