利用NtUnmapViewOfSection強制卸載模塊
確實可以卸載指定進程指定位置的模塊,但有幾個問題:[1] PEB的模塊列表中還存在該模塊的記錄,大部分模塊枚舉函數都是枚舉這個列表
[2] 可能會出現訪問異常
看來RING3下是不可能做到強制卸載模塊的完美實現,要進ring0才行。下面是測試代碼
















posted on 2007-09-24 15:08 葉子 閱讀(4801) 評論(2) 編輯 收藏 引用 所屬分類: 技術研究
posted on 2007-09-24 15:08 葉子 閱讀(4801) 評論(2) 編輯 收藏 引用 所屬分類: 技術研究
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 回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
相關文章:
|
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|