易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下sniffer抓包程序程序的实现

 Linux下Sniffer程序的实现

作者:Gianluca Insolvibile
整理:Seal(永远的FLASH)
日期:2004-11-05

嗅探——Sniffer技术是网络安全领域里一项非常重要的技术!对于“Hacker”来说,他们可以以非常隐蔽的方式得到网络中传输的大量的敏感信息,如Telnet,ftp帐号和密码等等明文传送的信息!与主动扫描相比,嗅探的行为更加难以被察觉,操作起来也不是很复杂!对于网络管理人员来说,可以利用嗅探技术对网络活动进行监控,并及时发现各种攻击行为!
在这篇文章里,我们主要探讨在Linux下如何利用C语言来实现一个Sniffer!我们将假设所有的主机在一个局域网内。
    
首先,我们将简短的回顾一下一个普通的以太网卡是怎么工作的!(如果你对这方面的知识早已熟悉,那么你可以直接跳到下一段)来源于应用程序的IP报文被封装成以太网帧(这
是在以太网上传播的数据报文的名称),它是底层链路层报文上面的一层报文,包含有源地址
报文和一些需要用来传送至目标主机的信息。通常情况下,目的IP地址对应着一个6字节的目的以太网址(经常叫做MAC地址),它们之间通过ARP协议进行映射!就这样,包含着以太网帧的报文从源主机传输到目的主机,中间经过一些网络设备,如交换机,路由器等等,当然,因为我们的前提是主机在同一网内,所以我们的讨论不涉及以上这些网络设备!

     在链路层中并不存在路线的概念,换句话说,源主机发出的帧不会直接指向目的主机,
而是基于广播方式传播,网络中的所有网卡都能看到它的传输。每个网卡会检查帧开始的6个字节(目的主机的MAC地址),但是只有一个网卡会发现自己的地址和其相符合,然后它接收这个帧,这个帧会被网络驱动程序分解,原来的IP报文将通过网络协议栈传送至接收的应用程序!

更准确的说,网络驱动程序会检查帧中报文头部的协议标识,以确定接收数据的上层协
议!大多数情况下,上层是IP协议,所以接收机制将去掉IP报文头部,然后把剩下的传送
至UDP或者TCP接收机制!这些协议,将把报文送到socket-handling机制,它将最后把报
文数据变成应用程序可接收的方式发送出去。在这个过程中,报文将失去所有的和其有关的
网络信息,比如源地址(IP和MAC),端口号,IP选择,TCP参数等等!所以如果目的主机没
有一个包含正确参数的打开端口,那么这个报文将被丢弃而且永远不会被送到应用层去


相关文档:

嵌入式Linux开发简介(一)

        在过去的十年中,嵌入式系统的开发发生了很大的变化。以前嵌入式设备往往是一个孤立的、资源有限的系统,它们追求的是在有限的价格上满足一定的功能性要求。通常它们采用那些功能并不强大的CPU,这也是开发者不得不尽可能地压缩嵌入式系统性能的原因。而今天人们对嵌入式设备在 ......

Linux文本模式下如何控制颜色

 用secureCRT或者其他一些客户端工具登陆到Linux可以看到它显示了一些颜色,这是怎么做到的呢?
linux文本终端可以利用一个简单而特殊的命令来控制颜色的显示:\033[<command>m, 其中command就是一个数字
如果是用echo来显示的话,必须指定-e参数,如
echo -e "\033[32mtest\033[0m"
其中数字0表示恢复之前 ......

linux调整系统时间 永久 z



    参考资料一、linux调整系统时区/时间的方法(tzselect命令)

1) 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai

用这个文件替换当前的/etc/localtime文件。

2) 修改/etc/sysconfig/clock文件,修改为:

ZONE="Asia/Shanghai"
[color=red]UTC=true[/color]
ARC=false ......

解决linux下too many file问题

工作中发现,在linux中搭建WEBLOGIC应用服务器的环境下,有时可能同时发布多个war包,而且每一个war包的文件数目很多,或者客户同时访问量比较大,此时WEBLOGIC就会报错,报错信息中包含“Too many open files”,例如:
java.io.FileNotFoundException: /home/weblogic/bea/user_projects/domains/lhyth/server ......

linux基本驱动和linux字符设备驱动

 先粘贴一个linux最简单的驱动,其实对于一个从2.4玩上来的人来说,驱动不复杂,比较不习惯的是那个makefile
驱动本身:
hello.c:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(vodi){
 &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号