通過向設(shè)備對象\Device\Tcp發(fā)送IOCTL Code枚舉通信端口
摘要: 在應(yīng)用層,枚舉進程及其通信端口一般可以用iphlpapi.dll中提供的函數(shù)來獲取。如獲取Tcp連接,則調(diào)用GetTcpTable或者AllocateAndGetTcpTableFromStack來查詢。這些API都是通過調(diào)用NtDeviceIoControlFile這個NativeAPI來進入內(nèi)核查詢信息的,如果在內(nèi)核用SSDT Hook來掛鉤此函數(shù),從而隱藏特定的IP、端口信息的話,那么在應(yīng)用層,常規(guī)的查詢方法就查不到隱藏的端口了。
本文通過直接向設(shè)備對象\Device\Tcp發(fā)送IOCTL Code=IOCTL_TCP_QUERY_INFORMATION_EX的命令,直接獲取進程,端口信息。本文也同時實現(xiàn)了UDP端口的查詢。
具體請參考下面的代碼,使用WinDDK 6001.18001編譯。
閱讀全文
posted @
2010-07-09 18:28 水 閱讀(5999) |
評論 (3) 編輯
glib庫中的哈希函數(shù)和比較函數(shù)
摘要: 最近在項目中需要用到哈希表,要以ip地址構(gòu)造哈希函數(shù)和比較函數(shù)。就去網(wǎng)上找了下相關(guān)的資料,看了下glib中哈希表中的實現(xiàn)方式,雖然最終沒用這個,但既然找了就順便記錄下來,方便查閱。
哈希表是一種提供key-value訪問的數(shù)據(jù)結(jié)構(gòu),通過指定的key值可以快速的訪問到與它相關(guān)聯(lián)的value值。hash表的一種典型用法就是字典,通過單詞的首字母能夠快速的找到單詞。關(guān)于哈希表的詳細介紹請查閱數(shù)據(jù)結(jié)構(gòu)的相關(guān)書籍,我這里只介紹glib庫中哈希表的哈希函數(shù)和比較函數(shù)。
閱讀全文
posted @
2010-07-06 17:43 水 閱讀(3842) |
評論 (1) 編輯
用ZwQueryVirtualMemory枚舉進程模塊
摘要: 枚舉進程模塊通常可以使用諸如:CreateToolhelp32Snapshot,Module32First,Module32Next 等"Tool Help Functions"接口來實現(xiàn), 并且這也是最通用的方法(從Win95就開始支持了), 但是今天我們要介紹的是ntdll.dll導(dǎo)出的未文檔化接口ZwQueryVirtualMemory,。相比前面所介紹的方法,該方法可以檢測出隱藏的模塊(類似IceSword)。
閱讀全文
posted @
2010-07-05 16:32 水 閱讀(9574) |
評論 (3) 編輯