- 博客(28)
- 资源 (7)
- 收藏
- 关注
原创 redat vi 中文乱码解决
第一步:~/.bash_profile 尾部加入以下内容,并source ~/.bash_profileexport PATHexport LANG=zh_CN.UTF8export LC_CTYPE="zh_CN.gbk"export LC_NUMERIC="zh_CN.gbk"export LC_TIME="zh_CN.gbk"export LC_COLLATE="zh
2013-07-22 10:40:32
1201
原创 UVA 105 Skyline Problem
此题不难,对问题规模做了限制,最大坐标不大于10000,使用一个数组遍历即可#题外话,UVA的格式说明不是很清楚,出了两次Presentation error#include int main(){ int l,h,r,num,i=0; int sky_line[10001] = {-1}; int l_min=10001,r_max
2013-05-27 21:36:35
1913
转载 Linux/Unix目录结构的来历
Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但是,/usr子目录下面还有/usr/bin,以及/usr/local/bin,也用于存放二进制程序;某些系统甚至还有/opt/bin。它们有何区别?长久以来,我也感到很费解,不明白为什么这样设计。像大多数人一样,我只是根据《Un
2012-03-05 09:12:44
1216
原创 一步一步开发sniffer(Winpcap+MFC)(六)千呼万唤始出来,不抱琵琶也露面——将解析数据写到GUI上
最后一章是要将解析数据写的GUI上,先来回顾一下GUI长什么样,这样就对要在界面上写什么数据心中有数了,如下这两图: 可以看出,要写在GUI上的数据主要有五个部分:1、 参数设置:网卡接口、过滤项2、 数据包捕获列表,显示数据包简要信息3、 树形目录,显示被选中的数据包头详细信息4、 文本框,显示被选中的数据包十六进制信息5、 统计信息:各
2012-03-03 22:40:35
13870
2
原创 一步一步开发sniffer(Winpcap+MFC)(五)莫道无人能识君,其实我懂你的心——解析数据包
前文已经讲过,解析数据包主要通过analyze_frame()这个函数实现的,实际上并非这个函数完成了所有的功能,其实从名字就可以看出,它只是完成了对“帧”的解析,也就是链路层数据的解析,还有analyze_arp()、analyze_ip()、analyze_ip6()、analyze_icmp()……等来完成其他协议层的解析工作。为什么会这样定义?熟悉协议栈工作流程的都知道,数据是由应用层
2012-03-03 20:53:37
15261
1
原创 一步一步开发sniffer(Winpcap+MFC)(四)要想从此过,留下协议头——各层网络协议头的实现
这一章实际上没什么讲的,就是把协议的标准搞懂,然后用数据结构将其实现就行。直接上代码吧,由底层到高层逐步实现。这些协议头是怎么使用的,将在下一章做出解释。#ifndef PROTOCOL_H#define PROTOCOL_H#define PROTO_ICMP 1#define PROTO_TCP 6 #define PROTO_UDP 17 #define
2012-03-03 20:05:22
12706
3
原创 一步一步开发sniffer(Winpcap+MFC)(三)安得广厦千万间,先画蓝图再砌砖——搭建winpcap抓包框架
采用天朝流行的话,“由于种种原因”本人已接近一年半没有写博客了,最近回想起来,很多东西即便再小也得慢慢积累,更何况前两章之后就没有了,很多网友表示比较期待后面的文字,不能做一个太监了事,打算还是继续写完,给被吊了胃口这么久的朋友表示深深地歉意。这一章要讲的是winpcap核心编程,首先来看一下sniffer程序的整体框架,程序主要由三个部分构成,其示意图如下:其中,winpcap对
2012-03-03 19:24:04
27706
3
原创 使用trashcan恢复linux下误删的文件
在linux命令行下,经常会误操作删除一些东西,如果加了-f参数,又是重要的文件那就等着杯具吧,本人曾经将一个月的工作误删了,后来试了试一些文件恢复工具,但都操作复杂,比较麻烦,不了了之,只有重做一次,最近经人推荐试用了下Trash can这个工具,感觉比较好用,故推荐之下载链接https://github.com/comwt/trashcan1、 安装#tar –zxf trashc
2012-03-03 14:18:58
6606
原创 一步一步开发sniffer(Winpcap+MFC)(二)掀起你的盖头来,让我来画你的脸——用MFC开发GUI
书接上回,由于前段时间较忙,都没心思来写这个了,两章之间的间隔有点久了,后来……*&&……%*&……发生了很多事,又重装了系统,还重装了VS,现在是VS2010,前面说的是基于VS2008的,但是没关系,二者大同小异,没太大差别,不影响理解,有不便的请原谅(不想再装VS2008了,装一次要好久- -!) 扯多了,进入正题,本节主题是写GUI,下面开始。 第一步,打开VS,新建工程,选择“MFC应用程序”,如下图: 输入工程名,我这里命名为li
2010-12-26 01:25:00
19562
4
原创 一步一步开发sniffer(Winpcap+MFC)(一)工欲善其事,必先配环境——配置winpcap开发环境
0、说在前面的话1) 本文将以一个初学者的角度,一步一步几乎是从0开始讲述如何完成一个基于winpcap+MFC的sniffer(嗅探器)当然我指的“0”并不是指连编程都不会,如果C/C++不知为何物那么还是别看这篇文章了,本文只有那么几点小小要求: a.懂基本的编程语法,只会java的没关系,语言这东西语法差别不大,看着看着就懂了 b.懂一点点网络知识
2010-10-19 12:09:00
43308
12
转载 C语言迷题
<br />转载之前的话:原文写得很好,但是格式有点乱,看起来很不会舒服,本人稍作编辑,好文章得过得好看嘛:)<br /> <br />这几天,本站推出了几篇关于C语言的文章如下所示:<br /> 语言的歧义 <br /> 谁说C语言很简单? <br /> 6个变态的C语言Hello World程序 <br /> 如何加密/弄乱C源代码<br /> C语言的谜题 <br /><br /> 我们可以看到很多C语言相关的一些东
2010-10-15 12:17:00
1161
转载 解决man不到pthread_create
<br /> <br />又遇到了ubuntu man手册不全的问题,这回是多线程库,用下面两句即可搞定:<br /> <br /> sudo apt-get install glibc-doc <br /> sudo apt-get install manpages-posix-dev<br /> <br />原文:http://www.coder4.com/archives/165
2010-09-19 14:39:00
1782
1
原创 exec函数族解疑
在上一篇文章:自己实现popen函数中使用了exec族中的execvp()函数实现了对输入命令的的执行,众所周知,exec族是一个相当庞大的族,一共有六个成员,但这六个成员实在长得太像,其用法也容易让人混淆,此文将以一个初学者的角度来解析这六个成员的用法(因为我就是一个初学者:)。本文将着重解决三个问题:怎么记,什么含义,怎么用。一、怎么记 首先看exec函数族六成员,如下: #include int execl(const char *pathname,const ch
2010-09-17 21:31:00
1138
原创 自己实现popen函数
<br /> 闲来无事,自己实现了popen函数mypopen,后来查看了popen函数的源码发现自己实现的与其相差无几,本函数与linux中的实现最大的不同是不需要用专门的pclose()函数来关闭文件指针,用普通的fclose()即可,linux实现的代码也会给出在下文,可以对比一下其中差异。<br /> <br /> 主要通过pipe管道实现,具体思路如下: <br /> 1、使用pipe()建立管道<br /> 2、使用fork()创建子进程<br />
2010-09-17 20:03:00
12965
原创 ubuntu man 手册不全解决方法
<br /> 本人经常在ubuntu下做网络编程,每一次安装ubuntu后,都发现居然man一下bind()之类的函数都不能行,以前都是瞎猫碰死耗子弄好了能查,今天又碰到这个问题了,去网上查了下资料,原来ubuntu本身的man手册是不全的,总结了下,在新立得里面把下面几个安装上就可解决问题了:<br /> (注:本人使用的是ubuntu9.10,下面的文件可能版本稍有区别,但大同小异) manpages manpages-dev libstdc
2010-09-10 20:28:00
3011
转载 sockaddr与sockaddr_in关系
首先来看sockaddr,sockaddr是通用地址结构,目的是为了使不同格式的地址能够被传入到套接字函数。但是通用只是规定了名字和两个主要字段:struct socketaddr {sa_family_t sa_family;char sa_data[];...};至于sa_data的长度和剩余的扩展字段都是由各实现自己定义。在linux中是这么定义的:struct socketaddr{sa_family_t sa_family;char sa_data[14];}; 其次来看sockaddr_in
2010-09-10 20:17:00
1935
原创 inet_ntoa的一个典型误用
在做linux下面的网络编程时写了如下一段程序 //(省去N行……) char *source,*dest; struct in_addr saddr; struct in_addr daddr; saddr.s_addr = (in_addr_t)cmd.source.v_uint; //cmd.source.v_uint装载了由字符串通过inet_aton()转化成
2010-04-08 11:39:00
19583
原创 Ubuntu下从零开始用Iptables L7彻底封QQ
上一篇文章已经介绍了在Ubuntu9.04下如何通过升级内核到2.6.30.5配置iptables L7,现在就开始来用L7从零开始,在Ubuntu下彻底封QQ。 整体思路:我们的目的是控制QQ通信,而要控制一种服务就得了解它的工作流程和方式。众所周知,所有的网络通信都是通过数据包在网络之间传输实现,因此,想了解一个服务的整个工作流程和方式,就需要通过数据包来发掘。所以我
2010-03-19 10:33:00
8216
原创 Ubuntu9.04配iptables L7封QQ详细过程
2010.3.15 最近做一个项目,linux下基于网络行为的防火墙,得知iptables Layer7能够在应用层实现封QQ、MSN、迅雷等应用,因此打算在自己的机器上配置一下iptables L7,以借鉴如何识别应用,并对这些应用进行有效控制。配了接近五天,昨晚终于把L7配好了(也终于睡了个好觉),今天折腾了一上午也终于把QQ成功封了,其中曲折说来话长,我还是长话短说吧。
2010-03-17 21:56:00
4445
2
转载 [转]理解C++虚函数绝好的文章
0.说明 一个多月前微软实习生来了一次电面,第一个问题便问了虚函数和纯虚函数的区别,由于学了太久了(大一学的,而且我的记性真的很差- -!)没能回答上来,在此后的一个多小时的电面中,对方再未问更深的技术问题,只是问了做了哪些项目云云。最后面试结束,面试官让我问他是否还有什么问题,我问他,为什么无选的是一个开发类的岗位,但除了第一个问题之外,再无编程、技术方面的问题了,他说第一
2010-01-14 01:27:00
1276
转载 [转载] [强烈推荐]大牛对计算机读研的看法
前言:这是一篇师兄分享的文章,一篇真正的好文章,写得很实在也很精辟,与我昨天对于毕业设计的想法不谋而合,以至于我还没看完就有冲动发到这里来,希望这篇文章能哪怕被多一个人看到,同时非常感谢我的师兄,分享了这么一篇好文章! 谈谈我对攻读计算机研究生的看法 就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。 如果你有实际开发工作经验,感觉自己
2010-01-11 23:51:00
4235
1
原创 C语言中不用宏实现变长参数函数的原理及实现
一、前言 我们通常编写的函数都是参数固定的,多了少了都会有错,但是有时候我们是不能确定预先需要多少个参数的,而变长参数函数恰恰就能解决我们的问题。在UNIX中,提供了变长参数函数的编写方法,主要是通过va_list对象实现, 定义在文件stdarg.h中,变长参数函数的编写有一个固定的模板,模板很简单(见下代码), 定义时, 变长参数列表通过省略号‘...’表示, 因此函数定义
2010-01-11 17:09:00
2797
1
原创 vfork创建的子进程与父进程地址空间关系
在《UNIX环境高级编程》一书的第八章中,有一道课后习题如下:回忆图7-3典型的存储空间布局。由于对应于每个函数调用的栈帧通常存储在栈中,并在调用 vfork后,子进程运行在父进程的地址空间中,如果不是在main函数中而是在另一个函数中调用vfork,以后子进程从该函数返回时,将会发生什么情况?作者Rich Stevens是一位大师,留下这么一题必有其深意,于是结合《深入理解计算机系统》中
2010-01-02 23:40:00
5400
原创 读书笔记——《UNIX环境高级编程》第七章_ 进程环境
第七章 进程环境各位观众,今天节目的主要内容有:1、 当执行程序时,其main函数是如何被调用的?2、 命令行参数是如何传送给执行程序的?3、 典型的存储器而已是什么样式?4、 如何分配另外的存储空间?5、 进程如何使用环境变量?6、 各种不同进程终止方式另外,本期特别报导: longjmp和setjmp函数以及它们与栈的交互作用;进
2009-12-23 08:40:00
1103
原创 读书笔记——《UNIX环境高级编程》第六章_系统数据文件和信息
第六章 系统数据文件和信息系统正常运行需要使用大量系统数据文件,其中,所有UNIX系统都有的是:口令文件、组文件,大多数系统都提供的是:登录账户记录、系统标识、时间和日期例程,同时还有其他一些常用系统数据文件如:BSD网络软件有一个记录各网络服务器所提供服务的数据文件(/etc/services)、记录协议住处的数据文件(etc/protocols)等。现在来按这个顺序讨论这些文件。
2009-12-18 21:40:00
1402
原创 读书笔记——《UNIX环境高级编程》第一章_UNIX基础知识
第一章 UNIX基础知识1.2UNIX体系结构 UNIX体系结构如下图,系统内核接口被称为系统调用,公用函数库构建在系统调用接口之上,应用软件可以使用公用函数库,也可以使用系统调用。shell是一个特殊的应用程序,它为运行其他应用程序提供了一个接口。1.3登录 1.登录名 用户输入登录名及口令之后,系统在/etc/passw
2009-12-14 13:12:00
1386
原创 读书笔记——《深入理解计算机系统》第三章_程序的机器级表示(二)
3.6控制3.6.1条件码l 除整数寄存器外,CPU还有一级单位个条件码,其中最有用的条件码是: CF:进位标志,可以用来检测无符号操作数溢出 ZF:零标志 SF:符号标志,最近的操作得到的结果为负数 OF:溢出标志,最近操作导致
2009-12-10 18:17:00
1903
原创 读书笔记——《深入理解计算机系统》第三章_程序的机器级表示(一)
前言:已经大四,没有去找工作,选择了保研,之所以这样选择,有三个原因,一、刚进校时,听说保研都是牛人才能行的事,所以一心努力保研;二、2008年开始,经济危机比较严重,工作不好找,虽然软件专业要找一份工作还是比较容易,但好工作的机会少了很多,再多学习几年,规避下风险;三、三年多的本科学习下来,虽然简历看起来还像回事,但内心很虚,感觉真才实学没多少,都是略懂皮毛,做了太多表面工作,没有特长,
2009-12-02 22:34:00
4473
1
原创MFC+WinpCap网络嗅探器(sniffer)
2012-03-04
opengl实现的简单机器人
2009-04-05
(1-20)一步一步学习silverlight2 beta1打包(TerryLee)
2008-08-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人