本帖最后由 server 于 2025-5-24 13:17 编辑 创建原始套接字需要管理员权限。 使用的函数 就是: socket(); 具体参数你问问AI。 取出要绑定的 网卡 指定的 IP。 正常绑定即可,调用API : bind(s,IPaddr,len); 非常简单的。 这个时候你调用 返回实际长度 = recv(s,缓冲区指针,缓冲区长度,标志)得到的是原始 报文。 你还要分析这些报文属于哪个进程。 总的来说,还是比较复杂的、 你可以把 SRSniffer 拖到 OD 里,看看他是如何实现的。 你如果技术有限, 你还可以使用全局钩子,写2个DLL,32、64位。 直接HOOK connect connectEX wsaconnect 这是针对客户端。 服务端接受连接是:accept acceptEX WSAaccetp 这3个函数 hook 有点麻烦。总结是:执行原函数后取错误值,在return 之前 置回错误值、 其他问题可以继续论坛提问,他们还是很厉害的。 |
server 发表于 2025-4-28 17:15 谢谢,有空我试试 |
server 发表于 2025-4-28 17:15 这个程序类似Process Monitor,主要是想采集某些进程的通讯IP以便判断是否有问题,做IP记录,剔除不必要的进程,微软的Process Monitor虽然也能达到这个效果,但是内存占用实在太大了,时间长就会因内存满而停止工作,用AI弄了个C++的虽然能用,但是c++的UI实在太烂了,不想花太多时间在UI上,本想把c++这段搬到火山PC上试试,发现有不少难点,对c++不够熟是个问题,慢慢研究看了。 |
让我猜猜实现过程。 1、创建原始套接字。 2、bind() 指定网卡。 3、此时你会源源不断的得到recv消息。 yes or no ?? |
|Archiver|手机版|小黑屋|递归火山软件开发平台
( 鄂ICP备18029190号 )
GMT+8, 2025-7-5 05:20 , Processed in 0.092071 second(s), 22 queries .
Powered by Discuz! X3.4
© 2001-2017 Comsenz Inc.