Windows下的HEAP溢出及其利用(2)

四、实战 由于Windows下的溢出对于本地利用来说没有多大意义,所以我们一个存在HEAP溢出漏洞的网络程序为例:/* win_heap_vul.c Windows下存在HEAP溢出漏洞的服务端程序 */ #define PORT 1500 #define BUFFLEN 32 //分配内存的大小 #define COPYLEN 64 //实际拷贝的大小 int main() { WSADATA wsd; SOCKET sListen, sClient; struct sockaddr_in local, client; int iAddrSize; HANDLE hHeap; char...

Windows下的HEAP溢出及其利用(1)

一、概述 前一段时间ASP的溢出闹的沸沸扬扬,这个漏洞并不是普通的堆栈溢出,而是发生在HEAP中的溢出,这使大家重新认识到了Windows下的HEAP溢出的可利用性。其实WIN下的HEAP溢出比Linux和SOLARIS下面的还要简单得多,大家肯定已经都搞明白了,我来做是一个总结,以免自己将来忘了。由于缺乏这方面的资料及源代码,所有的分析结果都来自于反汇编和调试的分析,所以错误之处在所难免,敬请各位指正。 以下所有程序的测试环境为: 中文版Windows 2000 + SP2 VC++ 6.0 二、Windows的HEAP管理机制简述 同LINUX一样,Windows的HEAP区是程序动...

Windows下的HEAP溢出及其利用

一、概述 前一段时间ASP的溢出闹的沸沸扬扬,这个漏洞并不是普通的堆栈溢出,而是发生在HEAP中的溢出,这使大家重新认识到了Windows下的HEAP溢出的可利用性。其实WIN下的HEAP溢出比Linux和SOLARIS下面的还要简单得多,大家肯定搞明白了,我来做一个总结,以免自己将来忘了。由于缺乏这方面的资料及源代码,所有的分析结果都来自于反汇编和调试的分析,所以错误之处在所难免,敬请各位指正。程序的测试环境为:中文版Windows 2000 + SP2 VC++ 6.0 二、Windows的HEAP管理机制简述 同LINUX一样,Windows的HEAP区是程序动态分配一块内存...

Delphi与Word之间的融合技术

一、VBA代码含义 Microsoft Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处理系统,它集成了Microsoft Visual Basic,可以通过编程来实现对Word功能的扩展。 Microsoft Visual Basic在word中的代码即Word的宏,通过编写Word宏,可实现一些文档处理的自动化,如实现文档的自动备份、存盘等,可扩展Word文档的功能,因此,能够充分利用Word的特性,甚至使Word成为自己软件的一部分。 Word的宏既有有利的一部分,因为它能够帮助我们实现文档的自动化,但是Word的宏也不是纯粹的有利,有时它可能危...

Delphi中控制VBA 宏

如何在Delphi里面利用Word的VBA代码进行一些总结 1、 生成VBA代码。Word本身具有很强的可扩展性,尤其是支持用户自定义功能,其实现 的主要方式就是通过VBA代码来实现的。在“工具->宏->Visual Basic编辑器”里面就可以看 到具体的宏代码,可以直接进行编辑。而且还可以使用录制宏的功能自动生成宏代码。方法是 选择“工具->宏->录制新宏”,然后执行自己想通过程序实现的功能,如存盘、打印等功能, 此时Word一边执行你要实现功能,一边将你的操作生成了一个宏,在实现功能后,可以选择 “工具->宏->VisualBasic编辑器”,查看生成的宏代码。 例如...

发送邮件代码

procedure TForm1.Button1Click(Sender: TObject); begin try IdSMTP1.AuthenticationType:=atLogin; //设置登陆类型 IdSMTP1.Username:=Edit1.Text; //设置登陆帐号 IdSMTP1.Password:=Edit2.Text; //设置登陆密码 IdSMTP1.Host:=Edit3.Text; //设置SMTP地址 IdSMTP1.Port:=strtoint(Edit4.Text); //设置端口 必须转化为整型 ...

DBGrid的网格长度怎样根据实际字符串长度变化

///////Begin Sourceuses Math;function DBGridRecordSize(mColumn: TColumn): Boolean;{ 返回记录数据网格列显示最大宽度是否成功 }begin Result := False; if not Assigned(mColumn.Field) then Exit; mColumn.Field.Tag := Max(mColumn.Field.Tag, TDBGrid(mColumn.Grid).Canvas.TextWidth(mColumn.Field.DisplayText)); Result ...

Borland Delphi一句话帮助

1. 如果想你的程序能够正确处理异常情况的话,请引用SysUtils.pas单元,否则即使程序使用了try。。。except。。。也不能正确捕获异常。2. 定义常量字符串的一种方式resourcestringaa='aaaa';raise Exception.CreateRes(@aa);3. 字符串常量数组的初始化const constarray:array [0..2] of string=(‘first’,’second’,’third’);4. 结构体初始化type Tstructinit=recordA1:integer;A2:array [0..2] of integer;E...
浏览80382次