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

            Feedback

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

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

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

            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  回復  更多評論   

            91麻豆精品国产91久久久久久| 日韩AV毛片精品久久久| 看久久久久久a级毛片| 久久精品一本到99热免费| 99久久精品这里只有精品 | 国产午夜免费高清久久影院| 国产一区二区三区久久| 日本WV一本一道久久香蕉| 中文精品久久久久国产网址| 久久99精品国产麻豆宅宅| 久久亚洲中文字幕精品有坂深雪| 精品久久久久久国产免费了| 欧美丰满熟妇BBB久久久| 亚洲国产成人精品无码久久久久久综合 | 欧美日韩久久中文字幕| 秋霞久久国产精品电影院| 久久精品国产2020| 合区精品久久久中文字幕一区 | 久久精品国产亚洲精品| 国产99精品久久| 国产激情久久久久久熟女老人 | 伊人久久综合精品无码AV专区| 久久久综合香蕉尹人综合网| 四虎国产精品免费久久久| 69久久精品无码一区二区| 精品久久久久久无码专区| 亚洲AV日韩精品久久久久| 久久精品国产亚洲AV影院| 久久婷婷午色综合夜啪| 无码人妻久久一区二区三区蜜桃| 亚洲国产成人久久精品99| 久久久久久久免费视频| 久久精品国产男包| 久久亚洲AV无码精品色午夜| 无码八A片人妻少妇久久| 伊人色综合九久久天天蜜桃| 国产精品久久久久a影院| 久久久精品人妻一区二区三区蜜桃 | 久久久久久久女国产乱让韩| 麻豆亚洲AV永久无码精品久久 | 中文精品99久久国产|