自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 编程小结1:交换两个数的数值

在C语言编程章节中,交换两个数的数值是一个经典的话题。但是仅仅的就交换连个数的值还是有很多值得学习的细节和技巧。先设定一个开始:#include<stdio.h>void change_1(int,int);void change_2(int*,int*);void change_3(int *,int*);void change_4(int *,int *);int main(int argc,char **argv){ int a=3,b=4; //change.

2021-04-06 21:39:25 1006

原创 网络安全编程心得——大学篇

开设这个专栏,不是为了炫耀技术,仅仅是因为舍不得。这种舍不得来自于自己曾经的付出,付出就会倾注精力和时间。在读研期间,研究内核、操作系统、网络协议,倾注了自己大量的心血。可惜,最后自己选择的却是和这些不相关的工作,不得不说这是一种遗憾。本人一般211研究生毕业,不知名、不是大牛,很可惜的是一路走来没有高人指点迷津,学习中走了很多的弯,在不断的总结和反思中感觉应该和大家分享一下这些走...

2019-08-23 17:10:50 2758 3

原创 网络安全编程——网络接口信息获取(1)

一、网络接口信息获取1.1 获取网络接口信息本代码来源于《网络安全开发包详解》部分地方做了修改。编译方式:(懒人编译法)gcc 1_1.c-lpcap生成a.out可执行文件使用命令:./a.out执行。与书上不同的地方:1)用inet_ntoa()函数需要使用头文件<arpa/int.h>。如果不加入该头文件,编译过程中会发现该函数未定义的警告。...

2019-08-20 09:24:09 916

原创 网络安全开发系列--笔记(1)

网络安全技术1.数据包捕获技术操作系统提供的数据包捕获技术主要存在三种:SOCK_PACKET类型套接口:利用操作系统提供的编程接口来实现数据链路提供者接口DLPI:伯克利数据包过滤(BPF):高效数据包捕获技术,工作操作系统内核层2.网络协议分析三个内容         捕获数据包:使用专业的捕获数据包的开发包。例如Libpcap和Winpcap         过滤...

2018-11-05 16:56:08 1639

原创 系统安全编程之文件操作(1)

参考来源《WINDOWS黑客技术揭秘与攻防》文件操作技术1.c语言标准库函数进行文件操作         打开文件:fopen关闭文件:fclose读取文件:fgetc、fread、fscan写入文件:fputc、fwrite、fprintf文件定位:rewind、fseek2.windowsAPI操作文件         创建文件:CreatFile   ...

2018-10-23 15:54:24 460

原创 centos 下删除启动核

linux系统下伴随升级可能存在多个启动核或者因为系统兼容性问题、安装出错出现一些启动核不能正常使用。在centos下删除这些启动核如下步骤进行:1 查看当前系统中存在的启动核:[zhangyu@bogon ~]$ rpm -q kernelkernel-3.10.0-327.el7.x86_64kernel-3.10.0-514.16.1.el7.x86_64kernel-3

2017-11-10 09:10:57 322

原创 ipv6和ipv4(1)

20174年7月5日参考资料:《Linux高性能服务器编程》        linux-2.6.32源代码《TCP/IP详解》(卷一)         网络编程最重要的一个环节就是要理清TCP/IP传输协议栈。而协议栈的学习自然的少不了最关键的一个环节就是协议的分析。首先是IPv4的首部信息:如果涉及到编程在linux下/usr/include/netinet/ip

2017-07-05 15:53:43 2147

原创 选择排序---堆排序

因为很多书都介绍了原理,这里就不过多阐述这里直接贴上代码再说。测试代码://#include"b_heapsort.h"#include"s_heapsort.h"int main(int argc,char **argv){ int data[8]={2,5,3,4,7,8,9,1,}; int i; for(i=0;i<8;i++) printf("%d ",data[

2017-06-28 08:45:40 240

原创 数据结构之---顺序表

源代码:#include#include#define MAXLINE 1000typedef struct{ int list[MAXLINE]; int size;}SeqList;void ListInit(SeqList *);//初始化顺序表int ListLength(SeqList L);//求顺序表元素个数int ListInert(SeqList*,int

2017-05-11 12:43:20 298

原创 linux 网络编程---域名解析

