摘要: 客户端C到服务器S的icmp包经过本机P时被截获,在上一篇中已经介绍了如何获取原始目的地址,你必须将数据转发到原始目的地址S,并且在收到从原始目的地址的响应之后转发给客户端。此时,要实现透明代理,则你返回给客户端的icmp响应的源地址必须为客户端请求的原始目的地址S。由于使用的是raw socket... 阅读全文
posted @ 2014-09-17 09:30 K' 阅读(759) 评论(0) 推荐(0) 编辑
摘要: 1.将其他项目的tag加入我们项目的.tag文件中,实现函数跳转:ctags -R -f "your-tag-file-path" -a "other-project-path" --languages=C但是这个方法比较笨,因为你一旦rebuild tags,就会覆盖掉原先的.tag文件,你又得重... 阅读全文
posted @ 2014-09-11 14:54 K' 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 通过以下步骤,将经过本机的(设置本机为网关)icmp流量抓取,并获取其目标地址,可以用来做icmp代理。1. iptables 在 mangle 表的 prerouting链中添加规则,给icmp包做标记,比如0x15 iptables -t mangle -A PREROUTING -p icm... 阅读全文
posted @ 2014-09-10 20:03 K' 阅读(2305) 评论(0) 推荐(0) 编辑
摘要: 原文:http://www.felix021.com/blog/read.php?2068花了两天的时间在libevent上,想总结下,就以写简单tutorial的方式吧,貌似没有一篇简单的说明,让人马上就能上手用的。首先给出官方文档吧: http://libevent.org ,首页有个Progr... 阅读全文
posted @ 2014-07-15 12:24 K' 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.sina.com.cn/s/blog_9599e951010108p5.html进程间通讯(IPC)方法主要有以下几种: 管道/FIFO/共享内存/消息队列/信号1.管道中还有命名管道和非命名管道(即匿名管道)之分,非命名管道(即匿名管道)只能用于父子进程通讯,命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式2.消息队列是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一个进程则从那个消息队列中取数据。需要注意的是,消息队列是用创建文件的方式建立的,如果一个进程向某个消息队列中写入了数据之后,另一个进 阅读全文
posted @ 2013-08-15 09:11 K' 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/mingzi/archive/2009/08/04/1538427.html0、数组原地逆置 很很很简单(不附加任何空间)int reverse(int *array){ for(int i=0;i=10) convert(result+1, n/10); *result = n%10; } int main(int argc, char* argv[]) { int n = 123456789, result[20]={}; convert(result, n); printf("%d:", n); for(int i= 阅读全文
posted @ 2013-07-27 16:24 K' 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 你真的了解JAVA里的String么中文与Unicode的转换Java内存管理特点每一个JAVA初学者都应该搞懂的问题1. String str1 = "abc"; System.out.println(str1 == "abc"); 转载地址:http://meng-lin.javaeye.com/步骤: 1) 棧中开辟一块空间存放引用str1, 2) String池中开辟一块空间,存放String常量"abc", 3) 引用str1指向池中String常量"abc", 4) str1所指代的地址即常量" 阅读全文
posted @ 2013-07-11 11:20 K' 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/chio/archive/2007/11/03/948480.html1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE.. 阅读全文
posted @ 2013-06-27 09:13 K' 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 【转自】http://hi.baidu.com/zengzhaonong/blog/item/8a8871062d481f7f03088106.html#include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#include "x.h"#include "x.h"显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码。但是下面的代码:#include "a.h"#include "b.h"看上去没什么问题。如果a.h和b.h都包含了一个头文件x.h。那么x.h在此也 阅读全文
posted @ 2013-06-26 23:06 K' 阅读(1156) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/charley_yang/archive/2010/12/08/1899982.html一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。 请看下面的程序。 ?123456789101112 阅读全文
posted @ 2013-06-26 09:34 K' 阅读(216) 评论(0) 推荐(0) 编辑