當前位置:編程學習大全網 - 編程語言 - Linux鉤子函數linux鉤子

Linux鉤子函數linux鉤子

sgi接口是什麽?

SGI接口是安全網關接口。

SGI的目標是實現壹個通用的安全網關內核接口模塊,實現對流經的IP數據包的轉發控制。實現的方法是采用Linux的防火墻內核模塊接口,通過防火墻鉤子函數將自己掛接在系統的IP轉發控制鏈中。SGI在內部維護壹個Hash表,每壹個表項包含壹個代表著放行的IP地址。

什麽是遠程hook?

鉤子(Hook)

Hook解釋:

Hook是Windows中提供的壹種用以替換DOS下“中斷”的系統機制,中文譯為“掛鉤”或“鉤子”。在對特定的系統事件進行hook後,壹旦發生已hook事件,對該事件進行hook的程序就會受到系統的通知,這時程序就能在第壹時間對該事件做出響應。

另壹解釋:

鉤子(Hook),是Windows消息處理機制的壹個平臺,應用程序可以在上面設置子程以監視指定窗口的某種消息,而且所監視的窗口可以是其他進程所創建的。當消息到達後,在目標窗口處理函數之前處理它。鉤子機制允許應用程序截獲處理window消息或特定事件。

鉤子實際上是壹個處理消息的程序段,通過系統調用,把它掛入系統。每當特定的消息發出,在沒有到達目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數先得到控制權。這時鉤子函數即可以加工處理(改變)該消息,也可以不作處理而繼續傳遞該消息,還可以強制結束消息的傳遞。

Hook原理:

每壹個Hook都有壹個與之相關聯的指針列表,稱之為鉤子鏈表,由系統來維護。這個列表的指針指向指定的,應用程序定義的,被Hook子程調用的回調函數,也就是該鉤子的各個處理子程。當與指定的Hook類型關聯的消息發生時,系統就把這個消息傳遞到Hook子程。壹些Hook子程可以只監視消息,或者修改消息,或者停止消息的前進,避免這些消息傳遞到下壹個Hook子程或者目的窗口。最近安裝的鉤子放在鏈的開始,而最早安裝的鉤子放在最後,也就是後加入的先獲得控制權。

Windows並不要求鉤子函數的卸載順序壹定得和安裝順序相反。每當有壹個鉤子被卸載,Windows便釋放其占用的內存,並更新整個Hook鏈表。如果程序安裝了鉤子,但是在尚未卸載鉤子之前就結束了,那麽系統會自動為它做卸載鉤子的操作。

鉤子函數是壹個應用程序定義的回調函數(CALLBACKFunction),不能定義成某個類的成員函數,只能定義為普通的C函數。用以監視系統或某壹特定類型的事件,這些事件可以是與某壹特定線程關聯的,也可以是系統中所有線程的事件。

linux下有什麽檢測內存溢出的工具?

內存泄漏指由於疏忽或錯誤造成程序未能釋放已經不再使用的內存的情況。內存泄漏並非指內存在物理上的消失,而是應用程序分配某段內存後,由於設計錯誤,失去了對該段內存的控制,因而造成了內存的浪費。

可以使用相應的軟件測試工具對軟件進行檢測。

1.ccmalloc-Linux和Solaris下對C和C++程序的簡單的使用內存泄漏和malloc調試庫。

2.Dmalloc-DebugMallocLibrary.

3.Electric

Fence-Linux分發版中由BrucePerens編寫的malloc()調試庫。

4.Leaky-Linux下檢測內存泄漏的程序。

5.LeakTracer-Linux、Solaris和HP-UX下跟蹤和分析C++程序中的內存泄漏。

6.MEMWATCH-由Johan

Lindh編寫,是壹個開放源代碼C語言內存錯誤檢測工具,主要是通過gcc的precessor來進行。

7.Valgrind-DebuggingandprofilingLinuxprograms,aimingat

programswritteninCandC++.

8.KCachegrind-Avisualizationtoolfortheprofilingdata

generatedbyCachegrindandCalltree.

9.Leak

Monitor-壹個Firefox擴展,能找出跟Firefox相關的泄漏類型。

10.IELeakDetector

(Drip/IESieve)-Drip和IESieveleak

detectors幫助網頁開發員提升動態網頁性能通過報告可避免的因為IE局限的內存泄漏。

11.WindowsLeaks

Detector-探測任何Win32應用程序中的任何資源泄漏(內存,句柄等),基於WinAPI調用鉤子。

12.SAPMemory

Analyzer-是壹款開源的JAVA內存分析軟件,可用於輔助查找JAVA程序的內存泄漏,能容易找到大塊內存並驗證誰在壹直占用它,它是基於Eclipse

RCP(RichClientPlatform),可以下載RCP的獨立版本或者Eclipse的插件。

13.DTrace-即動態跟蹤Dynamic

Tracing,是壹款開源軟件,能在Unix類似平臺運行,用戶能夠動態檢測操作系統內核和用戶進程,以更精確地掌握系統的資源使用狀況,提高系統性能,減少支持成本,並進行有效的調節。

14.IBMRationalPurifyPlus-幫助開發人員查明C/C++、托管.NET、Java和VB6代碼中的性能和可靠性錯誤。PurifyPlus

將內存錯誤和泄漏檢測、應用程序性能描述、代碼覆蓋分析等功能組合在壹個單壹、完整的工具包中。

15.ParasoftInsure++-針對C/C++應用的運行時錯誤自動檢測工具,它能夠自動監測C/C++程序,發現其中存在著的內存破壞、內存泄漏、指針錯誤和I/O等錯誤。並通過使用壹系列獨特的技術(SCI技術和變異測試等),徹底的檢查和測試我們的代碼,精確定位錯誤的準確位置並給出詳細的診斷信息。能作為Microsoft

VisualC++的壹個插件運行。

16.CompuwareDevPartnerforVisualC++BoundsChecker

Suite-為C++開發者設計的運行錯誤檢測和調試工具軟件。作為MicrosoftVisualStudio和C++6.0的壹個插件運行。

17.ElectricSoftwareGlowCode-包括內存泄漏檢查,code

profiler,函數調用跟蹤等功能。給C++和.Net開發者提供完整的錯誤診斷,和運行時性能分析工具包。

18.CompuwareDevPartnerJava

Edition-包含Java內存檢測,代碼覆蓋率測試,代碼性能測試,線程死鎖,分布式應用等幾大功能模塊。

19.QuestJProbe-分析Java的內存泄漏。

20.ej-technologiesJProfiler-壹個全功能的Java剖析工具,專用於分析J2SE和J2EE應用程序。它把CPU、執行緒和內存的剖析組合在壹個強大的應用中。JProfiler可提供許多IDE整合和應用服務器整合用途。JProfiler直覺式的GUI讓妳可以找到效能瓶頸、抓出內存泄漏、並解決執行緒的問題。4.3.2註冊碼:A-G666#76114F-1olm9mv1i5uuly#0126

21.BEAJRockit-用來診斷Java內存泄漏並指出根本原因,專門針對Intel平臺並得到優化,能在Intel硬件上獲得最高的性能。

22.SciTechSoftwareAB.NETMemory

Profiler-找到內存泄漏並優化內存使用針對C#,VB.Net,或其它.Net程序。

23.YourKit.NETJavaProfiler-業界領先的Java和.NET程序性能分析工具。

24.AutomatedQAAQTime-AutomatedQA的獲獎產品performanceprofiling和memory

debugging工具集的下壹代替換產品,支持Microsoft,Borland,Intel,Compaq和

GNU編譯器。可以為.NET和Windows程序生成全面細致的報告,從而幫助您輕松隔離並排除代碼中含有的性能問題和內存/資源泄露問題。支持.Net

1.0,1.1,2.0,3.0和Windows32/64位應用程序。

25.JavaScriptMemoryLeakDetector-微軟全球產品開發歐洲團隊(GlobalProduct

Development-Europeteam,GPDE)

發布的壹款調試工具,用來探測JavaScript代碼中的內存泄漏,運行為IE系列的壹個插件。

  • 上一篇:激光焊接機可以焊哪些材料
  • 下一篇:誰知道九陰真經什麽時候公測
  • copyright 2024編程學習大全網