引入我的代码片:#include#include#include#include#include#includeint main(int argc,char **argv){ struct hostent *host; char **p; char src[32]; if(argc<2) { printf("Pleasee intput addr:(like w

2017-05-09 15:42:12 224

原创 排序算法--插入排序(直接插入排序)

引入我的代码片:#include#includevoid dire_sort(int *,int);int main(int argc,char **argv){ unsigned int data[]={3,2,13,45,67,8,32,12,6,5}; int num=10; int i,j; dire_sort(data,num); }/*直接插入排序

2017-05-09 12:58:52 232

原创 linux下常用命令总结(文件和目录)

该部分内容大多来自《鸟哥的私房菜》但是因为涉及的内容繁杂且多样,本内容主要针对常用命令和参数进行总结。主要目的是为了在使用过程中进行查阅。目录和路径cd、pwd、mkdir、rmdircd切换目录.当前目录;..上级目录;-上一个工作目录;~当前用户主文件夹;~count account用户主文件夹pwd

2017-05-04 16:17:28 264

原创 Git的安装和使用(1)

1 linux上安装Git首先使用git命名查看是否安装:上课可以看出,系统没有安装git(本系统使用的是Ubuntu)所以可以使用apt-get install git,如果是centos或者Redhat则可以使用yum install git。如下图所示:2 创建版本库版本库可以当做一个存放文件的仓库,这里可以当做一个被git管理的文件夹,这文件夹下的文件都由Git管理

2017-04-18 11:30:52 246

原创 libpcap编程(7)最后一篇

前面针对libpcap的编程可信部分已经记录的差不多了,这里进行最后一个部分的总结。协议分析,主要是以一个以太网协议作为因子,后期别的协议采用同样的方式。层层深入分析。源代码程序:#include#include#include#include#include#include#include#include#include#includeint

2017-04-13 16:11:38 317

原创 Libpcap编程(6)

上篇文章中针对libpcap进行了理论总结,以及部分函数和结构的介绍,这里就整个数据包抓包由浅到深进行分析。获取网络接口名字和掩码信息#include#include#include//in_addr头文件int main(int argc,char **argv){ char error[PCAP_ERRBUF_SIZE];//#define PCAP_ERRBU

2017-04-13 09:24:24 493

原创 Libpcap编程(5)理论总结

前几篇文章分析和改写了libpcap编程的源代码,对libpcap有了一个初步的大致的了解。为了坚持一贯的理论与实际相结合的原则,这篇博文将进行一些理论性的总结和描述。 网络数据包捕获技术         操作系统提供的捕获机制主要有三种:SOCK_PACKET类型接口、DLPI、BPF。这里对这三种捕获技术简单介绍。  SOCK_PACKET:Linux套接字类型中提供的一种SO

2017-04-13 08:33:56 846

原创 libpcap编程<4>

在上面几篇文章里介绍了libpcap编程中的几个关键的地方,这里就编程的几个关键函数进行总结。pcap_looupdev() #include   char errbuf[PCAP_ERRBUF_SIZE];      char *pcap_lookupdev(char *errbuf);该函数用于查找可用的网络设备,返回可以被pcap_open_live()函数调用的网络设备

2017-04-12 14:40:48 487

原创 libcap编程(3)

第一篇博文里面有一点有遗漏就是使用libpcap库需要在编译程序的时候加上-lpcap

2017-04-11 16:19:21 1061

原创 libpcap编程(2)DPDK下的数据包捕获

DPDK和libpcap的结合最近阅读DPDK刚好阅读到libret_pdump库,该库类似于libpcap提供一个数据包捕获的框架,并在dpdp目录的app/pdump下提供了一个根据该库开发的数据包捕获程序。该库将Rx和Txmbufs的完整副本复制到新的mempool中,因为涉及到数据包的复制,会降低应用程序的性能,所以官方文档建议是用于调试使用。该库提供一系列API初始化数据包的捕获

2017-04-11 15:34:46 5045 1

原创 libpcap编程(1)

libpcap是访问操作系统提供的分组捕获机制的分组捕获函数库,与实现无关,《unix网络编程》(卷一)进行了简单的介绍,为了深入libpcap编程,这里准备由浅入深进行学习。一方面工具c语言编程一方面加深对网络的理解。对于libpcap的介绍可以去官方查看http://www.tcpdump.org/里有很详细的介绍。所有的plibcap库函数均是用pcap_开头,使用头文件就可以使用这

