从进程空间卸载模块的方法
2010-10-31 14:54
435 查看
从进程中卸载模块有两种方法
1.
1.
/************************************************************************************* 程序作用: 用 NtUnmapViewOfSection 来卸载DLL。测试成功! 程序原理: 程序作者: wyART 代码日期: 2009-12-01 修改日期: 2009-12-01 *************************************************************************************/ typedef DWORD (WINAPI *pfnNtUnmapViewOfSection)(HANDLE hProcess, PVOID Address); BOOL UnmapViewOfModule(DWORD dwProcessId, LPVOID lpBaseAddr) { ULONG ret; pfnNtUnmapViewOfSection NtUnmapViewOfSection = (pfnNtUnmapViewOfSection) GetProcAddress (GetModuleHandle ("ntdll.dll" ) , "NtUnmapViewOfSection" ) ; HANDLE hProcess = OpenProcess ( PROCESS_ALL_ACCESS, TRUE, dwProcessId) ; if(NtUnmapViewOfSection) ret = NtUnmapViewOfSection(hProcess, lpBaseAddr) ; CloseHandle ( hProcess ) ; return ret ? FALSE : TRUE ; } //进程提权函数 BOOL WINAPI AdjustPrivileges() { HANDLE hToken; TOKEN_PRIVILEGES tkp; BOOL bResult=FALSE; //打开当前进程信令 if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken)) return bResult; LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tkp.Privileges[0].Luid); tkp.PrivilegeCount=1; tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; //提升访问令牌权限 AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0); if(GetLastError() == ERROR_SUCCESS) bResult=TRUE; return bResult; }
相关文章推荐
- linux下通过字符模块实现类似ps命令的查看系统进程方法
- 关于pip的安装,更新,卸载模块以及使用方法(详解)
- 如何在不结束进程的情况下卸载该进程中的dll模块
- pip的安装,更新,卸载模块以及使用方法 python
- 通过TEB/PEB枚举当前进程空间中用户模块列表
- 卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关系图报“找不到指定的模块”错误的解决方法
- 卸载进程中的模块(修改版)
- ip_conntrack_max 参数的修改方法及 卸载linux内核的 ip_conntrack 模块
- 通过TEB/PEB枚举当前进程空间中用户模块列表
- 另一种读写进程内存空间的方法
- python中 pip的安装,更新,卸载模块以及使用方法
- win 7、win8注册 卸载 报错: 模块XXX已加载 但对DllUnregisterServer的调用失败 处理方法
- 卸载掉指定进程中的指定模块
- 卸载其他进程中的dll模块
- Java总结(九)——(线程模块 一(线程的创建(方法一)与启动,线程状态与生命周期,进程与线程))
- 学习笔记之卸载远程目标进程中的DLL模块(转)
- 在python中安装和卸载第三方模块的方法
- 不结束进程卸载关键进程中DLL文件的方法
- 通过TEB/PEB枚举当前进程空间中用户模块列表
- 通过TEB/PEB枚举当前进程空间中用户模块列表