• <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的模塊列表中還存在該模塊的記錄,大部分模塊枚舉函數都是枚舉這個列表
            [2]  可能會出現訪問異常

            看來RING3下是不可能做到強制卸載模塊的完美實現,要進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 葉子 閱讀(4801) 評論(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日韩精品久久久久久a | 狠狠色丁香久久婷婷综合| 久久97精品久久久久久久不卡| 中文字幕无码精品亚洲资源网久久 | 一本久久免费视频| 99久久精品久久久久久清纯| 人妻无码精品久久亚瑟影视| 久久久久香蕉视频| 大香网伊人久久综合网2020| 国产精品一区二区久久| 亚洲日本va午夜中文字幕久久| 久久精品国产亚洲av水果派| 久久亚洲国产成人影院网站| 久久99精品久久久久久| 热re99久久精品国99热| 久久超乳爆乳中文字幕| 老男人久久青草av高清| 午夜精品久久久久久中宇| 香港aa三级久久三级老师2021国产三级精品三级在 | 色8激情欧美成人久久综合电| 99久久婷婷国产综合亚洲| 久久精品国产久精国产一老狼| 免费无码国产欧美久久18| 久久人人爽人人爽人人片AV麻豆| 久久成人影院精品777| 久久久久久人妻无码| 狼狼综合久久久久综合网| 日韩AV毛片精品久久久| 欧美伊人久久大香线蕉综合69| 久久精品无码av| 一本综合久久国产二区|