2017-04-10 16:54:37 632 1

原创 DPDK学习笔记<4>源代码分析(1)

源代码分析(1)helloworld源代码:/*- * BSD LICENSE * * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. * All rights reserved. * * Redistribution and use in source and bin

2017-04-10 11:31:01 2955

原创 DPDK学习笔记<3>样例学习

在上一个系列中已经介绍了DPDK的原理以及编译安装,这个部分开始进行DPDK样例程序的运行测试以及源代码分析。编译样例前的设置一旦创建了dpdk的目标环境目录(本系统为x86_64-native-linuxapp-gcc目录下)现在要做的就是设置软件编译需要设置的环境。RTE_SDK:指向DPDK的安装目录RTE_TARGET:指向DPDK的目标目标环境目录进入样例程序:cd

2017-04-10 11:06:14 6429

原创 DPDK学习笔记<2>DPDK安装部署

DPDK安装和部署下载和解压:(centos下sudo可能不能使用sudo如果不知道如何配置建议使用root)         创建DPDK目录:sudo mkdir /home/DPDK         进入DPDK目录:cd /home/DPDK/         下载稳定版16.11.1:sudo wget http://fast.dpdk.org/rel/dpdk-

2017-04-07 16:43:26 4167

原创 DPDK学习笔记<1>学习安排

学习安排在开始深入DPDK的时候我准备带着这样的几个问题。DPDK是干什么的?DPDK存在的优势是什么?缺点又是什么?DPDK做什么?接下来的工作是什么? DPDK是干什么的?         通过查阅相关资料对这个问题有了一个初步的认识,DPDK(Data Plane Development Kit)通过名字就可以看出来这个是一个基于数据平面的开发套件。主要就是为

2017-04-07 16:02:38 2062 1

原创 排序算法--冒泡排序

先贴上我的源代码:#includevoid fun(int m[],int n);static int m=-1;int main(int argc,char **argv){ int data[10]={2,3,4,8,7,6,5,9,21,10,}; fun(data,10); return 0;}void fun(int data[],int n)

2017-04-06 11:37:04 253

原创 ddos之icmp洪泛攻击源代码

声明:         该内容旨在分析网络攻击的存在形式,并不是为了鼓励大家使用文中的方式去攻击别人的计算机和网络。技术是为了造福人类的不是为了以破坏别人电脑谋取利益为出发点做违法的事情的。网络安全和文明是大家应该共同承担和维护的。         参考论文《高速复杂网络环境下异常流量检测技术研究》(解放军信息工程大学)         DDOS是指采用分布、协议的大规模Dos攻击方式

2017-04-05 18:21:09 6120

原创 网络体系结构(2)链路层

引言 TCP/IP协议族中最低层的就是链路层。链路层主要提供三个功能:接收和发送IP数据报;发送ARP请求和接收ARP应答;发送和接收RARP请求和应答。TCP/IP支持多种不同的链路层协议,至于具体采用什么样的协议则取决于硬件,目前使用的最多的就是以太网,所以也主要针对以太网进行说明。(这里要注意一点就是ARP和RARP是两种不同的协议,并且不是协同工作的。不要因为两个分别是将mac地址

2017-04-05 11:21:29 594

原创 网络体系结构分析(1) 整体介绍

网络体系结构(1)整体介绍引言         计算机是一个让我们吃惊的东西,但是伴随着计算机而诞生的网络却更加应该被我们大加赞赏。不同的厂商可以各自生产自己的操作系统,但是TCP/IP协议族的诞生却可以将这些不同的计算机连接起来并进行通信,最终达到全球互联,不得不说这是一件多么伟大的事情。乃至今天,互联网科技高速的发展,我们的生活越来越离不开网络所承载的服务。这一切,都和网络的发展不

2017-04-05 10:59:57 565

原创 mysql数据库(1)

mysql数据库安装操作系统:Ubuntu;内核版本:4.4.0安装过程:sudo apt-get install mysql-server//mysql服务器sudo apt-get install mysql-client //mysql客户端,如果不安装服务器智能登录远端mysql服务器sudo apt-get install libmysqlclient-d

2017-04-01 13:08:44 205

原创 进程间通信(信号)

linux系统进程间通信有很多种方式:较多使用的有信号,管道以及System VIPC。各种通信方式各有优缺点。这部分主要就进程间通信方式进行总结。1 信号。信号进行进程间通信方式有一点需要明确:信号只能通知,不能在进程间共享数据资源。也就是说信号仅仅是告诉你一下某个事情发生了。而我们的程序则可以对这个信号进行各种我们自定义或者默认的处理,更或者当做没有听见。那么既然是通知一件事情发生

2017-04-01 10:42:44 297

原创 linux操作系统网络数据流程(1)

前言这部分准备总结主机如何从 网卡抓取数据然后再将数据通过TCP/IP协议栈逐个向上传递的。不过在总结这部分的时候不再像教科书一样对各个数据结构进行补充,而是跳过数据结构部分直接动态的描述数据的流程和流向,部分地方可能会参考源代码。数据接收传统对数据的接收有两种方式一种采用轮询的方式,一种采用中断的方式。而为了提升数据传输的效率目前也提出了结合轮询和中断两种方式的结合体NAPI方式。

2017-04-01 08:37:59 835

原创 网卡数据捕获

这部分代码用于从链路层抓取数据并简单显示,目前为第一个版本,后期还会进一步完善。编译  gcc -o file file.c执行:./file -a eth0  |-b-a eth0:为将网卡etho设置为混杂模式-b 为轮询抓取数据。#include#include#include#include#include#include #include#

2017-03-31 17:50:08 1393

原创 Linux下库的概念

Linux下库的概念静态库和共享库          静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。注:静态库是在链接的时候复制到可执行文件中,则说明静态库是在文件执行前以嵌入的方式放置到可执行文件里面构成可执行文件的一部分。这样的好处是提高了程序的执行效率(速度

2017-03-20 14:39:01 443

原创 编程小结(2)

dup和dup2函数(作为文件重定向)int dup(int oldfd);int dup2(int oldfd, int newfd);#include int dup3(int oldfd, int newfd, int flags);#include            #include dup创建

2017-03-20 08:51:36 264

原创 vim使用(2)

vim的使用(2)上一个系列写了一些vim的基本使用情况,这部分写一些vim的高级应用。不过这部分的内容不是特别重要,在学习中可以在上一个系列的基础上已经掌握的情况下进一步使用的时候掌握。vim的多文件编辑在上一个博文中使用vim要在两个文件之间粘贴复制内容使用[n]yy和p是不行的。唯一可做的就是打开两个文件,然后使用鼠标勾选之后然后再粘贴复制。但是如果不是在图形界面,而又需

2017-03-18 15:01:33 320

原创 编程小结

该部分内容我打算做一个系列,并在主目录中记录相关条目并链接到相关的各个分支中(相当于目录结构)。并且会在部分的文章中写一些编程中的技巧以及编程中的注意事项。函数处理:strchr()、strrchr()

2017-03-17 15:23:58 379

原创 编程小结(1)

2017/3/17char *strchr(const char *s, int c);char *strrchr(const char *s, int c);#include 函数说明:strchr:查找字符串s中第一次出现字符c的位置,并返回该字符以及该字符之后所有的字符strrchr:查找字符串S中最后一次出现字符c的位置,同时

2017-03-17 15:17:10 328

原创 vim 使用(1)

vim的使用(1)1vim的模式:一般模式:打开vim的时候进入一般模式。可以执行粘贴、删除、复制文件数据(不能编辑数据)编辑模式:在一般模式下按如i、o、a、r(不区分大小写)进入,可以编辑文件内容。退出时按Esc进入一般模式。命令行模式:在一般模式下键入/、?、:这三个字符任意一个进入命令模式。在该模式下进行命令操作。2常用按键说明一般模式

2017-03-17 14:28:03 347

网络安全开发笔记(1)

记录网络安全编程过程中的分析和心得,提升网络安全编程能力。

2018-11-05

文件上传下载

这个小程序是学习unix环境编程所写的,目的是通过网络编程实现一个文件的上传(下载还没有实现)主程序分为客户端和服务器,UDP仅仅是增加部分功能,这里美欧实质性的作用。

2017-04-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除