• <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-12-02 16:53 S.l.e!ep.¢% 閱讀(237) 評(píng)論(0)  編輯 收藏 引用 所屬分類: RootKit

            About ShutDown of Windows(五)

            一直在想DLL注入時(shí)到底是怎么樣的,于是動(dòng)了下手試下

            Google 到的資料
            http://m.shnenglu.com/mydriverc/articles/28536.html

            http://m.shnenglu.com/road420/archive/2009/10/26/99510.aspx
            http://m.shnenglu.com/free2000fly/archive/2008/07/21/56764.html

            VC IDE 新建一個(gè) Win32 Dynamic-Link Library Project,名為 DLLInject

            // ?DLLInject.cpp?:?Defines?the?entry?point?for?the?DLL?application.
            //

            #include?
            " stdafx.h "

            BOOL?APIENTRY?DllMain(?HANDLE?hModule,?
            ???????????????????????DWORD??ul_reason_for_call,?
            ???????????????????????LPVOID?lpReserved
            ?????????????????????)
            {
            ????
            switch ?(?ul_reason_for_call?)
            ????{
            ????
            case ?DLL_PROCESS_ATTACH:
            ????????{
            ????????????MessageBox(?NULL,?
            " DLL已進(jìn)入目標(biāo)進(jìn)程。 " ,? " 信息 " ,?MB_ICONINFORMATION?);
            ????????}
            ????????
            break ;
            ????
            case ?DLL_PROCESS_DETACH:
            ????????{
            ????????????MessageBox(?NULL,?
            " DLL已從目標(biāo)進(jìn)程卸載。 " ,? " 信息 " ,?MB_ICONINFORMATION?);
            ????????}
            ????????
            break ;
            ????}

            ????
            return ?TRUE;

            }

            VC IDE 新建一個(gè) Win32 Console Applacation project, 名為 DLLInjectDosExe
            #include?<iostream>
            using?namespace?std;

            #include?
            <windows.h>
            #include?
            <TLHELP32.H>
            #include?
            <Shlwapi.h>
            #pragma?comment(lib,
            "Shlwapi.lib")?

            DWORD?FindTargetProcessID(?LPCTSTR?lpszProcess?)
            {
            ????DWORD?dwRet?
            =?0;
            ????HANDLE?hSnapshot?
            =?CreateToolhelp32Snapshot(?TH32CS_SNAPPROCESS,?0?);
            ????PROCESSENTRY32?pe32;
            ????pe32.dwSize?
            =?sizeof(?PROCESSENTRY32?);
            ????Process32First(?hSnapshot,?
            &pe32?);

            ????
            do
            ????{
            ????????
            if?(?lstrcmpi(?pe32.szExeFile,?lpszProcess?)?==?0?)
            ????????{
            ????????????dwRet?
            =?pe32.th32ProcessID;
            ????????????
            break;
            ????????}
            ????}?
            while?(?Process32Next(?hSnapshot,?&pe32?)?);
            ????
            ????CloseHandle(?hSnapshot?);

            ????
            return?dwRet;
            }?


            int?main()
            {
            ????DWORD?dwProcessID?
            =?0;
            ????
            ????dwProcessID?
            =?FindTargetProcessID("explorer.exe");

            ????
            //?打開目標(biāo)進(jìn)程
            ????HANDLE?hProcess?=?OpenProcess(?PROCESS_CREATE_THREAD?|?PROCESS_VM_OPERATION?|?PROCESS_VM_WRITE,?FALSE,?dwProcessID?);
            ????
            ????TCHAR?szPath[MAX_PATH]?
            =?{0};
            ????::GetModuleFileName(NULL,?szPath,?MAX_PATH);
            ????::PathRemoveFileSpec(szPath);
            ????strcat(szPath,?
            "\\DLLInject.dll");

            ????
            //?向目標(biāo)進(jìn)程地址空間寫入DLL名稱
            ????DWORD?dwSize,?dwWritten;
            ????dwSize?
            =?lstrlenA(?szPath?)?+?1;
            ????LPVOID?lpBuf?
            =?VirtualAllocEx(?hProcess,?NULL,?dwSize,?MEM_COMMIT,?PAGE_READWRITE?);
            ????
            if?(?NULL?==?lpBuf?)
            ????{
            ????????CloseHandle(?hProcess?);
            ????????
            //?失敗處理
            ????}
            ????
            if?(?WriteProcessMemory(?hProcess,?lpBuf,?(LPVOID)szPath,?dwSize,?&dwWritten?)?)
            ????{
            ????????
            //?要寫入字節(jié)數(shù)與實(shí)際寫入字節(jié)數(shù)不相等,仍屬失敗
            ????????if?(?dwWritten?!=?dwSize?)
            ????????{
            ????????????VirtualFreeEx(?hProcess,?lpBuf,?dwSize,?MEM_DECOMMIT?);
            ????????????CloseHandle(?hProcess?);
            ????????????
            //?失敗處理
            ????????}
            ????}
            ????
            else
            ????{
            ????????CloseHandle(?hProcess?);
            ????????
            //?失敗處理
            ????}
            ????
            //?使目標(biāo)進(jìn)程調(diào)用LoadLibrary,加載DLL
            ????DWORD?dwID;
            ????LPVOID?pFunc?
            =?LoadLibraryA;
            ????HANDLE?hThread?
            =?CreateRemoteThread(?hProcess,?NULL,?0,?(LPTHREAD_START_ROUTINE)pFunc,?lpBuf,?0,?&dwID?);?
            ????
            ????
            //?等待LoadLibrary加載完畢
            ????WaitForSingleObject(?hThread,?INFINITE?);
            ????
            //?釋放目標(biāo)進(jìn)程中申請(qǐng)的空間
            ????VirtualFreeEx(?hProcess,?lpBuf,?dwSize,?MEM_DECOMMIT?);
            ????CloseHandle(?hThread?);
            ????CloseHandle(?hProcess?);?

            ????
            return?0;
            }


            運(yùn)行之后,彈出 MessageBox 提示“DLL已進(jìn)入目標(biāo)進(jìn)程”
            使用 SystemCheck.exe 工具查看 explorer.exe 進(jìn)程的模塊信息時(shí),會(huì)發(fā)現(xiàn),此時(shí)多了一個(gè)
            C:\Documents and Settings\test\桌面\DLLInject.dll 的DLL
            這表示已經(jīng)注入成功

            [資料] 深入淺出dll插入型木馬病毒的原理,查殺與防范

            DLL注入的唯一用處,就是它并不需要?jiǎng)?chuàng)建一個(gè)單獨(dú)的進(jìn)程,它寄生到已有進(jìn)程里面去,在任務(wù)欄管理器里看不到它,
            達(dá)到了所謂的“隱藏進(jìn)程”的效果。
            国内精品久久久久久99蜜桃| 精品免费久久久久国产一区| 精品无码久久久久久午夜| 国产精品久久自在自线观看| 久久精品这里只有精99品| 亚洲成色www久久网站夜月| 精品九九久久国内精品| 香港aa三级久久三级老师2021国产三级精品三级在 | 囯产极品美女高潮无套久久久| 国产情侣久久久久aⅴ免费| 亚洲欧美成人久久综合中文网 | 伊人久久大香线焦AV综合影院| 久久精品国产91久久麻豆自制| 久久久一本精品99久久精品88| 好久久免费视频高清| 久久久精品国产免大香伊| 99久久www免费人成精品| 亚洲狠狠婷婷综合久久蜜芽 | 久久精品国产免费观看三人同眠| 久久不射电影网| 久久精品国产色蜜蜜麻豆| 久久综合色区| 国产精品欧美亚洲韩国日本久久 | 人妻精品久久无码专区精东影业 | 精品亚洲综合久久中文字幕| 久久婷婷国产剧情内射白浆| 国产成人精品久久亚洲高清不卡| 99国产欧美久久久精品蜜芽| 一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 | 久久久久亚洲精品无码网址| 亚洲国产精久久久久久久| 国内精品久久久久久99| 久久精品国产亚洲AV无码娇色| 超级碰碰碰碰97久久久久| 日本加勒比久久精品| 久久精品二区| 四虎影视久久久免费观看| 亚洲精品无码专区久久同性男| 久久亚洲国产成人影院网站| 久久久久亚洲爆乳少妇无| 午夜精品久久久久成人|