上一页 1 2 3 4 5 6 ··· 13 下一页
摘要: 第一步1、打开windows设备管理器。2、查看-显示隐藏的设备3、非即插即用驱动程序4、NetGroup Packet Filter Driver 右键属性---驱动程序---启动类型,修改类型为“系统”第二步:在cmd下输入net start npf,打开网络抓包服务第三步:运行wireshark ,此时网卡已经可以正常检测到了 阅读全文
posted @ 2013-07-11 12:55 only_eVonne 阅读(62254) 评论(1) 推荐(1) 编辑
摘要: 在使用gdb调试程序的时候,有时候需要设定多个断点,重复执行某些操作,而这些操作写起来比较麻烦,这个时候就应该想起来用gdb命令脚本了,它能够很好的完成这些工作。以设置多个断点为例,我写的命令脚本为---------------------------------------------------#filename: .gdbinit#gdb will read it when startingfile test_gdbscriptset args hellob mainb foor---------------------------------------------------有两种方 阅读全文
posted @ 2013-07-04 17:50 only_eVonne 阅读(1697) 评论(0) 推荐(0) 编辑
摘要: 以堆栈溢出为代表的缓冲区溢出已成为最为普遍的安全漏洞。由此引发的安全问题比比皆是。早在 1988 年,美国康奈尔大学的计算机科学系研究生莫里斯 (Morris) 利用 UNIX fingered 程序的溢出漏洞,写了一段恶意程序并传播到其他机器上,结果造成 6000 台 Internet 上的服务器瘫痪,占当时总数的 10%。各种操作系统上出现的溢出漏洞也数不胜数。为了尽可能避免缓冲区溢出漏洞被攻击者利用,现今的编译器设计者已经开始在编译器层面上对堆栈进行保护。现在已经有了好几种编译器堆栈保护的实现,其中最著名的是 StackGuard 和 Stack-smashing Protectio.. 阅读全文
posted @ 2013-07-04 17:09 only_eVonne 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 使用gdbserver远程调试 1.默认crosstool交叉编译器没有自带gdbserver,需要自行编译 到GNU官方FTP下载,目前最新版的是gdb-6.7.1下载地址:http://ftp.gnu.org/gnu/gdb/ 注:若已有gdbserver,可以直接跳到步骤4 2.编译gdbserver编译GDB源码时只需要编译出gdbserver就可以了,交叉编译器自带arm-linux-gdb(client端)可以使用。gdb-6.7.1# cd gdb-6.7.1/gdb/gdbserver/#./configure --host=arm-linux --prefix=/work.. 阅读全文
posted @ 2013-07-04 11:38 only_eVonne 阅读(1469) 评论(0) 推荐(0) 编辑
摘要: 转自 http://blog.csdn.net/dragonimp/article/details/7371258 UPnP网络的第1步是发现。在将一个设备添加到网络上之后,UPnP发现协议允许该设备向网络中的控制点宣告其服务。同样,当一个控制点被添加到网络后,UPnP发现协议允许该控制点在网上搜索感兴趣的设备。两种情况下的根本信息交换均为一个发现消息,包含有关该设备或其服务之一的一些基础信息(例如其类型、标识符和指向更详细信息的一个指针)。UPnP发现协议基于简单服务发现协议(SSDP)。 UPnP网络中的第2步是描述。控制点在发现一个设备之后仍然对其知之甚少。为了使控制点了解到更多关于设. 阅读全文
posted @ 2013-05-03 13:38 only_eVonne 阅读(1517) 评论(0) 推荐(0) 编辑
摘要: 转自 http://www.ustack.com/unitedstack-emplyee-value/ 我一直认为,工程师,尤其是一线的,是最接近真相的人,也是最懂业务的人,应该有充分自由去实现自己想做的事情,去改造存在问题的项目,去颠覆陈旧的观念,可惜中国的土壤不好,公司的文化和观念也不是一天能改过来的,如果你能有机会去硅谷,那恭喜你,工程师在那里的地位是最高的,有像Facebook一样的工程师驱动的文化,有自由的空间和足够大的舞台。但在中国,作为工程师,想改变大环境很困难,那么只能改变自己,自己寻求更高的价值和更好的发展。 我经常跟朋友说,一个工程师的价值取决于两个方面: 一是你的内... 阅读全文
posted @ 2013-04-28 12:41 only_eVonne 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 1 time()提供了秒级的精确度 2 3 1、头文件 <time.h> 4 2、函数原型 5 time_t time(time_t * timer) 6 函数返回从TC1970-1-1 0:0:0开始到现在的秒数 7 8 用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或是标准时间。 9 10 #include <time.h> 11 #include <stdio.h> 12 int main(void) 13 { 14 time_t t; 15 t... 阅读全文
posted @ 2013-04-26 11:22 only_eVonne 阅读(806) 评论(0) 推荐(0) 编辑
摘要: nginx提供一套高效的定时器实现,除了nginx核心能够使用定时器以外,我们在进行模块开发的时候也可以使用定时器来完成一些定时执行的任务。nginx定时器实现的核心是使用一棵红黑树来存储各个定时事件,每次循环的时候就从这棵树里找出超时的事件,然后一一触发,完成定时任务操作。下面简单的描述一下nginx在实现定时器时的几个关键点。本文是基于linux的epoll来描述的定时器实现。定时器初始化nginx阻塞于epoll_wait时可能被3类事件唤醒,分别是有读写事件发生、等待时间超时和信号中断。等待超时和信号中断都是与定时器实现相关的,它们的初始化发生在ngx_event_core_mod.. 阅读全文
posted @ 2013-04-23 18:52 only_eVonne 阅读(1692) 评论(0) 推荐(0) 编辑
摘要: sleep() may be implemented using SIGALRM; mixing calls to alarm(2) and sleep() is a bad idea.sleep和usleep不能使用的原因不是什么线程不安全.而是在某些平台上这两个函数可能会使用SIGALRM,导致程序其他位置的定时机制失效。实际程序中根本就不应该出现sleep和usleep,如果非要休眠不可,应考虑nanosleep或者select 阅读全文
posted @ 2013-04-19 14:28 only_eVonne 阅读(2253) 评论(0) 推荐(0) 编辑
摘要: 内核中的红黑树只是提供了一个管理机制,并没有提供具体的使用接口。需要使用者根据自己的使用环境去定义和实现自己的关键字(char,uchar, int, uint等类型)操作。这样可以更加灵活。 像内核中的链表,hash表的代码都是这种思想。 1 struct mytype 2 { 3 int num; 4 5 struct rb_node my_node; 6 }; 7 8 struct mytype *my_find(struct rb_root *root, int num) 9 { 10 struct rb_no... 阅读全文
posted @ 2013-04-16 20:57 only_eVonne 阅读(833) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 13 下一页