摘要: 在應(yīng)用層,枚舉進(jìn)程及其通信端口一般可以用iphlpapi.dll中提供的函數(shù)來獲取。如獲取Tcp連接,則調(diào)用GetTcpTable或者AllocateAndGetTcpTableFromStack來查詢。這些API都是通過調(diào)用NtDeviceIoControlFile這個(gè)NativeAPI來進(jìn)入內(nèi)核查詢信息的,如果在內(nèi)核用SSDT Hook來掛鉤此函數(shù),從而隱藏特定的IP、端口信息的話,那么在應(yīng)用層,常規(guī)的查詢方法就查不到隱藏的端口了。
本文通過直接向設(shè)備對(duì)象\Device\Tcp發(fā)送IOCTL Code=IOCTL_TCP_QUERY_INFORMATION_EX的命令,直接獲取進(jìn)程,端口信息。本文也同時(shí)實(shí)現(xiàn)了UDP端口的查詢。
具體請(qǐng)參考下面的代碼,使用WinDDK 6001.18001編譯。
閱讀全文