Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Source Kill Icesword từ UserMode

  1. #1
    Ngày gia nhập
    12 2008
    Bài viết
    198

    Wink Source Kill Icesword từ UserMode

    em không hiểu cái source này nó làm việc thế nào nữa
    PHP Code:
    //
    // 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\\rkhdrv10"
    #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 hWndBOOL fShutDownBOOL 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 hWndLPARAM lParam)
    {
        
    CHAR szWindowTitle[256];
        
    INT    iWindowTitleLn;

        
    iWindowTitleLn GetWindowText(hWndszWindowTitlesizeof szWindowTitle sizeof szWindowTitle[0] - 1);
        
        if (!
    strcmp(szWindowTitleRKU_BTN_UNHOOK_ALL))
            
    g_fBtnUnhookAll TRUE;

        if (!
    strcmp(szWindowTitleRKU_BTN_UNHOOK_SEL))
            
    g_fBtnUnhookSel TRUE;

        if (!
    strcmp(szWindowTitleRKU_BTN_SCAN))
            
    g_fBtnScan TRUE;

        if (!
    strcmp(szWindowTitleRKU_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 hWndLPARAM lParam)
    {
        
    CHAR szWindowTitle[256], szClassName[256];
        
    INT    iWindowTitleLn;
        
    INT i;

        
    iWindowTitleLn GetWindowText(hWndszWindowTitlesizeof 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 (
    0iWindowTitleLni++)
            {
                if (!((
    szWindowTitle[i] >= '0' && szWindowTitle[i] <= '9') || (szWindowTitle[i] >= 'A' && szWindowTitle[i] <= 'F')))
                    break;
            }

            if (
    == iWindowTitleLn)
            {
                
    GetClassName(hWndszClassNamesizeof szClassName sizeof szClassName[0] - 1);
                if (!
    strcmp(szClassNameRKU_WINDOW_CLASS_NAME))
                {
                    
    EnumChildWindows(hWndEnumChildProc, (LPARAM)NULL);
                    if (
    g_fChildWindowsFound)
                    {
                        
    g_hRkUWindow hWnd;
                        return 
    FALSE;
                    }
                }
            }
        }

        return 
    TRUE;
    }


    //
    // main()
    //
    int main(int argccharargv[])
    {
        
    HMODULE hUser32 NULL;
        
    fEndTask _EndTask
        
    HANDLE hDevice;

        
    printf("RkUKiller, version 1.0; Copyright (c) aintrust, 2006\n\n");

        
    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\n"GetLastError());
                
    _getch();
                return 
    1;
            }
        }

        
    _EndTask = (fEndTask)GetProcAddress(hUser32END_TASK);
        if (
    _EndTask == NULL)
        {
            
    printf("RkUKiller error: Unable to get EndTask() function address, error %d\n"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_PATHRKU_SYS_DEVICE_NAMERKU_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\n");

        
    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...\n");
            
    _getch();
            return 
    1;
        }

        
    //
        // RkU window is found, just terminate it...
        //
        
    if (!(_EndTask(g_hRkUWindowFALSETRUE)))
        {
            
    printf("RkUKiller error: EndTask() call failed, error %d\n"GetLastError());
            
    _getch();
            return 
    1;
        }

        
    printf("RkU has been terminated successfully, bye...\n");
        
    _getch();

        return 
    0;


  2. #2
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Bạn tham gia virusvn.com cũng biết đến cách này là meoconlongvang nghĩ ra lâu rồi chứ nhỉ.

  3. #3
    Ngày gia nhập
    12 2008
    Bài viết
    198

    đây là cách của bọn nước ngoài,mình không nhớ link,source này mình thử test nhưng không kill được,đang chưa biết cách sử dụng

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    Nhà trọ
    Bài viết
    49

    Trích dẫn Nguyên bản được gửi bởi Cpro Xem bài viết
    đây là cách của bọn nước ngoài,mình không nhớ link,source này mình thử test nhưng không kill được,đang chưa biết cách sử dụng
    http://virusvn.com/forum/showthread.php?t=287

  5. #5
    Ngày gia nhập
    12 2008
    Bài viết
    198

    đây là phương pháp kill process có cửa sổ bằng cách đặt cửa sổ bất kỳ làm cửa sổ cha của Process,sau đó kill cửa sổ cha đó thì tất cả đều bị kill,nó khác với phương pháp source mình vừa post mà

Các đề tài tương tự

  1. Hướng Dẫn Kill tường lửa của windows
    Gửi bởi AlexF trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 16-02-2010, 12:17 AM
  2. Kill Process bằng việc Kill toàn bộ thread của Process đó trên VC++ như thế nào?
    Gửi bởi AdminPro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 22-05-2009, 05:44 PM
  3. code liệt kê các process của icesword Xin File isdrv120.sys của nó
    Gửi bởi AlexF trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 15-05-2009, 12:08 AM
  4. Source Kill Icesword từ UserMode
    Gửi bởi Cpro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 17-04-2009, 04:19 PM
  5. Icesword Kill Process bằng cách nào vậy
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 12-04-2009, 05:02 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn