• <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>

            elva

            利用NtUnmapViewOfSection強制卸載模塊

            確實可以卸載指定進程指定位置的模塊,但有幾個問題:
            [1]  PEB的模塊列表中還存在該模塊的記錄,大部分模塊枚舉函數(shù)都是枚舉這個列表
            [2]  可能會出現(xiàn)訪問異常

            看來RING3下是不可能做到強制卸載模塊的完美實現(xiàn),要進ring0才行。下面是測試代碼
            typedef ULONG (WINAPI *PFNNtUnmapViewOfSection)( IN HANDLE ProcessHandle,IN PVOID BaseAddress );

            BOOL UnmapViewOfModule ( DWORD dwProcessId, LPVOID lpBaseAddr )
            {
                HMODULE hModule 
            = GetModuleHandle ( L"ntdll.dll" ) ;
                
            if ( hModule == NULL )
                    hModule 
            = LoadLibrary ( L"ntdll.dll" ) ;

                PFNNtUnmapViewOfSection pfnNtUnmapViewOfSection 
            = (PFNNtUnmapViewOfSection)GetProcAddress ( hModule, "NtUnmapViewOfSection" ) ;
                
                HANDLE hProcess 
            = OpenProcess ( PROCESS_ALL_ACCESS, TRUE, dwProcessId ) ;
                ULONG    ret 
            = pfnNtUnmapViewOfSection ( hProcess, lpBaseAddr ) ;
                CloseHandle ( hProcess ) ;
                
            return ret ? false : true ;
            }

            posted on 2007-09-24 15:08 葉子 閱讀(4777) 評論(2)  編輯 收藏 引用 所屬分類: 技術研究

            Feedback

            # re: 利用NtUnmapViewOfSection強制卸載模塊 2009-09-05 03:05 mszjk

            這是ring0的代碼么?  回復  更多評論   

            # re: 利用NtUnmapViewOfSection強制卸載模塊 [未登錄] 2014-07-28 18:19 小學畢業(yè)生

            NtUnmapViewOfSection可以再Ring3下使用。
            我用VB做給你看
            Private Declare Function NtUnmapViewOfSection Lib "ntdll.dll" (ByVal ProcessHandle As Long ,ByVal BaseAddress As Long)As Long
            Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long ,ByVal bInheritHandle As Boolean, ByVal dwProcessId As Long)As Long
            Private Declare Function GetModuleHandleA Lib "kernel32" (ByVal lpModuleFileName As String) As Long
            Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
            Private Sub UnloadNtdll(ByVal PID As Long)
            Dim hProc As Long
            hProc = OpenProcess(&h8 Or &H400, False, PID)
            If hProc = 0 Then Exit Sub
            NtUnmapViewOfSection hProc, GetModuleHandleA("ntdll.dll")
            CloseHandle hProc
            End Sub  回復  更多評論   

            久久久精品国产| 色婷婷综合久久久久中文字幕| 99久久无色码中文字幕人妻| 国产精品久久婷婷六月丁香| 久久综合久久自在自线精品自| 日产精品久久久一区二区| 久久这里只精品国产99热 | 亚洲AV无码久久| 国产国产成人精品久久| 久久99久久无码毛片一区二区| 久久人人爽人人爽人人片AV不 | 国产欧美一区二区久久| 久久97久久97精品免视看| 久久无码人妻一区二区三区午夜| 国产精品日韩欧美久久综合| 亚洲精品午夜国产VA久久成人| 久久精品免费观看| 久久精品人成免费| 久久久久亚洲AV成人网人人网站 | 久久国产精品无码一区二区三区 | 久久人人爽人人爽人人AV | 乱亲女H秽乱长久久久| 久久久久久久亚洲精品| 久久精品国产99国产精偷| 无码专区久久综合久中文字幕| 精品久久国产一区二区三区香蕉| 97久久超碰成人精品网站| 亚洲精品乱码久久久久久按摩 | 久久这里的只有是精品23| 99久久精品国产毛片| 成人久久综合网| 97久久久久人妻精品专区| 亚洲中文字幕无码久久精品1| 日韩欧美亚洲综合久久影院Ds| 国产成人精品久久| 国产成人久久精品二区三区| 亚洲国产精品久久久久| 99久久国产综合精品五月天喷水 | 久久这里只有精品首页| 91精品国产色综久久| 精品国产91久久久久久久a|