自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(346)
  • 资源 (27)
  • 收藏
  • 关注

原创 【linux c开发】fork进程实例

#include #include #include #include #include void  main(){    pid_t pid;    pid = fork();    if(pid     {        perror("fork error!\n");        strerror(1);    }    el

2013-08-12 17:35:55 1104

原创 SMP与AMP-UMA与NUMA概念

NUMA架构在中大型系统上一直非常盛行,也是高性能的解决方案,在系统延迟方面表现都很优秀。Windows一向都没有在NUMA架构上有多少表现机会,AMD的多路系统大多也会用在UNIX/Linux上。Intel如期进入了NUMA架构的怀抱,英特尔最新的服务器处理器至强5500是一项重大的结构变革。与上一代至强处理器相比,至强5500采用了非一致性存储结构(NUMA non-unified memor

2013-08-12 17:26:57 4475

原创 gcc static静态编译选项提示错误修正(/usr/lib/ld: cannot find -lc)

用gcc静态编译C程序时显示出:/usr/lib/ld: cannot find -lc/usr/lib/ld: cannot find -lgcc_s/usr/lib/ld: cannot find -lm/usr/lib/ld: cannot find -lgcc_s的错误。主要问题出在静态编译时需要链接静态库,将动态库编译到文件中,去掉此参数是没问题。非静态编译时 l

2013-08-10 10:23:37 23690

原创 【协议分析】H323标准规范

1、H323,SIP等VOIP协议规范说明http://www.protocols.com/Protocols.com offers a comprehensive listing of data communications protocols, their functions in respect to the OSI model, the structure of the pro

2013-07-26 17:02:46 1788

原创 vim、ctags、cscope配置及使用

windows下流行的源码阅读软件是source insight,而linux则没有与其可匹敌图形化的源码阅读软件,现在日趋流行的eclipse开发软件,虽然可以较好的支持源码中符号之间相互跳转,但总体感觉不是十分强大和好用,可能因为eclipse是通过cdt插件的形式来支持c/c++项目,很多方面表现还有待提高。而且eclipse在终端下无法使用,而今天的主角vim+ctags+cscope可谓

2013-07-23 14:42:01 1676

原创 32位和64位平台锁大小比较

#include "pthread.h"#include "stdlib.h"#include "stdio.h"int main(){   printf("Mutex:%d\nSpin:%d\nRwLock:%d\n",sizeof(pthread_mutex_t),sizeof(pthread_spinlock_t),sizeof(pthread_rwlock_t));

2013-07-10 15:54:42 1096

原创 PF_Ring性能提升使用说明

pf_ring通过用户态、内核态共享内存达到提高包处理效率的目的。1、PF_Ring加载的3种模式,模式0和调用libpcap性能相同,模式1和模式2相当于0 coyp性能会提升,官网http://www.ntop.org/products/pf_ring/。As of PF_RING 4.1, when inserting the pf_ring module it is pos

2013-07-02 12:52:10 6896

原创 Makefile wildcard通配符使用方法。

在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...)。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符的

2013-06-22 12:11:24 2328

原创 linux JDK与Tomcat安装及错误解决方案

1.上传jdk-6u17-linux-i586.bin和apache-tomcat-6.0.20.tar.gz到/usr2.安装JDK$chmod a+x jdk-6u17-linux-i586.bin$ ./jdk-6u17-linux-i586.bin$ vi /etc/profile#添加如下export JAVA_HOME=/usr/jdk1.6.0_17exp

2013-06-01 00:42:00 1038

原创 防火墙开发硬件选型

网络设备最经常用到的,也是最重要的一个安全设备就是防火墙了。作为一款IT设备,无非两种选择方式。一种是购买品牌防火墙成品,另一种是自己DIY防火墙。两种方式各有自己的优劣,购买品牌防火墙最大的问题莫过于是投入较多的资金,却可以得到更多的后期维护。而自己 DIY防火墙的最大弊端就在于需要一个专业的人员来定制,还要投入更多的精力做后期的维护。    作为一个热血IT青年,自己DIY一个防火墙设

2013-05-22 13:07:35 3255

原创 【协议识别】H323协议数据流识别

