原创 如何Hook Windows API

相信大家一定經常碰到內存泄漏的問題,在診斷過程中常用的一個工具就是LeakDiag,該工具可以讓用戶制定要查看哪些堆中的內存分配情況。碰巧我在項目中也需要類似的功能,但是由於當時不知道有LeakDiag這個工具,所以自己開發了一個。這裏把

原创 Apache MINA NIO模型

From: http://2006zhouxinfeng.blog.163.com/blog/static/5024021620115155106736/   前一段在網上看到了“淘寶伯巖”([email protected])的一份關

原创 C/C++中.bss段的解釋

BSS(Block Started by Symbol)這個詞最初是UA-SAP彙編器(United Aircraft Symbolic Assembly Program)中的一個僞指令,用於爲符號預留一塊內存空間。該彙編器由美國聯合航空

原创 如何在沒有棧的情況下利用堆分析crash文件

我想大家平時拿到crash文件首先都會看看棧的調用情況,如果問題簡單直接就能從棧上定位出問題。但是有的時候我們可能沒有辦法從棧上找到我們想要的信息,這個時候堆是一個很好的地方來找到我們需要的信息。下面的兩個案例就是利用這個方法解決問題的。

原创 如何修改棧結構統計每個DLL的函數使用信息

在文章如何Hook Windows API中,我們討論瞭如何Hook Windows API。此種方式的結果是每個DLL都會跳轉到相同的函數,所以不便實現針對每個DLL的函數使用信息。如果希望得到基於每個DLL的信息,可以通過修改棧的結構

原创 如何配置LDAP over SSL

今天碰到一個關於IIS不能訪問域服務器的問題。經過調查,發現是域控制器上的證書出了問題。   網絡環境: IIS服務器: IIS 6.0 Windows Server 2003 SP2 域控制器: Windows Server 2003

原创 Linux系統調用是如何被信號終止的

在系統調用過程中,如果請求不能被立即滿足,請求進程會進入TASK_INTERRUPTIBLE或者TASK_UNINTERRUPTIBLE狀態。如果進程在TASK_INTERRUPTIBLE狀態,那麼如果進程收到一個信號,該系統調用會被終止

原创 The Macro Expansion Process (Forwarded)

During the recent studying of boost library, the macro expansion seems a little mysterious and so I googled and got the

原创 各種內存名詞的解釋

最近經常碰到很多同事討論各種內存相關的名詞,我想在這裏總結一下,希望有相同疑問的人能有所幫助。 討論涉及到的名詞如下: free memory reserved memory committed memory virtual mem

原创 Windows內存對齊問題

最近操作系統開始從32位向64位升級,在升級驅動程序的時候發現一個嚴重的性能問題,後來發現是由於數據對齊引起的,所以查了一下與內存對齊相關的文章,發現了下面的鏈接: http://msdn.microsoft.com/en-us/libr

原创 VS2003.NET打開優化選項後浮點運算錯誤

我的開發環境是VS2003.NET,語言是C++,服務器是Windows2003 Server SP2。出錯的代碼很簡單,僞代碼如下:   double a = <是一個很複雜的運算結果,值等於1.000000000000000000

原创 Windows Server 2008中核心堆結構的變化

前陣子一個偶然的機會碰到了一個wow64的crash dump,是在Windows Server 2008 R2上產生的,硬件平臺是x64。在分析過程中發現,原來2008的核心堆結構有了很大的變化,所以這裏總結一下。 在Windows

原创 IIS啓用HTTP壓縮之後,IE不能打開zip附件

最近碰到一個問題,如標題所述,雖然經過分析,知道問題在哪裏了,但是原因仍然不清楚,這裏還是記錄下來,做個備忘。   環境: Windows 2003 server SP2 IIS6   現象: 當按着下面鏈接啓用IIS 6.0的HTTP

原创 關係型數據庫到HBase的數據存儲方式變遷

如今Bigtable型(列族)數據庫應用越來越廣,功能也很強大。但是很多人還是把它當做關係型數據庫在使用,用原來關係型數據庫的思維建表、存儲、查詢。本文以hbase舉例講述數據模式的變化。 傳統關係型數據庫(mysql,oracle)數

原创 驅動程序無法加載分析

最近項目中接連碰到幾個和驅動加載相關的問題,所以我決定對這些問題做一個調研。   項目使用的驅動是一個Legency的NT式的協議驅動,驅動上邊是標準的Legency的NT驅動接口,下邊是NDIS接口,運行在Windows 2003 S