论坛: 原创软件 标题: 想请问一些扫描器的编写问题! 复制本贴地址    
作者: figLAB [figlab]    论坛用户   登录
我是一个新手,在这方面。
最近分析了一下NMAP等之类的扫描器的代码,但是发现都是用到LIBPCAP的,或者要么就是自己写驱动。我想问一下,如果写一个简单的扫描器能否不用LIBPCAP也不写驱动,但是这个扫描器能做到自定义IP包的内容。
谢谢!
(注:不管是在*NIX或者MSWIN或者其它的操作系统都行:)

地主 发表时间: 11/12 09:22

回复: 286 [unique]   版主   登录
在Winnt/2000/xp/2003下可以用SOCK_RAW发自已定义的IP包。

B1层 发表时间: 11/12 09:36

回复: figLAB [figlab]   论坛用户   登录
你说的这个我也已经从本网中技术文章里看到了!
通过
socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
setsockopt(socket, IPPROTO_IP, IP_HDRINCL, ...);
sendto(...);
这个我已经试过了,可是用在TCP上总是出错!不知道这方法能用在IPPROTO_TCP上吗?!

还有就是,在*NIX下的方法....

B2层 发表时间: 11/12 11:38

回复: figLAB [figlab]   论坛用户   登录
再加一点吧!就是连MAC也可以修改,据说MSWIN2K以上的SOCK_RAW只能到IP头!有没有方法到以太头呢!?

B3层 发表时间: 11/12 11:44

回复: ricky [ricky]   版主   登录
到以太头不行,只有写驱动了

B4层 发表时间: 11/12 16:34

回复: figLAB [figlab]   论坛用户   登录
mswin是要SOCK_RAW了,那么*nix下的又有什么好方法吗?!

对了,怎么找不到本站写的那个扫描器的代码的!?是不是没有公开呢!?怎么才能获得!?

B5层 发表时间: 11/13 09:03

回复: TomyChen [quest]   版主   登录
  回复: figLAB [figlab]    论坛用户 回复  发送 
mswin是要SOCK_RAW了,那么*nix下的又有什么好方法吗?!

对了,怎么找不到本站写的那个扫描器的代码的!?是不是没有公开呢!?怎么才能获得!?

*nix下多数也用SOCK_RAW得多,但我见得更多的是pcap,毕竟已经做得很好了。
最近我也在想过于半开scanner的东东,多多指教

为什么你不想用libpcap?是因为想学习还是觉得他不够好?

B6层 发表时间: 11/13 10:47

回复: figLAB [figlab]   论坛用户   登录
呵,我也是刚开始研究而以,也想写个东东!
一起啦!呵呵:)
libpcap以前我用过来写侦听数据包的东东,不是不喜欢用,总觉得老用别人的不怎么好,所以就想听听看大家是不是还有什么好方法!
驱动嘛,也太麻烦的,加上我还没有认真地去写过,所以,呵呵,想找个折中的方法啦!
不过,看来,以后还是得写驱动了!

在扫描器这方面如果哪位有什么高见的话也希望多指教!谢谢!

B7层 发表时间: 11/13 12:55

回复: NetDemon [netdemon]   ADMIN   登录
引用:

mswin是要SOCK_RAW了,那么*nix下的又有什么好方法吗?!



真气人,socket本来就是UNIX上的东西,M$没花一分钱拿来改了用了,难道*UNIX会不能用SOCK_RAW么?

我个人认为用SOCK_RAW就够了


[此贴被 NetDemon(netdemon) 在 11月13日14时02分 编辑过]

B8层 发表时间: 11/13 14:08

回复: figLAB [figlab]   论坛用户   登录
呵,老大不要这样气吧!我所说的不是谁拿谁的用,而是实现上的方法,就拿同是M$吧,可是w2k之前的版本就不能用SOCK_RAW来实现嘛!我也不知道*NIX也能用SOCK_RAW来实现,所以,呵,消气~~~~

B9层 发表时间: 11/13 16:30

回复: 286 [unique]   版主   登录
TCP上只所以出错,是因为socket(AF_INET, SOCK_RAW, IPPROTO_UDP);的第三个参数上。我这里一切正常。
SOCK_RAW可以在NT4。0上用。
利用半开扫描优点是速度快。但缺点也很多。建议大家不要用。


B10层 发表时间: 11/14 10:48

回复: figLAB [figlab]   论坛用户   登录
想再请教一下各位:
linux内核自从2.2后就支持socket(PF_PACKET, SOCK_RAW, IPPROTO_RAW);
[详见:http://www.linuxjournal.com/article.php?sid=4659]
不知道在BSD下是否也支持!?
我在FreeBSD R5下找不到这个东东!不知道其内核是否支持!?

B11层 发表时间: 11/21 13:47

回复: NetDemon [netdemon]   ADMIN   登录
我日!
你知道Socket全名叫啥?叫BSD Scoket啊!!!
socket本身就是BSD上的东西。所有其他操作系统(包括system v UNIX、
linux)上的socket都是从BSD上移植过去的。移植的话当然会因为一些原因无法作到全部都支持,只能是一个子集,所以才有“linux内核自从2.2后就支持socket。。。。。。”这样的问题。freebsd,openbsd,netbsd等等所有现行BSD版本,都是在其版本只有0.x的时候就支持全部的socket的。

你这问题简直就是和问,"Windiows操作系统有图形界面吗?"一抹一样

B12层 发表时间: 11/21 14:54

回复: redor [redor]   论坛用户   登录
推荐使用X-SCAN-CN不错哦!

B13层 发表时间: 11/22 11:01

回复: figLAB [figlab]   论坛用户   登录
呵,老大,看来你还真的很来气也!我自认是初学不久,但是也不用这样吧!?

TO redor兄:久养X-SCAN-CN的大名了,不过我现在是想写扫描器而不是用,不过不知道网上是否有其源码!?这样可以读一读!

其实,我已经从书上找到了,linux下用pf_packet,bsd用bpf,svr4用dlpi!
不过也谢谢俩位了!

B14层 发表时间: 11/24 09:07

论坛: 原创软件

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号