腾袭 发表于 2010-9-11 19:05:34

求教,想拦截程序联网行为……

请问内核的或Nt系列的一些函数有哪些是用与联网的?:)

腾袭 发表于 2010-9-11 19:38:35

主要还是想知道,Google Chrome 使用哪个函数联网的0 0

Tesla.Angela 发表于 2010-9-12 09:55:02

NtAcceptConnectPort?

腾袭 发表于 2010-9-12 10:39:51

本帖最后由 腾袭 于 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()

太多了……不知哪个函数的哪个变量是用来保存发送数据的- -

马大哈 发表于 2010-9-13 17:30:26

MSDN没有说明吗?

内核的东西头痛啊.

腾袭 发表于 2010-9-13 18:00:45

表示我也用手机回帖了!

那些函数内核的导出函数貌似是Kf开头的,都没有文档化= =

马大哈 发表于 2010-9-13 19:29:59

那这个就头痛了..........会不会像ZW与NT系列那样,只是名称与导出库不同,与某个系列的函数的接口却一样?

腾袭 发表于 2010-9-13 20:09:30

不清楚啊~

腾袭 发表于 2010-9-13 20:11:47

不清楚啊~
不过内核的联网那些导出函数和nt那些貌似不一样的…

364589886 发表于 2010-9-13 20:12:01

http://www.m5home.com/bbs/thread-4290-1-1.html
这个就可以达到目的

腾袭 发表于 2010-9-13 20:15:44

本帖最后由 腾袭 于 2010-9-13 20:19 编辑

回复 10# 364589886


貌似这两个贴没什么关系吧…

364589886 发表于 2010-9-14 12:49:51

回复 11# 腾袭


    你说的那些什么NtXXXXXPort什么的才是与网络任何关系都没有。。。完全是扯淡,八竿子都打不上关系,那是文件系统的MiniFilter驱动会用到的一些东西



至于你说我发的这个链接与你的帖子没关系,那我只能说你太菜了。。。。连NDIS,IMD都不晓得啥东西

腾袭 发表于 2010-9-14 15:04:01

本帖最后由 腾袭 于 2010-9-14 15:07 编辑

你联网的函数肯定是要先打开端口,CreatePort就是这样用的,你不信用google自己查…

= =
而且数据都通过那些连接网络,你可以全部hook掉/看你能不能联网…


其实你是没明白我问什么…我根本用不着那些…

jiedengye 发表于 2010-9-14 15:15:04

网络联网行为 这个东西定义就很模糊 网络过滤可以 ndis什么的

364589886 发表于 2010-9-14 21:32:25

回复 13# 腾袭


    我再给你解释一遍:你说的那些函数,完全与网络通信没有任何关系,那些函数是用来进行进程间通信的,做文件系统的minifilter的内核与应用层通信,会用到这个。。。你以为带个Port就是网络通信的东西吗?多了去了。。。。这种东西
   网络通信,一个DeviceIoControl足以。。。。。。我说到这里,你不要以为自己直接hook上DeviceIotrol就可以控制网络通信了,早着呢
   你说的这个目的,我发的那个组件,就是一个NDIS的中间层驱动--------任何网络行为和网络数据的必经之地,没有任何绕过去的可能性。只不过你不懂的东西太多了而已

      回去多看点书吧

364589886 发表于 2010-9-14 21:48:41

补充句:那一系列NtXXXXPort函数,确实是可以用来实现网络通信的,但是这只是进程间通讯的一种方式, 并不是说Windows的网络通信就是用这些函数实现的。。。。我就不明白你为啥看到个“Port”就激动成这样,然后就认定这些函数是用于网络通信的

腾袭 发表于 2010-9-15 22:19:43

本帖最后由 腾袭 于 2010-9-15 22:21 编辑

回复 15# 364589886


    汗,我都说过你没明白我的意思- -
我当然知道联网实际上是要过内核的= =
我只需要普通的拦截,不需要ndis,要是做得狠一点去挂一个网卡过滤驱动都可以……

我只是想问一般是调用nt中的什么函数联网就足够了- -:'(

马大哈 发表于 2010-9-16 10:36:15

