求教,想拦截程序联网行为……
请问内核的或Nt系列的一些函数有哪些是用与联网的?:) 主要还是想知道,Google Chrome 使用哪个函数联网的0 0 NtAcceptConnectPort? 本帖最后由 腾袭 于 2010-9-12 10:46 编辑 l NtCreatePort()
l NtCreateWaitablePort()
l NtListenPort()
l NtConnectPort()
l NtAcceptConnectPort()
l NtCompleteConnectPort()
l NtRequestPort()
l NtRequestWaiReplyPort()
l NtReplyPort()
l NtReplyWaitReceivePort()
l NtReplyWaitReceivePortEx()。同上,但是带有超时控制
l NtReadRequestData()
l NtWriteRequestData()
l NtQueryInformationPort()
太多了……不知哪个函数的哪个变量是用来保存发送数据的- - MSDN没有说明吗?
内核的东西头痛啊. 表示我也用手机回帖了!
那些函数内核的导出函数貌似是Kf开头的,都没有文档化= = 那这个就头痛了..........会不会像ZW与NT系列那样,只是名称与导出库不同,与某个系列的函数的接口却一样? 不清楚啊~ 不清楚啊~
不过内核的联网那些导出函数和nt那些貌似不一样的… http://www.m5home.com/bbs/thread-4290-1-1.html
这个就可以达到目的 本帖最后由 腾袭 于 2010-9-13 20:19 编辑
回复 10# 364589886
貌似这两个贴没什么关系吧… 回复 11# 腾袭
你说的那些什么NtXXXXXPort什么的才是与网络任何关系都没有。。。完全是扯淡,八竿子都打不上关系,那是文件系统的MiniFilter驱动会用到的一些东西
至于你说我发的这个链接与你的帖子没关系,那我只能说你太菜了。。。。连NDIS,IMD都不晓得啥东西 本帖最后由 腾袭 于 2010-9-14 15:07 编辑
你联网的函数肯定是要先打开端口,CreatePort就是这样用的,你不信用google自己查…
= =
而且数据都通过那些连接网络,你可以全部hook掉/看你能不能联网…
其实你是没明白我问什么…我根本用不着那些… 网络联网行为 这个东西定义就很模糊 网络过滤可以 ndis什么的 回复 13# 腾袭
我再给你解释一遍:你说的那些函数,完全与网络通信没有任何关系,那些函数是用来进行进程间通信的,做文件系统的minifilter的内核与应用层通信,会用到这个。。。你以为带个Port就是网络通信的东西吗?多了去了。。。。这种东西
网络通信,一个DeviceIoControl足以。。。。。。我说到这里,你不要以为自己直接hook上DeviceIotrol就可以控制网络通信了,早着呢
你说的这个目的,我发的那个组件,就是一个NDIS的中间层驱动--------任何网络行为和网络数据的必经之地,没有任何绕过去的可能性。只不过你不懂的东西太多了而已
回去多看点书吧 补充句:那一系列NtXXXXPort函数,确实是可以用来实现网络通信的,但是这只是进程间通讯的一种方式, 并不是说Windows的网络通信就是用这些函数实现的。。。。我就不明白你为啥看到个“Port”就激动成这样,然后就认定这些函数是用于网络通信的 本帖最后由 腾袭 于 2010-9-15 22:21 编辑
回复 15# 364589886
汗,我都说过你没明白我的意思- -
我当然知道联网实际上是要过内核的= =
我只需要普通的拦截,不需要ndis,要是做得狠一点去挂一个网卡过滤驱动都可以……
我只是想问一般是调用nt中的什么函数联网就足够了- -:'( 这个。。。。。。。。真复杂。
有点晕。 回复 17# 腾袭
说到底你还是基础知识差太多!
第一:明确告诉你,MS不存在你想象中的那种函数;
第二:只要是与网络相关的,我发的那个组件就是万能的,不存在需不需要的问题。莫说你只是要获取一个联网通知,即使你要获取所有程序的任意时刻的网络行为,或者修改这些网络行为,也不是什么难事 回复 17# 腾袭
还有,看你提到什么“要是做得狠一点去挂一个网卡过滤驱动都可以”。。。。你知道什么是网卡过滤?说的轻巧!
我发的那个就是你所谓的“网卡过滤”,不过并不是如你所说的“挂上去”的;
其次,你所谓的“网卡过滤驱动”正式名字就叫NDIS中间层驱动,英文缩写就是IMD(Intermedia Driver),也就是我发的那个东西。
纠正一点:你的印象中这种驱动好像就是过滤网卡的,事实是:IMD驱动位于协议驱动与端口驱动之间,可以同时对网卡和传输层协议(如TCP/IP协议栈)产生任何你需要的影响,包括获取联网通知,或者拦截联网行为,或者抓取网络数据,再或者对这些数据和行为修改成任意你想要的 回复 20# 364589886
我没说驱动就是过滤网卡的,我承认我的说法是有问题,你也不用来挑毛病吧 = = 本帖最后由 腾袭 于 2010-9-16 23:42 编辑
回复 19# 364589886
存在的,你不要否认,像Ring3 ws2_32.dll 中的send之类的,我就是要那种函数 = =你否认只是你和我想的方向不同,都说你没理解我的问题了- -
好吧我的说法是有问题,我服你了~:) Nt**中貌似确实没有函数是用来联网的,至少我没看到WRK中有关于联网的内核函数。 回复 23# Tesla.Angela
其实我是想知道 Google Chrome 使用哪个函数联网 = = 本帖最后由 Tesla.Angela 于 2010-9-17 12:50 编辑
回复Tesla.Angela
其实我是想知道 Google Chrome 使用哪个函数联网 = =
腾袭 发表于 2010-9-17 12:44 http://www.m5home.com/bbs/images/common/back.gif
这次我郁闷了。。。
chrome调用ws2_32.dll联网,ws2_32.dll可能直接和网络驱动进行通信。。。 本帖最后由 Tesla.Angela 于 2010-9-17 12:52 编辑
也就是说ws2_32.dll的核心功能和ntosxxxx.exe无关,就像ntosxxxx.exe没有关于控制游戏手柄的内容,但我们又能控制游戏手柄一样。
。。。
我自己都不知道我在说什么了。。。 回复 26# Tesla.Angela
那我在继续说一下MS自带的socket库是如何联网的吧
HANDLE hDevice=CreateFile("\\\\.\\Tcpip"................);
BOOLEAN ret=DeviceIoControl(hDevice,CTL_CODE,...............................)
这个CTL_CODE就是具体的操作码了,这个就多了,不是一下可以说的完的。但总之,所有的网络通信都是这么完成的,不管是建立连接,断开连接,还是发送接收数据,都是这么做的。 回复Tesla.Angela
那我在继续说一下MS自带的socket库是如何联网的吧
HANDLE hDevice=Creat ...
364589886 发表于 2010-9-17 15:13 http://www.m5home.com/bbs/images/common/back.gif
你这么一说,我想起了看过的一篇有关串口的文章,里面说到,“WINDOWS将硬件抽象成了文件,对于硬件的读写就像文件操作一般,使用CreateFile/ReadFile/WriteFile。”
而实际上,读写串口也确实是用CreateFile "\\.\COM1"这样的方式完成的,尽管它是硬件。
WINDOWS抽象得非常好,统一接口了。
对于接口的定制,是非常不容易的。 现在从你的例子里看,连网络通讯都抽象成了文件了。。。。。 现在从你的例子里看,连网络通讯都抽象成了文件了。。。。。 回复 25# Tesla.Angela
不过,Chrome不用send和recv啊 = =
没找到,拦截不到啊 回复 29# 马大哈
网络通讯本身利用的就是与网卡的通信吧,也就是和硬件通讯,不知说得对不对
页:
[1]
2