- 博客(26)
- 收藏
- 关注
转载 GetKeyState()和GetAsyncKeyState()的区别
GetKeyState()和GetAsyncKeyState()的区别2009-06-22 11:42使用::GetKeyState()返回一个short型的数,short型是16位有符号的数据类型,如果要查询的键被按下,返回值最高位被置1,则这个数表示负数,所以可以用0来判断。0x8000 是16进制数,用2进制表示为1000 0000 0000 0000,&是按位与。同样,如果键被
2009-12-31 21:19:00
951
转载 GetAsyncKeyState()与GetKeyboardState()
GetAsyncKeyState()与GetKeyboardState() [ 2005-06-25 16:38:12 | 作者: Admin ] 字体大小: 大 | 中 | 小 PC平台上的单键异步调用.这个调用是WINDOWS特
2009-12-31 21:11:00
833
转载 Delphi里实现MD5加密 控件法
在Delphi里实现MD5加密其实很容易!方法如下:在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到MD5的实现。 示例代码 procedure TForm1.Button1Click(Sender: TObject); var MyMD5: TIdHashMessageDige
2009-12-14 21:29:00
1162
1
转载 Delphi字符串加密解密函数
Delphi字符串加密解密函数功能:字符串加密和解密首先定义一个常量数组const XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47); //字符串加密用在程序里加入以下两个函数,function Enc(Str:String):String;//字符加密函數 這是用的一個異或加密
2009-12-14 21:23:00
906
转载 Delphi 数据类型
Delphi 数据类型列表分类范围字节备注简单类型序数整数Integer-2147483648 .. 21474836474有符号32位Cardinal0 .. 42949672954无符号32位Shortint-128 .. 1271有符号8位Smallint
2009-12-11 22:32:00
612
转载 New、Delete、GetMem、Dispose的区别和联系
一、New和GetMem都可以为指针类型动态分配内存,并且Delphi不会对由此分配的内存进行管理,即必须有相应的代码对其进行释放,否则内存将“丢失”,直到应用程序结束。 二、New分配的内存必须由Dispose来释放;GetMem分配的内存必须由FreeMem来释放; 三、New根据指针类型来自动计算需要分配的内存尺寸;GetMem必须指定尺寸;
2009-12-11 20:10:00
668
转载 Delphi 的内存操作函数(3): 给结构体指针分配内存
使用结构或结构数组, 一般是不需要主动分配内存的, 譬如: var pts: TPoint;begin pts.X := 1; pts.Y := 2; ShowMessageFmt(%d,%d, [pts.X, pts.Y]); {1,2}end;//结构数组:var Arr: array[0..2] of TPoint;
2009-12-11 16:06:00
720
转载 c#实现16进制和字符串之间转换的代码
以下示例演示如何执行下列任务: 获取字符串中每个字符的十六进制值。 获取与十六进制字符串中的每个值对应的字符。 将十六进制 string 转换为整型。 将十六进制 string 转换为浮点型。 将字节数组转换为十六进制 string。 示例 此示例输出 string 中的每个字符的十六进制值。首先,它将 string 分析为字符数组,然后对每个字符调用 ToInt32(
2009-12-07 18:42:00
1116
原创 服务端生成技术(1)
木马服务端生成技术最近在研究回调机制,所以来了个“人肉搜索”,意外在某人博客上发现了这篇文章关于木马生成服务端技术,于是........ 其实这方面的东西以前就很好奇了,只是没有没有深入的探讨,今天看了下,受益匪浅 小节:其实有两种方法实现:一种是为我们需要的数据保留空间,在适当时候将我们需要的数据复制到预先留出的地址空间,类似C++中为指针或数组预留空间,然后在需
2009-12-06 20:54:00
819
转载 delphi中application.processmessages的作用
delphi中application.processmessages的作用 procedure TForm1.Button2Click(Sender: TObject);var I, J, X, Y: Word;begin I := 0; J := 0; while I begin Randomize;
2009-12-02 22:47:00
862
原创 code
/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2000-2001 Softelf Inc. All rights reserved. ////////////////////////////////////
2009-11-30 23:00:00
751
转载 手把手教你玩转SOCKET模型之重叠I/O篇(上)
手把手教你玩转SOCKET模型之重叠I/O篇 “身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人。我也希望大家能把自己的所学和他人一起分享,不要去鄙视别人索取时的贪婪,因为最应该被鄙视的是不肯付出时的吝啬。”
2009-11-30 22:02:00
556
转载 WSARecv
在重叠模型中,接收数据就要靠它了,它的参数也比recv要多,因为要用刀重叠结构嘛,它是这样定义的: int WSARecv( SOCKET s, // 当然是投递这个操作的套接字 LPWSABUF lpBuffers, // 接收缓冲区,与Recv函数不同 // 这里需要一个由WSABUF结构构成的数组 DWORD dwBufferCoun
2009-11-30 22:01:00
568
转载 WSARecv
在重叠模型中,接收数据就要靠它了,它的参数也比recv要多,因为要用刀重叠结构嘛,它是这样定义的: int WSARecv( SOCKET s, // 当然是投递这个操作的套接字 LPWSABUF lpBuffers, // 接收缓冲区,与Recv函数不同 // 这里需要一个由WSABUF结构构成的数组 DWORD dwBufferCount, // 数组
2009-11-30 21:51:00
510
转载 SO_LINGER
此选项指定函数close对面向连接的协议如何操作(如TCP)。内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。 SO_LINGER选项用来改变此缺省设置。使用如下结构:struct linger { int l_onoff; /* 0 = off, nozero = on */
2009-11-30 21:32:00
1385
1
转载 SIO_KEEPALIVE_VALS 用户异常掉线检测
用户异常掉线检测 David.Zhu 2005/6/1 目前主要有三种方法来实现用户掉线检测:SO_KEEPALIVE ,SIO_KEEPALIVE_VALS 和Heart-Beat线程。下面我就上面的三种方法来做一下介绍。(1)SO_KEEPALIVE 机制 这是socket
2009-11-30 21:17:00
9372
原创 Delphi- repeate
repeate do something .... until (not) .... while..do是条件先行,repeat..until是条件后行,所以repeat..until的语法段里面至少要运行一次
2009-11-29 10:58:00
628
原创 消息驱动
SendNotifyMessage----------------------函数功能:该函数将指定的消息发送到一个窗口。 如果该窗口是由调用线程创建的;此函数为该窗口调用窗口程序, 并等待窗口程序处理完消息后再返回。 如果该窗口是由不同的线程创建的,此函数将消息传给该窗口程序, 并立即返回,不等待窗口程序处理完消息。 S
2009-11-29 10:29:00
1786
1
转载 端口技术 GetOverlappedResult [转]
端口技术 GetOverlappedResult [转] 以一个文件传输服务端为例,在我的机器上它只起两个线程就可以为很多个个客户端同时提供文件下载服务,程序的性能会随机器内CPU个数的增加而线性增长,我尽可能做到使它清晰易懂,虽然程序很小却用到了NT5的一些新特性,重叠IO,完成端口以及线程池,基于这种模型的服务端程序应该是NT系统上性能最好的了.首
2009-11-28 22:19:00
847
原创 MsgWaitForMultipleObjects WaitForMultipleObjects
函数的原形 DWORD MsgWaitForMultipleObjects( DWORD nCount, //pHandle所指的handle数组中元素的个数 LPHANDLE pHandle, //指向一个由对象handle所组成的数组
2009-11-28 21:58:00
1756
原创 WSAIoctl Function
套接字选项和I/O控制命令 套接字一旦建立,通过套接字选项和I/O控制命令对各种属性进行操作,便可对套接字的行为产生影响。有的选项只用于信息的返回,而有的选项则可在应用程序中影响套接字的行为。I / O控制命令肯定会对套接字的行为产生影响。 下面着重讨论四个Winsock函数:getsocko
2009-11-28 18:23:00
13825
4
转载 套接字IO模型(三) WSAEventSelect模型
SAEventSelect模型与WSAAsyncSelect模型类似,差别在于前者的网络事件是由事件句柄完成,后者的网络事件是由窗口过程完成。WSAEventSelect的优点在于概念简单,不需要窗口环境。缺点在于每次只能等待64个事件,这就是说在处理多天64个的SOCKET时必须组织一个线程池。如需处理大量的SOCKET连接
2009-11-28 17:22:00
1906
转载 QueueUserAPC Function
miranda-APC(异步过程调用)分析 APC : asynchronous procdure call 异步过程调用 Alertable IO(告警IO)提供了更有效的异步通知形式。ReadFileEx / WriteFileEx在发出IO请求的同时, 提供一个回调函数(APC过程)
2009-11-28 16:39:00
1248
转载 APCs (二)
上文中讲到投递User Mode APCs是很特殊的,道理很简单,因为User Mode APC是ring3下的回调函数,显然ring0中的KiDeliverAPC()不能像Kernel Mode APC那样直接call,必须要先回到ring3环境下。当然不能像普通情况那样返回(否则就回到ri
2009-11-28 16:37:00
708
转载 异步过程调用(APCs)
异步过程调用(APCs) 是NT异步处理体系结构中的一个基础部分,理解了它,对于了解NT怎样操作和执行几个核心的系统操作很有帮助。1) APCs允许用户程序和系统元件在一个进程的地址空间内某个线程的上下文中执行代码。2)I/O管理器使用APCs来完成一个线程发起的异步的I/O操作。例如:当一个设备驱动调用IoCompleteRequest来通知I/O管理器,它已经结
2009-11-28 16:35:00
2177
转载 Code Inject的新技术
Code Inject的新技术 inject的一般方法是:CreateRemoteThread;今天在Rootkit上看到一个新的方法,让我想起1年前我看到过的类似方法,大家一起看看这种方法吧:1) 1年前我所看到的方法 DWORD dwResult; HANDLE hThread; HANDLE hProcess; char
2009-11-28 16:28:00
897
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人