H323信令子集H225和H245。H323是一个信令族,包含H225和H245等子集,工作模式有快慢之分。H225负责维护通道,H245负责能力协商1、H225:解析H225的connect连接可获取H245的数据流连接的IP地址和端口src->dst setup:发起呼叫,H225数据包中包含当前信令流的源目的IP地址和端口号。dst->src:callprocessing和ale

2013-05-19 18:33:22 5705

原创 【协议识别】Wireshark重要过滤条件

1、表示包含关系的数据流信息过滤tcp contains "youku.com"2、表示包含关系的Hex负载数据内容过滤udp[8:2]==53493、IP端口过滤ip.src == a.b.c.d and tcp.port==2345

2013-05-19 17:50:47 1293

原创 【协议识别】SIP协议解析数据流

1、发送报文中INVITE sip,通过解析c=IN IP4 127.0.0.1获取源IP地址,通过解析m=audio 5000 RTP/AVP 0获取源端口信息,从而关联数据流。报文内容如下:INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP 127.0.0.1:45298;branch=z9hG4bKrDQpyyaNWz;rport

2013-05-19 17:37:05 3431 3

原创 Linux 服务器SSH时乱码

Linux服务器乱码问题设置:     1.环境变量设置LANG="zh_CN.GB18030" //ssh乱码直接修改此处将此处加入.bash_profile中LANGUAGE="zh_CN.GB18030;zh_CN:zh:en_US.UTF-8:en_US.en"2.vim 设置设置termencoding为utf-8  vim   //根据termencodin

2013-05-13 15:30:27 815

原创 64位与32位linux c开发时默认字节对齐值

64位与32位linux c开发时默认字节对齐方式分别为8和4。1、64位机器sizeof的值为16struct A{char a;int b;int c;}2、32位机器sizeof的值为123、空间换时间如果在编程的时候要考虑节约空间的话,那么我们只需要假定结构的首地址是0,然后各个变量按照上面的原则进行排列即可,基本的原则就是把结构中的变量按照类型

2013-05-07 16:48:24 5488 2

原创 协议内容审计模块设计与开发

