- 博客(15)
- 资源 (5)
- 收藏
- 关注
转载 挂钩Windows API
<br />创建时间:2004-03-06<br /> 文章属性:原创<br /> 文章提交:SoBeIt (kinsephi_at_hotmail.com)<br /><br /> ===========================[ 挂钩Windows API ]==================<br /><br /> SoBeIt<br /><br /> Auth
2011-05-05 12:55:00
449
转载 函数调用堆栈分析
<br />原文链接:http://blog.youkuaiyun.com/liigo/archive/2006/12/23/1456938.aspx<br />转载请注明出处:http://blog.youkuaiyun.com/liigo<br />昨天和海洋 一块研究了下函数调用栈,顺便写两句。不足或错误之处请包涵!<br />理解调用栈最重要的两点是:栈的结构,EBP寄存器的作用。<br />首先要认识到这样两个事实:<br />1、一个函数调用动作可分解为:零到多个PUSH指令(用于参数入栈),一个CALL指令。CAL
2011-04-29 09:00:00
343
原创 volatile关键字学习
用volatile关键字修饰变量时,会告诉编译器不要进行优化,将变量的值缓存在寄存器里,而是每次使用时都要从变量存储位置重新读取,这可以防止该变量在未知的地方和时候可能被改变。这对于多线程共享的变量等很重要。看下面的例子:#includeint main(){int i = 10; //未加关键字volatileint a = i;printf("i = %d", a);__asm{mov dword ptr[ebp - 4], 20h}int b = i;printf("i = %d", b);ret
2011-04-28 23:38:00
259
原创 得到网络进程和对应的端口
<br />这是两个未公开的API:<br />最简单的枚举当前所开放的端口信息是调用iphlpapi.dll中的AllocateAndGetTcpTableFromStack和AllocateAndGetUdpTableFromStack函数,或者AllocateAndGetTcpExTableFromStack 和AllocateAndGetUdpExTableFromStack函数。<br />用AllocateAndGetTcpExTableFromStack 可以取得进程的PID及对应的端口
2011-04-28 13:21:00
371
转载 strcpy实现
<br />题目: <br /> 已知strcpy函数的原型是: <br /> char * strcpy(char * strDest,const char * strSrc); <br /> 1.不调用库函数,实现strcpy函数。 <br /> 2.解释为什么要返回char *。 <br /> 解说: <br /> 1.strcpy的实现代码 <br /> char * strcpy(char * strDes
2011-04-28 13:17:00
268
转载 P2P之UDP穿透NAT的原理与实现
<br />P2P之UDP穿透NAT的原理与实现(附源代码)<br /> 作者:shootingstars | 日期:2004-05-25 | 字体:大 中 小<br /> <br />P2P 之 UDP穿透NAT的原理与实现(附源代码)<br />原创:shootingstars<br />参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt<br />论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码
2011-04-27 23:47:00
281
转载 P2P之UDP穿透NAT的原理与实现
<br />P2P之UDP穿透NAT的原理与实现(附源代码)<br /> 作者:shootingstars | 日期:2004-05-25 | 字体:大 中 小<br /> <br />P2P 之 UDP穿透NAT的原理与实现(附源代码)<br />原创:shootingstars<br />参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt<br />论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码
2011-04-27 23:46:00
329
转载 P2P之UDP穿透NAT的原理与实现
<br />P2P之UDP穿透NAT的原理与实现(附源代码)<br /> 作者:shootingstars | 日期:2004-05-25 | 字体:大 中 小<br /> <br />P2P 之 UDP穿透NAT的原理与实现(附源代码)<br />原创:shootingstars<br />参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt<br />论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码
2011-04-27 23:46:00
272
转载 C的xml编程-libxml2
C的xml编程-libxml2<br /> 这里主要讲述libxml2在linux下的使用。(以下内容除了linux下的安装步骤是自己写的,其余均出自http://www.blogjava.net/wxb_nudt/archive/2007/11/28/161340.html , 由于该篇文章讲解的非常详细,我也没必要重写一遍了。如果该篇文章早出些时候,早期开发我也不会走很多弯路了。虽然在该篇文章出现之前我已经对 libxml2较熟悉了并开发完毕,但为了备忘,现在将该篇文章作为收藏之用。在此再次
2011-04-27 17:56:00
483
转载 Linux程式设计入门 - crypt
<br /> crypt是个密码加密函数,它是基於Data Encryption Standard(DES)演算法。 <br /> crypt基本上是One way encryption,因此它只适用於密码的使用,不适合於资料加密。 <br /> char *crypt(const char *key, const char *salt); <br /> key 是使用者的密码。salt是两个字,每个字可从[a-zA-Z0-9./]中选出来,因 此同一密码增加了4096种可能性。透过使用key中
2011-04-27 12:33:00
292
转载 Socket编程指南及示例程序
<br />Socket编程指南及示例程序<br />例子代码就在我的博客中,包括六个 UDP和 TCP发送接受的 cpp文件,一个基于 MFC的局域网聊天小工具工程,和此小工具的所有运行时库、资源和执行程序。代码的压缩包位置是http://www.blogjava.net/Files/wxb_nudt/socket_src.rar。1 前言<br />在一些常用的编程技术中, Socket网络编程可以说是最简单的一种。而且 Socket编程需要的基础知识很少,适合初学者学习网络
2011-04-27 12:19:00
456
转载 TCP的socket连接示例
用C实现的TCP socket连接/读/写操作。采用fcntl设置非阻塞式连接以实现connect超时处理;采用select方法来设置socket读写超时。此示例可被编译运行于Windows/unix系统。源文件connector.c原来的代码在windows下编译不通过,今天qzj问起才发现。因为加了异步的处理,没有对这部分代码进行兼容性处理。本着做学问一丝不苟嘀精神,重新修改了一下源代码。以下代码在VC++6和linux下编译执行通过 :)/* * on Unix: * cc -c con
2011-04-27 12:05:00
506
转载 C++内存管理
C++内存管理详解伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在
2011-04-26 23:41:00
289
转载 vc6.0栈溢出
问题处在include的文件名长度未检测。 比如 #include "AAAA....AA"(超多A) 就会挂。 2008-3-3 报告给MS,当天收到答复,说正在研究中。 2008-3-4 MS确认这是一个安全缺陷,但说Visual C++ 6.0的产品支持生命周期已经于2005年9月30日结束,因此不会为这个漏 洞发布安全公告或安全建议,且建议我不要公开。 我差点利用这个漏洞黑了poj(acm.pku.edu.cn,做acm的同学应该都知道这个网站)。 可惜功亏一篑,只得到了一台没有价值
2011-04-26 13:01:00
749
转载 #define用法归类
<br />常规用法不再介绍,做如下几点说明和介绍<br />1. 带参数的宏只完成简单字符替换,之前不做计算实参的工作,如下<br />#define SUM(x,y) x+y<br />int a=3,b=2,c=1;<br /> int s;<br /> s=SUM(a+b,b)*SUM(c,b)+c;<br /> 结果应该是 s=a+b+b*c+b+c=10。<br />2. define中的特殊标识符<br />#define Conn(x,y) x##y<br />
2011-04-26 12:51:00
327
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人