原创 用戶態調試模型

在用戶態調試過程中調試器和被調試進程是兩個獨立的進程,而調試器需要通過控制被調試進程來進行調試,這與獨立的兩個進程之間的數據不可互相訪問相矛盾。考慮進程的邏輯內存共4G大小,而高2G爲系統空間,在實際中所有進程共用同一個系統空間。所以爲了

原创 棧和函數調用

def:棧是一種後入先出的數據結構,天然適合用來保存需要函數調用等需要保存的信息。在windows的用戶進程中都包含用戶棧和內核棧兩個棧。 每個線程都至少包含有一個棧,每個棧都對應內核中的一個_KTHREAD結構: 在線程開始運行之前需

原创 算法導論 第二十五章 所有節點對的最短路徑問題

基於單源最短路徑問題的討論,解決所有最短路徑問題,對每個節點求其最短路徑: 25.1 最短路徑和矩陣乘法 用動態規劃的方法來實現之前的思路: 如下示例: 使用公式L[i][j] = min(L[i][j], L'[i][k] +

原创 深入解析結構化異常處理(SEH) - by Matt Pietrek(*****)

轉自http://blog.csdn.net/chenlycly/article/details/52575260 結構化的異常處理還有比這篇文章更詳細的嗎?感覺寫的比老雷清楚。 儘管以前寫過一篇SEH相關的文章《關於SEH的簡單總結

原创 在軟件開發生命週期中使用應用程序驗證器

轉自https://msdn.microsoft.com/zh-cn/library/aa480483.aspx#EHAA 發佈日期 : 2006-6-5 | 更新日期 : 2006-6-5 摘要 Microsoft® Appl

原创 算法導論 第二十四章 單源最短路徑

def:單源最短路徑既從節點s出發到其他的所有能到達的節點的的最短路徑。 對於存在權重爲負數的邊,只要這邊不形成環,或者整個環路的權重大於零則可以認爲最短路徑依然有解。 我們使用前驅子圖來表現最短路徑 我們使用如下代碼來表示圖與最

原创 Windows概要

def:我們將處於運行狀態的程序稱爲進程,由操作系統所調度的任務,是可執行文件的一個映射。進程與程序的關係可以類比於類和實例,一個程序可以產生多個進程。 def:被cpu所調度的任務,進程中的指令。一個進程可以有多個線程,若將進程視爲資源

原创 棧的調試

在有了棧和函數調用的認識之後,可以動手模擬和棧相關的調試技術。 1.棧基礎 以如下代碼爲例子(關閉緩衝區檢查和優化): #include <windows.h> #include <stdio.h> #include <conio.h>

原创 堆和堆檢查

程序中在棧中保存的數據會隨着函數的退出而被清理,只能用於保存局部變量。對於生存期大於局部變量的數據存儲通常保存在堆中,堆擁有遠比棧更多的可用空間。對於堆的分配和管理,內核使用堆管理器完成,對管理器相當於從系統的內存管理器中批發一塊大的內存

原创 算法導論 第二十二章 基本的圖算法

22.1圖的表示 圖結構G(V,E)由頂點V和邊E的集合組成,主要有鄰接鏈表表示和鄰接矩陣表示,兩者的差別如下所示: 若爲節點添加屬性則可以通過改變節點自身的值,或者爲節點添加屬性或在節點中增加新的指針的方式來實現。權重也是屬性的一種

原创 算法導論 第二十六章 最大流

26.1 流網絡 對於存在反平行邊的問題,通過加入一個虛擬節點來保持性質,如對C(v1, v2) = a,C(v2, v1) = a,引入節點v'C(v1, v2) = a,C(v2, v') = a,C(v',v1) = a,如下圖

原创 用戶態調試過程

在瞭解了用戶態調試模型之後,根據模型來理解用戶態調試過程。調試過程中包含三個對象,調試進程,被調試進程和調試子系統,從調試的視角上看可以忽略調試子系統的存在。 通常調試器進程用於控制和觀察被調試進程的。一般包括UI線程和調試線程兩個部分,

原创 算法導論 第二十三章 最小生成樹

def:對於圖G(V,E)集合E中的邊帶有權重,存在一個包含所有節點的樹並樹邊爲E的子集,使得所有邊的權重最小,則該樹稱爲最小生成樹。 32.1 最小生成樹的形成 我們使用貪心算法來找到一個最小生成樹 23.2 Kruskal

原创 資源泄漏的調試

資源泄漏就是進程向系統申請了資源但是用完了沒有還給系統,造成了系統資源一直被佔用,無法重複利用。系統資源有限,資源泄漏的後果就是資源耗盡。 簡單的句柄泄漏 以如下代碼生成exe: #ifndef __SRV_H #define __SR

原创 分支記錄和性能監視

def:分支記錄就是記錄指令的跳轉,包括從哪裏來到哪裏去。記錄LBR(last brach recording)用於記錄最近的一條跳轉指令。 CPU中有提供LBRFromIp,LBRToIp來記錄跳轉,LastExceptionFromI