typedef struct {    ip地址等信息;}PACKET_S;typedef struct {    char *pPrivData[0];}RESULT_S;typedef int (*PARSE_FUNC)(PACKET_S *pPacket,RESULT_S *pResult);struct parse_map_tag{

2013-05-07 14:04:29 969

原创 Linux 查看64位还是32位系统

1. 从系统查看1.1 uname -a 命令[root@qs-dmm-rh2 ~]# uname -aLinux qs-dmm-rh2 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386 GNU/Linux [root@qs-xezf-db2 ~]# uname -aLinux qs-xezf

2013-05-06 16:47:57 754

原创 64位linux c语言开发注意事项

一、64位系统的优势?既然要采用64位系统,首先要知道64位系统的优势所在。对于技术人员来说,完全没有必要去看那些厂家拿出的厚厚的说明书、或者某个研究机构抛出的一堆的数字,64位系统的优势总结起来很简单:内存大、速度快!1、内存大与32位系统相比,64位系统的地址空间大大增大,达到了18PB,18PB究竟是多大呢?说出来有点吓人:4G内存的40亿倍!这么大的空间,不要说内存

2013-05-06 16:27:27 1113

原创 AC_Trie字符串搜索算法介绍

转载:http://www.cnblogs.com/dolphin0520/archive/2011/10/11/2207886.html                                             Trie树       Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。一.Trie树的原理

2013-05-03 10:48:47 1256

原创 模块-模块加载时参数设置

对于如何向模块传递参数,Linux kernel 提供了一个简单的框架。其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量。使用下面的宏时需要包含头文件。     通过宏module_param()定义一个模块参数:module_param(name, type, perm);name既是用户看到的参数名,又是模块内接受

2013-05-03 10:05:15 1337

原创 模块-内核模块加载命令modprobe使用注意事项

1、要想使用modprobe必须将ko模块文件拷贝到/lib/moudels/uname -r/kernel目录中,然后执行depmod -A否则无法使用modprobe加载模块。[root@localhost kernel]# cp fw.ko /lib/modules/2.6.18-164.el5/kernel/[root@localhost kernel]# depmod -A

2013-05-03 09:55:47 1804

原创 模块-模块开发(用户态和内核态通信-通过参数传递数据)

1、代码示例static struct file_operations cmd_fop = {    ioctl:            cmd_ioctl,};static int cmd_ioctl (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg){

2013-05-02 16:23:55 2965

原创 模块-kernel 模块编译(Makefile编写)

发现自己以前写的2.4的模块无法在2.6下面编译使用了,需要用新的Makefile才行。简单的说就像这个样子:

2013-04-22 16:23:11 1144

原创 Netfilter协议过滤功能

Netfilter中的5个钩子点:1]:NF_IP_PRE_ROUTING:刚刚进入网络层的数据包通过此点(刚刚进行完版本号,校验和等检测),源地址转换在此点进行;[2]:NF_IP_LOCAL_IN:经路由查找后,送往本机的通过此检查点,INPUT包过滤在此点进行;[3]:NF_IP_FORWARD:要转发的包通过此检测点,FORWORD包过滤在此点进行;[4]:NF_IP_PO

2013-04-22 16:18:04 1552

原创 netfilter按IP过滤报文

2.6版内核的网络协议栈较2.4版有所改变,比如sk_buff结构中去掉了nh联合体的定义。在2.6内核中我们如果要得到ip数据包的源节点地址,需要使用const struct iphdr *iph = ip_hdr(skb); ip_hdr的定义在linux/ip.h中定义。下面通过一个简单的例子介绍在2.6内核中如何在netfilter上挂载hook函数实现数据包的过滤。

2013-04-22 16:08:04 1519

原创 netfilter按端口过滤报文

1、程序如下:#include #include #include #include #include #include #include #include struct nf_hook_ops nfkiller;//static unsigned short deny_port = 0x5000;unsigned char *deny_port

2013-04-22 15:57:35 1708

原创 【协议识别】FTP主动模式与被动模式介绍

1、FTP主动模式与被动模式都是指服务器主动连接客户端还是被动等待客户端连接2、主动模式信令流:服务器主动连接客户端,所以客户端通过Port命令告诉服务器客户端开放的连接端口,如下端口为9547=37*256 + 75数据流:服务器用20端口连接服务器的9547端口3、被动模式信令流:客户端登陆成功后,客户端发送PASV命令0000  1c c1 de af b

2013-04-20 22:17:47 1007

转载 提高程序并行效率的一点经验

分类: LINUX原文地址:提高程序并行效率的一点经验 作者:GFree_Wind作者:[email protected]博客:blog.focus-linux.net   linuxfocus.blog.chinaunix.net  本文的copyleft归[email protected]所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性

2013-04-20 19:06:14 926

原创 用户态与内核态共享内存例程

例子中,用户态程序的KERNEL_VIRT_ADDR就是内核模块打印的地址p ,这里是hard coding(先加载内核模块,再把打印的地址赋值给KERNEL_VIRT_ADDR),可以采用其他的方式传递。 2.6内核验证。//kernel#include linux/config.h>#include linux/module.h>#inclu

2013-04-20 18:57:09 2520

原创 Linux 启动配置相关服务或脚本启动

/etc/rc.d/rc.local直接在上面rc.local加入命令如service network restart保证启动后IP地址设置成功。

2013-04-20 12:51:01 650

原创 [linux 内核]kmalloc/kfree,vmalloc/vfree函数用法和区别

1.kmalloc1>kmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零.tiger说明:在用kmalloc申请函数后,要对起清零用memset()函数对申请的内存进行清零。> 2>kamlloc函数原型:#includeVoid *kmalloc(size_t size, int flags);(1)第一个参数是要

2013-04-20 12:41:48 1565

原创 Linux内核源码分析

http://www.kerneltravel.net/kernel-book/%E7%AC%AC%E5%8D%81%E4%BA%8C%E7%AB%A0%20%E7%BD%91%E7%BB%9C/12.2.3.htm12.4.3 sk_buff数据结构的核心内容sk_buff 数据结构中包含了一些指针和长度信息,从而可让协议层以标准的函数或方法对应用程序的数据进行处理,其定义于

2013-04-20 11:26:29 967

原创 Linux程序用户态到内核态移植

Linux环境下,在内核写程序限制很多,相比用户态程序:不能使用C库、不能使用系统调用、理解内核各个部分的实现原理及相关函数的机制及作用、熟悉内核使用的锁机制并仔细处理跟锁相关的细节 之前做过将一个用户态的加密库(包括AES和RSA的实现)移植到内核态使用,主要涉及调试消息的打印,内存空间申请与释放,数据类型的转换,随机数的生成等问题。 没有printf,如何打印消息?内核中可

2013-04-20 11:12:43 1275

原创 Linux内核库函数

当编写驱动程序时,一般情况下不能使用C标准库的函数。Linux内核也提供了与标准库函数功能相同的一些函数,但二者还是稍有差别。 类别函数名功能函数形成参数描述字符串转换simple_strtol把一个字符串转换为一个有符号长整数long simple_strt

2013-04-20 00:48:22 750

转载 Linux内核模块读写文件

在Linux内核中进行文件的读写操作,在一般情况下不推荐这样操作,但在不得已时,也是可以实现的.#include #include #include #include #include #include #include #include #include #include #include  MODULE_LICENSE("Dual BSD

2013-04-20 00:41:55 1025

转载 sk_buff结构

http://blog.chinaunix.net/uid-387104-id-1744095.html16.1.4 sk_buff结构http://book.51cto.com  2009-12-11 09:42  宋敬彬/孙海滨  清华大学出版社  我要评论( 00)摘要:《Linux 网络编程》第16章Linux内核中网络部分结构以及分布,本章介绍Linux内核代码的

2013-04-20 00:36:02 937

原创 Linux文件内容输出常用功能命令

1.输出文本文件内容命令cat:cat [option] fileoption:-b:给非空白行编上行号-n:给所有行编上行号-s:多个连续的空行只显示一行-T:显示制表符-v:显示非打印字符-E:显示行尾号-A:相当于同时使用vET2.进阶文本显示命令more:more [-dlfpcsu] [-num] [+/pattern] [+linenum

2013-04-19 23:44:27 4721

原创 C开发注意事项_字符串及指针使用

1、字符串指针引用str变量在栈中,返回值不确定char *getStr(){    char str[]="abcd";    return str;}str变量在rodata中,可以获取到此字符串地址信息,同时注意字符串常量不能修改其内存内容char *getStr(){    char *str="abcd";    return str;}

2013-04-14 17:35:28 886

原创 Vxworks及Linux 中常用的延时方法

在应用编程的时候,通常会碰到需要一个任务在特定的延时之后执行一个指定的动作,如等待外设以确保数据可靠,控制扬声器发声时间以及串口通信超时重发等。这就需要利用定时器机制来计量特定长度的时间段。    vxWorks作为实时嵌入式系统,提供多样的定时接口函数。下面结合我的项目经历和网上的参考资料列举一些常用的定时方式,并说明其注意事项。一、taskDelay    taskDelay(n)

2013-03-28 14:20:28 1581

原创 volatile的作用

vlatile作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如下程序:XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0x58;对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器就不能像对待纯粹的程序那样对上述四条语句进行

2013-03-28 13:58:24 722

ImmunityDebugger_mona_vulnserver_python

immunity debugger1.85 mona plugin for immunity debugger vulnserver is server python is used for executing the mona

2015-09-16

http2文档报文及分析

HTTP2和HTTPS2的相关报文及HTTP2报文头HPACK格式的内容解析。 数据帧,报头帧,设置帧等信息分析介绍。 部分文件建议使用RFC View和Wireshark查看。

2015-04-16

ACBM单模匹配算法

BM算法为最快的单模式字符串匹配算法,与多模式AC算法并用可大大提高字符串的匹配效率。

2014-08-05

ACSM源码及测试代码

用于多模式匹配的AC算法实现及测试代码。

2014-08-04

OpenSSL_HeartBleed_POC_Pcap

CVE-2014-0160漏洞 2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本中存在严重漏洞(CVE-2014-0160)。OpenSSL Heartbleed模块存在一个BUG,问题存在于ssl/dl_both.c文件中的心跳部分,当攻击者构造一个特殊的数据包,满足用户心跳包中无法提供足够多的数据会导致memcpy函数把SSLv3记录之后的数据直接输出,该漏洞导致攻击者可以远程读取存在漏洞版本的OpenSSL服务器内存中多达64K的数据。

2014-06-12

报文发送软件

类似于科莱发包器的发包软件,差异主要是多支持了计算IP校验和,去重传,去负载为零报文,发包延迟等选项,简单易用。 1、下载后如果无法运行则需安装xp下文件,即程序运行环境。 2、如网卡无法选择则重新安装winpcap库,去官网下载安装即可。

2013-11-06

Wpdpack 4.1.2

winpcap windows开发包,使用此包时有时需要安装驱动,去pcap官网下个exe安装文件安装即可。

2013-10-25

实现的upload文件上传

Extjs 实现文件上传,带进度条,可根据扩展名过滤文件。 JSP Struct实现文件上传。

2013-10-24

linux libc静态库32and64bit

部分linux安装后没有libc.a及pthread.a,可以下载用于开发使用。

2013-09-06

linux pthread libc静态库

Linux 静态编译时使用的libc和pthread库

2013-09-05

cscope_maps.vim

cscope的配置文件,之前网上的下载地址失效,特上传分享。 下载后拷贝到/usr/share/vim/vimxx/plugin/

2013-07-23

netfilter小型防火墙实例

基于Netfilter的小型防火墙,支持IP和端口过滤。

2013-04-22

ftpfuzz(infigo ftpstress fuzzer)

ftp fuzz ftp漏洞测试工具 Infigo FTPStress Fuzzer je specijalizirani fuzzer alat namijenjen pronalaženju ranjivosti u FTP poslužiteljima. Iako se radi o jednostavnom alatu, njegova efikasnost je dokazana kroz otkrivene ranjivosti FTP poslužitelja koji su testirani ovim alatom. Parametri koji se koriste za provođenje fuzzing procesa vrlo su konfigurabilni. Korisnik je u mogućnosti precizno definirati koje FTP naredbe će biti fuzzane, uz definiranje tipova i veličine podataka.

2012-09-14

URL内容提取工具

URL内容提取工具简化了大家使用wireshark等工具查看网卡都像哪些地址发送了Get请求报文的工作。 使用方法: 1、选择网卡后,打开软件点击开始提取按钮进行监控 2、打开浏览器上网即可,此时可以在程序界面上看到所访问的URL地址

2012-09-04

对话框程序Pediy

对话框程序Pediy,记录登陆时的账号或密码信息。

2012-05-22

网易公开课视频下载工具

网易公开课中文件的下载工具,非常好用,欢迎大家提意见,下载后执行release中的可执行文件即可,如果要使用源码,请同事下载sharppcap开发库。

2012-05-16

OpenSSL源码及库文件及证书信息

OpenSSL源码及编译的库文件,源码需要点击exe安装,库为windows下编译好的文件,bin目录有生成的证书。

2012-02-25

OpenSSL客户端服务器源码实例

OpenSSL客户端服务器源码实例,本程序基于windows系统,使用Vc6.0开发

2012-02-25

利用Openssl抓取的本地交互报文

利用Openssl抓取的本地交互报文,相关程序请参看后面的OpenSSL客户端服务器源码资源

2012-02-25

邮件协议报文

SMTP,POP3,IMAP邮件发送接收报文,协议内容分析结论见我的博客,解压密码123456

2012-01-17

radius packet

Radius 认证计费报文,结合我的博客Radius协议原理理解Radius协议。

2011-12-22

SharpPcap Src

Sharp Pcap 用于C#网络数据包处理编程。

2011-08-24

SharpPcap Bin

Sharp Pcap 用于C#网络数据包处理编程。

2011-08-24

对AC算法进行举例分析,从状态机到模式匹配都进行详细说明

对AC算法进行举例分析,从状态机到模式匹配都进行详细说明。

2011-07-17

linux内核态与用户态通讯源代码

linux内核态与用户态通讯源代码,通过建立字符设备互相之间通讯。

2009-08-16

pdf转word

pdf转word,pdf转word,pdf转word

2008-05-10

空空如也

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

TA关注的人

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