sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接...
分类:
编程语言 时间:
2015-08-20 12:06:32
阅读次数:
120
早就学过了套接字编程,但是原始套接字还没用过。最近听了网络安全老师的课,心血来潮,写了个抓包程序Demo,把代码分享给大家,感兴趣的可以看看。引用一句网络安全老师的话:“你们要本着技术的心态去实践,哎,一部分人,写着写着就成黑客了”。
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#inc...
Linux raw socket==========================================1. 为什么要详细了解raw socket呢??其实很早以前就对原始套接字有了一定的了解,那时候还做过一个小的抓包程序,当时以为对原始套接字很熟悉了,但是最近在看nmap的时候被其中的一句话给整迷糊了。
?在《Nmap Network Discovery III》的SYN scan章...
分类:
系统相关 时间:
2015-05-11 09:09:58
阅读次数:
421
1. 帧注入 对于以太网帧和Raw Socket的介绍可参考之前的一篇博文利用Raw Socket进行以太网帧嗅探。帧注入的特点:
可以将原数据格式的包注入到网络中。
在模拟网络应答方面很强大。
原始套接字包结构具有不可延展性。 随机注入
如果你可以随机注入数据到网络上的话,你就可以向网络上发送任何数据。^_^2. 代码实验 进入python运行环境,需要加上root权限。(sudo...
分类:
编程语言 时间:
2015-05-09 11:48:12
阅读次数:
309
概述
通过《原始套接字实例:发送 UDP 数据包》的学习,我们组 UDP 数据包时常考虑字节流顺序、校验和计算等问题,有时候会比较繁琐,那么,有没有一种更简单的方法呢?答案是:借助 libnet
函数库。
libnet 是一个小型的接口函数库,主要用 C 语言写成,提供了低层网络数据包的构造、处理和发送功能。
libnet 的开发目的是:建立一个简单统...
分类:
Web程序 时间:
2015-04-22 11:51:32
阅读次数:
256
一、网络应用层编程
1、Linux网络编程01——网络协议入门
2、Linux网络编程02——无连接和面向连接的区别
3、Linux网络编程03——字节序和地址转换
4、Linux网络编程04——套接字
5、Linux网络编程05——C/S与B/S架构的区别
6、Linux网络编程06——UDP协议编程
7、Linux网络编程07——广播(即将更新)
8、Linux网络编程08...
分类:
系统相关 时间:
2015-04-22 11:46:10
阅读次数:
166
01、Linux网络编程1——网络协议入门
02、Linux网络编程2——无连接和面向连接协议的区别
03、Linux网络编程3——编程准备:字节序、地址转换
04、Linux网络编程4——UDP编程
05、Linux网络编程5——广播
06、Linux网络编程7——多播
08、Linux网络编程8——TCP编程
09、Linux网络编程9——并发服务器
1...
分类:
系统相关 时间:
2015-04-14 18:05:37
阅读次数:
245
概述
通过《原始套接字实例:发送 UDP 数据包》的学习,我们组 UDP 数据包时常考虑字节流顺序、校验和计算等问题,有时候会比较繁琐,那么,有没有一种更简单的方法呢?答案是:借助 libnet
函数库。
libnet 是一个小型的接口函数库,主要用 C 语言写成,提供了低层网络数据包的构造、处理和发送功能。
libnet 的开发目的是:建立一个简单统一的网络编程接口以屏...
分类:
Web程序 时间:
2015-04-12 21:08:54
阅读次数:
217
如果 A (192.168.1.1 )向 B (192.168.1.2 )发送一个数据包,那么需要的条件有 ip、port、使用的协议(TCP/UDP)之外还需要 MAC 地址,因为在以太网数据包中 MAC 地址是必须要有的。那么怎样才能知道对方的 MAC 地址?答案是:它通过 ARP 协议来获取对方的 MAC 地址。
ARP(Address Resolution Protocol,地址...
分类:
系统相关 时间:
2015-04-07 19:41:29
阅读次数:
298