这个。。。。。。。。真复杂。

有点晕。

364589886 发表于 2010-9-16 12:25:20

回复 17# 腾袭

    说到底你还是基础知识差太多!
   第一:明确告诉你,MS不存在你想象中的那种函数;
   第二:只要是与网络相关的,我发的那个组件就是万能的,不存在需不需要的问题。莫说你只是要获取一个联网通知,即使你要获取所有程序的任意时刻的网络行为,或者修改这些网络行为,也不是什么难事

364589886 发表于 2010-9-16 12:36:41

回复 17# 腾袭

还有,看你提到什么“要是做得狠一点去挂一个网卡过滤驱动都可以”。。。。你知道什么是网卡过滤?说的轻巧!
我发的那个就是你所谓的“网卡过滤”,不过并不是如你所说的“挂上去”的;
其次,你所谓的“网卡过滤驱动”正式名字就叫NDIS中间层驱动,英文缩写就是IMD(Intermedia Driver),也就是我发的那个东西。

纠正一点:你的印象中这种驱动好像就是过滤网卡的,事实是:IMD驱动位于协议驱动与端口驱动之间,可以同时对网卡和传输层协议(如TCP/IP协议栈)产生任何你需要的影响,包括获取联网通知,或者拦截联网行为,或者抓取网络数据,再或者对这些数据和行为修改成任意你想要的

腾袭 发表于 2010-9-16 23:38:40

回复 20# 364589886


    我没说驱动就是过滤网卡的,我承认我的说法是有问题,你也不用来挑毛病吧 = =

腾袭 发表于 2010-9-16 23:41:11

本帖最后由 腾袭 于 2010-9-16 23:42 编辑

回复 19# 364589886

存在的,你不要否认,像Ring3 ws2_32.dll 中的send之类的,我就是要那种函数 = =你否认只是你和我想的方向不同,都说你没理解我的问题了- -
好吧我的说法是有问题,我服你了~:)

Tesla.Angela 发表于 2010-9-17 12:16:00

Nt**中貌似确实没有函数是用来联网的,至少我没看到WRK中有关于联网的内核函数。

腾袭 发表于 2010-9-17 12:44:53

回复 23# Tesla.Angela


    其实我是想知道 Google Chrome 使用哪个函数联网 = =

Tesla.Angela 发表于 2010-9-17 12:47:31

本帖最后由 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:49:45

本帖最后由 Tesla.Angela 于 2010-9-17 12:52 编辑

也就是说ws2_32.dll的核心功能和ntosxxxx.exe无关,就像ntosxxxx.exe没有关于控制游戏手柄的内容,但我们又能控制游戏手柄一样。
。。。
我自己都不知道我在说什么了。。。

364589886 发表于 2010-9-17 15:13:24

回复 26# Tesla.Angela


    那我在继续说一下MS自带的socket库是如何联网的吧
   HANDLE hDevice=CreateFile("\\\\.\\Tcpip"................);
   BOOLEAN ret=DeviceIoControl(hDevice,CTL_CODE,...............................)

    这个CTL_CODE就是具体的操作码了,这个就多了,不是一下可以说的完的。但总之,所有的网络通信都是这么完成的,不管是建立连接,断开连接,还是发送接收数据,都是这么做的。

马大哈 发表于 2010-9-17 17:26:17

回复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抽象得非常好,统一接口了。

对于接口的定制,是非常不容易的。

马大哈 发表于 2010-9-17 17:31:07

现在从你的例子里看,连网络通讯都抽象成了文件了。。。。。

马大哈 发表于 2010-9-17 18:25:06

现在从你的例子里看,连网络通讯都抽象成了文件了。。。。。

腾袭 发表于 2010-9-17 19:38:12

回复 25# Tesla.Angela


    不过,Chrome不用send和recv啊 = =
没找到,拦截不到啊

腾袭 发表于 2010-9-17 19:39:36

回复 29# 马大哈


    网络通讯本身利用的就是与网卡的通信吧,也就是和硬件通讯,不知说得对不对
页: [1] 2
查看完整版本: 求教,想拦截程序联网行为……