- 博客(122)
- 资源 (13)
- 收藏
- 关注
转载 Heap Spray相关
http://riusksk.blogbus.com/logs/223258613.html1、堆喷射堆块大小 ≈ 程序堆块分配大小,以减小堆空隙大小。 2、不能使用堆缓存块,否则可能破坏地址的可预测性,可通过申请6块相应大小的堆块来清空缓存。 3、精确定位ROP地址,目标地址如0x0c0c0c0c至堆块数据起始地址的offset = ( 0x0c0c0c0c - User
2012-11-13 09:36:55
2213
转载 Windbg的配置
WinDbg配置和使用基础 WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。1. WinDbg介绍: Debugging Tools and Symbols: Getting Startedhttp://www.microsoft.com/whdc/devtools
2012-10-12 13:08:11
1969
转载 [ZZ]windows堆管理的函数
用户使用内存分配函数分配的内存都位于堆中,所以使用堆管理函数对内存进行分配,释放等是最直接的方式.windows系统中,每个进程都有自己的堆,每个进程堆数量也不同,windows系统中所谓的堆(Heap)并不是内存块,而是一种内存管理对象,是一种内存组织的形式.进程可以从属于自己的堆上分配内存和释放内存.堆是一种内存管理对象,一个进程有若干该堆,在分配内存前需要指定从哪个堆上进行分配.
2012-08-07 14:54:52
2869
原创 开始新的学习
重新捡起来有些技术含量的东西,比如游戏引擎的设计,搜索引擎的设计,网络安全相关的设计等等。个人感觉网络安全还是最有前途的,那就用几年的时间重新来学习网络安全吧。
2011-09-18 11:20:37
1887
原创 VS2008调试后幽灵窗口解决办法
<br />1.VS2008在调试状态下,经常会出现幽灵窗口,用正常手法无法解决,只能使用ForceKillWindow.exe进行杀死。
2011-04-11 13:50:00
2331
原创 [MFC]对象序列化
<br />对象的持久性是从磁盘上读写对象的过程。MFC通过成为序列化(serialization)的机制实现对象的持久性。使用序列化,保存数据的功能可以简易而迅速的合并到MFC的应用程序中,无须使用更传统的DBMS,串行化是典型的在基于文档(SDI OR MDI)的应用程序中使用。<br /> <br />序列化的基本思想是一个类对象,能够将它记录在成员变量中的当前状态存储,也可以通过串行的读取存储的数据重新创建对象。对于一个想实现串行化操作的CObject派生类对象而言,必须实现Serialize成员函
2011-01-30 09:49:00
2899
原创 copy命令使用小技巧
<br />在使用VS2008开发过程中,设置了post_build event,将需要提供给外部使用的头文件拷贝到发布目录下。<br /> <br />这存在一个问题是copy命令默认文件路径不允许存在空格,导致创建的工程如果放在空格目录下会导致工程build失败。<br /> <br />将dest与src加上一个引号,就搞定了
2011-01-26 14:24:00
2224
原创 C++中,静态指针成员变量
<br />静态指针成员变量用new得到的,就一定是在heap上,在程序退出时需要调用delete对指针成员进行析构。<br /> <br /> <br />由于静态成员的特殊性,所以如果需要对静态成员提前析构,则需要创建临时指针变量得到静态指针成员的值,然后通过临时指针变量对所指向的对象进行析构。然后将静态指针成员赋值为NULL。<br /> <br /> <br />mark:发现一个有趣的bug,在进行静态成员变量的析构时,vs2008竟然上报指针指向的地址不在HEAP内,百思不得其解啊。<br />
2011-01-22 09:33:00
7486
原创 MFC编程中,应用程序界面最小化与显示之间切换时,GDI对象增加
<br />最近在看MFC的代码时,发现了一个有趣的现象。<br /> <br /> <br />修改了SetIcon(m_hIcon,FALSE)为SetIcon(m_hIcon,TRUE),结果build成功并执行的时候,发现在应用程序界面切换时出现了GDI对象泄漏的情况,让我困惑不解。<br /> <br /> <br />查了一下SetIcon:<br /> <br /><br />SetIcon(m_hIcon, FALSE);// Set small icon<br /><br />有了这句话,
2011-01-22 09:09:00
2845
原创 CPPUNIT使用学习手册
<br />CPPUNIT的下载与编译:<br /> <br />1.先下载最新版cppunit-1.12.1.tar.gz (网址为http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page#Download);<br /> <br />2.解压缩,进入cppunit-1.12.1/src目录,就是源代码所在,打开CppUnitLibraries.dsw工程,使用VS2008转为CppUnitLibraries.sln,删
2010-10-19 14:29:00
2603
原创 快速排序代码实现_我来找茬
钱能著的《C++程序设计教程》中,使用的是@1的代码,但是此处代码的语义不正确,因此改成了@2标注的代码。#include using namespace std;void qsort(int[], int , int);int main(void){ int array[] = {33,32,34,32,35,32,36}; int len = sizeof(array)/sizeof(int); for (int i = 0 ; i
2010-10-11 19:15:00
2072
原创 PDA动态调用JAVA提供的WebService
<br />开发环境采用VS2008,安装手机开发工具包。<br /> <br />1.创建一个SmartDevice工程,选择Windows CE ,在工程面板上选择需要的开发包;<br /> <br />2.在创建的工程中,选定Reference,点击右键,在弹出的界面中选择Add Web Reference;<br /> <br /><br /> <br />3.在弹出的Add Web Service界面中,在URL地址中添上对应的wsdl地址,然后点GO;<br /> <br /><br /> <b
2010-07-01 17:10:00
4909
原创 Windows Mobile SDK安装失败解决方法
<br />在安装Windows Mobile SDK的时候,遇到了两个问题。<br /> <br />我的开发环境是 VS 2008 ,在安装的VS 2008的时候,选择了默认的安装方式。<br /> <br />今天在安装Windows Mobile SDK时,先是弹出error的提示框,内容如下:<br /> <br />ToolsMsmCA(Error):IHxFilters filter registration failure: Err = 0×80040305,Context = pFilte
2010-07-01 10:27:00
6935
2
原创 PDA端实现动态访问Web Service的方法
<br />hoho<br />PDA通过USB连接到PC上,PC端安装ActiveSync软件,此时通信方式可以采用三种编程方式实现PDA与PC之间的访问。<br />1.传统的串口编程;<br />2.使用SOCKET编程,此时使用的ppp_peer,可以将PC或PDA端作为Server/Client的;<br />3.PDA访问时采用WebService的方法
2010-06-30 22:50:00
4092
原创 [转载]c# WebService调用的三大难题
<br />一、用C#实现WebService是相当简单的事情,我们只要创建一个Web服务程序,在方法名上面加上[WebMethod],部署到IIS上,就能像访问Web站点一样访问WebService。<br />用C#编写客户端时,只需要将WebService添加到引用,就能像调用本地方法一样去C# WebService调用。像这样的例子也比比皆是,在这就不多讲。<br />二、用C++实现WebService,一般会用到gsoap,具体方法见:http://www.cppblog.com/qiujian
2010-06-30 22:04:00
2492
原创 破解WIN2K、XP、2003密码记录
<br />以前在实验室的时候解决过,不过那时候的机器是有Flopy Disk Driver的,现在很多机器既没有软驱也没光驱,就堵住了软盘启动盘、光盘启动盘的路子。不过还是有USB口,只要有一个口基本上就能够破解。在网上搜了点东西,整理一下。<br /> <br />1.USB启动盘的制作<br /> 预备USBOOT 1.7,可以在http://search.download.youkuaiyun.com/source/542886下载; 使用USBoot v1.7时,需要注意选择 工作模式 时,一
2010-06-24 16:18:00
1992
原创 Matt Pietrek先生的《深入探索PE文件结构》
<br />网址:http://www.360doc.com/content/10/0113/14/59579_13431451.shtml<br /> <br />译者是姜庆东先生
2010-06-09 10:01:00
3007
原创 C++ Literal Constant的定义
<br />http://cpp.comsci.us/etymology/literals.html
2010-06-03 23:35:00
1771
原创 深入浅出设计模式(C#/Java版)
GRASP模式:General Responsibility Assignment Software Patterns:通用责任分配软件模式 里面重要的概念是责任,责任是类间的一种合约或是义务,可以细分为两部分,用公式表示如下: 责任 = 知道责任 + 行为责任(这里面似乎存在概念的循环定义) 注:用通俗的话来讲,责任就是一个类知道要做什么,并且能够做什么。 分为:
2010-04-26 16:43:00
1479
原创 有声读物网址
有声读物的网址: http://www.justing.com.cn http://ashinesneighbor.blogbus.com/logs/35155903.html
2010-02-04 16:10:00
616
原创 SOCKET编程小知识
int setsockopt(SOCKET s,int level,int optname,const char* optval,int optlen);s(套接字): 指向一个打开的套接口描述字level:(级别): 指定选项代码的类型。SOL_SOCKET: 基本套接口IPPROTO_IP: IPv4套接口IPPROTO_IPV6: IPv6套接口IPPROTO_TCP: TCP套接口op
2009-12-02 20:46:00
806
原创 查找及排序
所有的程序最终都会体现到对数据的查找及排序上。 最优的查找算法时间复杂度是log2n,最优的排序算法总是n*log2n。 计算一个算法,要考虑数据的组织形式,也就是数据结构。比如我们要做查找,首先得考虑数据是如何组织的,是线性表还是树或者图; 其次要充分利用当前数据组织形式的性质。 查找及排序的算法有很多,对一个算法的评定,会考虑到时间复杂度、空间复杂度;时间或空间
2009-09-19 00:17:00
570
原创 基于Dialog的应用程序,添加水平与垂直滚动条
void CMy8900RODDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){ // TODO: Add your message handler code here and/or call default SCROLLINFO scrollinfo; GetScrollInfo(SB_HOR
2009-08-10 11:16:00
3867
原创 任务门,调用门,中断门,陷阱门
每个任务有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时,要用到这些信息。为了控制任务内发生特权级变换的转移,为了控制任务切换,一般要通过控制门进行这些转移。本文将介绍任务状态段和控制门。系统段描述符系统段是为了实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述符表LDT段。用于描述系统段的描
2009-08-02 12:43:00
15372
原创 VS2008 Feature Pack中 CMFCOutlookBarPane 问题
最近使用VS2008 Feature Pack进行开发,遇到了一下这个的现象。 使用CMFCOutlookBarPane声明了一个ShortCuts,在调用CMFCOutlookBarTabCtrl的 pShortcutsBarContainer->InsertTab (&m_wndShortcutsPaneOn, _T("Test1"), 0,(UINT)1, FALS
2009-07-31 22:26:00
2951
4
原创 CListCtrl控件使用
在似乎用CListCtrl控件时,遇到了一个问题,将CListCtrl的属性设置成自绘制了,当Report风格下,会调用DrawItem,这是个虚函数,用于自己绘制List的各个Item,CListCtrl中的实现是在Debug版本下直接报错,也就是你必须重载它。如果你不需要自绘,在资源编辑器里,把这个列表控件的OWNER DRAW风格取消掉就行了。
2009-07-15 16:24:00
651
转载 内存映射文件
与虚拟内存一样,内存映射文件可以用来保留一个地址空间的区域,一旦该文件被映射,就可以访问它,就像整个文件已经加载内存一样。 内存映射文件可以用于3个不同的目的: 1. 系统使用内存映射文件,以便加载和执行exe 和dll文件,这可以大大节省页文件空间和应用程序启动运行所需的时间。 2.可以使用内存映射文件来访问磁盘上的数据文件,这使你可以不必对文件执行I/O操作,并且可以不必对文件内容进
2009-07-12 22:26:00
795
转载 C++中的字节对齐
选择自 soloist 的 Blog 当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密。 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺
2009-07-06 15:45:00
1021
原创 VS 2008 Feature Pack使用
微软在周一释出了"Microsoft Visual C++ 2008 Feature Pack”,这个功能增强包主要在应用程序的“Look and Feel”和C++的TR1两个方面做了增强。可惜的是,这个增强包目前只有英文版,其他语言版本要等到VS2008的SP1了。在界面方面,集成了BCGSoft的界面控件,现在可以利用VC2008,轻松创建VS2005,Office 2007风格的应用程
2009-07-02 09:44:00
6608
3
原创 VS 2005的depends工具
VC自带的Depends软件,在VS2005中其路径为:*/Microsoft Visual Studio 8/Common7/Tools/Bin下,双击Depends.exe然后打开你需要查看的.exe文件即可。 还要有以下几个注意事项:& ?* ^1)所编的软件所需的Dll文件,可以得到相应的Dll路径、版本、属性等[2)窗口分四部分: 左上角是Dll信息窗口
2009-06-23 11:07:00
3117
转载 MFC的类及相关头文件
MFC类与对应头文件,大概230个类: CAnimateCtrl afxcmn.h CArchive afx.h CArchiveException afx.h CArray afxtempl.h CAsyncMonikerFile afxole.h CAsyncSocket afxsock.h CBitmap afxwin.h CBitm
2009-05-21 12:14:00
1263
原创 枚举串口号函数
#include #include #include #include using namespace std;bool EnumSerialPort(OUT list &m_SerialPortNum) //枚举串口 { list m_arrSerialPort; // 串口链表
2009-05-21 12:10:00
1076
转载 一个很不错的网站
http://www.uml.org.cn 内容很是全面,抄袭一篇文章 一、一个经过编译的C/C++的程序占用的内存分成以下几个部分:1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS
2009-05-19 09:45:00
776
原创 Startup代码
在C++ 中,有四种方法可以产生一个对象。第一种方法是在堆栈(stack)之中产生它:void MyFunc(){CFoo foo; // 在堆栈(stack)中产生foo 对象...}第二种方法是在堆积(heap)之中产生它:void MyFunc(){...CFoo* pFoo = new CFoo(); // 在堆(heap)中产生对象}第三种方法是产生一个全域对象(同时也必然是个静态对
2009-04-08 21:39:00
813
Dynamic Class Loading in the Java Virtual Machine
2008-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人