• <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 葉子 閱讀(4779) 評論(2)  編輯 收藏 引用 所屬分類: 技術(shù)研究

            Feedback

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

            這是ring0的代碼么?  回復(fù)  更多評論   

            # re: 利用NtUnmapViewOfSection強制卸載模塊 [未登錄] 2014-07-28 18:19 小學(xué)畢業(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  回復(fù)  更多評論   

            久久精品国产亚洲AV无码娇色| 久久久久久久亚洲Av无码| 久久精品免费观看| 国产亚州精品女人久久久久久 | 国产精品久久久久久久久久影院| 欧美精品一区二区久久| 久久国产色av免费看| 日韩久久久久久中文人妻| 狠狠精品久久久无码中文字幕| 亚洲国产成人久久精品99| 伊人久久综合无码成人网| 久久精品国产99国产精偷| 久久久久久久综合日本| 久久婷婷五月综合97色一本一本| 91精品国产色综合久久| 亚洲成av人片不卡无码久久| 久久亚洲精精品中文字幕| 久久综合伊人77777麻豆| 精品乱码久久久久久久| 中文精品99久久国产 | 久久996热精品xxxx| 一本色道久久综合亚洲精品| 国产综合成人久久大片91| 午夜欧美精品久久久久久久| 久久精品成人欧美大片| 久久久久成人精品无码中文字幕| 久久精品18| 久久精品无码av| 91精品国产高清久久久久久io| 无码国内精品久久人妻蜜桃| 尹人香蕉久久99天天拍| 亚洲国产成人久久一区WWW| 久久久久九国产精品| 久久国产成人午夜aⅴ影院| 国产精品一区二区久久精品| 亚洲AV无码久久精品成人| 一本色道久久综合| 99精品国产综合久久久久五月天 | 热久久视久久精品18| 久久男人AV资源网站| 精品久久久久久久中文字幕|