当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 作者:kf_701 写作时间:2005/4 Email:kf_701@21cn.com转载请保留原作者信息,谢谢。
 

 

 ·hacker成长的代码之路:扫描(2)    »显示摘要«
    摘要:作者:kf_701 写作时间:2005/4 email:kf_701@21cn.com 转载请保留原作者信息,谢谢。要求的专业知识:    一:    精通osi参考模型,精通网络五层:物理层,数据链路层,网络层,传输层,应用层。        精通每一层的协议,数据报格式。精通......
 ·课堂上的linux阅读清单    »显示摘要«
    摘要:joe ruffolo和ron terry一直致力于推广开源和linux,为此他们一直与学校保持着密切的联系,为了使学校的学生能够深入了解开源,了解linux joe特意为学生们列出了一份阅读清单。笔者看了一下这些链接不是一些书,而是一些关于samba, openldap的手册以及开源项目,内容都比较使用,大家无妨选择有兴趣的内容浏览一下。清单如下:joe ruffolo和ron terr......


hacker成长的代码之路:嗅探(1)
作者:kf_701 写作时间:2005/4 email:kf_701@21cn.com

转载请保留原作者信息,谢谢.

要求的专业知识: 【程序编程相关:安装imap服务器

【推荐阅读:配置Linux网关和安装ipchains

    一:    精通osi参考模型,精通网络五层:物理层,数据链路层,网络层,传 【扩展信息:安装DNS服务器

        输层,应用层.精通每一层的协议,数据报格式.精通网络拓扑结构,

        第一层,第二层,第三层的网络互联,数据的转发与路由等.

    二:    精通c语言程序设计,unix/linux程序设计,网络程序设计.熟悉

        unix/linux系统操作,熟悉著名服务的基本配置,特性及使用的端口

        号.熟悉经典网络命令的使用,如:netstat,ping,traceroute,

        netcat,arp等.

    三:    精通标准sql语言,熟悉流行的数据库使用,如:oracle,mysql等.

        掌握数据库与web语言的结合使用.

  sniffer,我想大家都听说过,不过是截获数据报而已了.这样的事情多是发生在局域

网内.因此我们要完全明白内网的工作原理.

  由于写这个文章的时候,用的多的是以太网,因此我们的实验也在以太网环境里完成.

  首先要知道是的局域网的互联方式,目前使用的有第一层(物理层)的互联,主要使用

转发器,常用的转发器就是集线器了,也就是我们常称的hub,用hub互联的网络是一个总

线结构的网络,在总线结构的网络里,数据是广播形式的传送的.也就是两台主机间的通

信信息,其它的主机也可以收到,不过网络设备检查到目标物理地址并非是自己,便丢掉

这个数据包.但必境是收到了.

  我们用程序把这些数据报全部复制一份保存下来,就是所谓的sniffer了.还要做的一

件事就是把网卡设为混杂模式(linux里面可用命令#ifconfig ethx promisc),我们

将在程序里自己完成.

  物理层互联的局域网称为共享式局域网.

  但现在不少的局域网是在第二层(数据链路层)互联的,使用的网络设备多是网桥,最

出名的网桥叫交换机,想必你也听说过了.这样联成的局域网叫交换式局域网.在这样的

网内,数据不再是广播了.

  那我们如何才能sniffer呢?也就是如何让别人的数据还能发到我们的机器上的网络设

备上来呢?问题出来了,答案是arp欺骗.留作后续.

  进入我们的主题,如何写程序把数据报从数据链路层copy过来.

  unix里常用的方法是:bsd的bpf(分组过滤器),svr的dlpi(数据链路提供者接口),

linux的sock_packet接口.

  如果你没有听说过开放源代码,那么你可能没有必要再读下去了.我可不想去重复已经

完成的工作.

  libpcap,一个公开可得源码的截获函数库,它在三种接口上都可以使用.因此我们将

使用这个函数库来完成我们的程序.

  53行,打开一个网络设备用来嗅探.

  59-64行,加入一条过滤规则,这里是只截udp数据报.

  74行,返回一个数据报.

  我们用data_print函数分析打印出ip报头的源ip与目的ip,udp报头中的源端口与目

标端口.

     1  /* author  :    kf_701

     2   * mtime   :    2005


...   下一页
 ·当root口令被忘记的时候.....    »显示摘要«
    摘要:当root口令被忘记的时候,可以把root口令设为空。设置空的方法就是使用lilo/grub启动linux时作相关的操作来修改,如下:一.lilo1.在出现lilo:提示时键入 linux single画面显示 lilo : linux single2.回车可直接进入linux命令行3. #vi /etc/shadow将第一行,即以root 开头的一行中 ,root:后和下一个“:”前的内容删除。......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE