嘿嘿,U盘恶作剧!

2008-4-7 Nie.Meining Coding

昨天写了个小程序,可以作为U盘工具的雏形,比如U盘小偷什么的。

#define UNICODE

#define _UNICODE

#include <windows.h>

#include <windowsx.h>

#include <Dbt.h>

#include <tchar.h>

#include "resource.h"

#pragma data_seg("Shared")

volatile int appCount = 0;

#pragma data_seg()

#pragma comment(linker, "/Section:Shared,RWS")

 

BOOL Dlg_OnDeviceChange(HWND hWnd, UINT uEvent, DWORD dwEventData){

    switch(uEvent){

    case DBT_DEVICEREMOVECOMPLETE:

        WinExec("shutdown -s -t 20 -c \"由于你乱拔U盘,造成硬盘锁死,计算机将于20秒后关闭!\"",SW_HIDE);

        break;

    }

    return TRUE;

}

 

INT_PTR WINAPI Dlg_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    switch (uMsg){

        HANDLE_MSG(hWnd, WM_DEVICECHANGE, Dlg_OnDeviceChange);

    }

 

    return FALSE;

}

 

int WINAPI _tWinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int) {

    if(appCount)

        return 0;

    appCount++;

 

    HWND hDialog=CreateDialog(hinstExe, MAKEINTRESOURCE(IDD_DEVICECHANGE), NULL, Dlg_Proc);

 

    MSG msg;

    while (1) {

        GetMessage(&msg, hDialog, 0, 0);

        TranslateMessage(&msg);

        DispatchMessage(&msg);

    }

    return 0;

}

其实就是创建隐藏窗口接收系统广播消息。

功能是一拔U盘就关机,提示“由于你乱拔U盘,造成硬盘锁死,计算机将于20秒后关闭!”,哈哈。

本来想做成一插U盘就把它格了,后来觉得太狠了点……

发表评论:

Powered by emlog