检测是否有dll被注入
来源:互联网 发布:知乎数据库的数据类型 编辑:程序博客网 时间:2024/05/21 14:42
#include <windows.h>#include <Tlhelp32.h>#include <iostream>#include <vector>#include <string>using namespace std;typedef basic_string<TCHAR, char_traits<TCHAR>, allocator<TCHAR> > tstring;int ProcessModule(DWORD);int CheckProcessModule(DWORD pid);BOOL IsModuleValid(tstring szModuleName);int dwCount=0;vector<tstring> patch;vector<tstring> checkpatch;int main (void){//进程创建完毕后的模块快照ProcessModule(GetCurrentProcessId());cout<<"******************当前模块*****************"<<endl;for(int i=0;i<patch.size();i++) {cout<<patch[i].c_str()<<endl;}cout<<endl<<endl;LoadLibrary(TEXT("user32.dll"));//加载user32.dll测试HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hStdout,FOREGROUND_GREEN | FOREGROUND_INTENSITY);//检测是否存在不同的模块CheckProcessModule(GetCurrentProcessId()); cout<<"******************检测模块*****************"<<endl;for(int j=0;j<checkpatch.size();j++) {cout<<checkpatch[j].c_str()<<endl;;}cout<<endl<<endl;if (patch.size()==checkpatch.size()){cout<<"没有检测到注入模块"<<endl;}return 0;}//获取进程模块int ProcessModule(DWORD pid){HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pid);if (hProcessSnap){ MODULEENTRY32 me32;me32.dwSize=sizeof(MODULEENTRY32);Module32First(hProcessSnap,&me32);//获取进程第一个模块信息do {patch.push_back(me32.szModule);//printf("模块路径:%s\n",me32.szExePath);//printf("模块名:%s\n",me32.szModule);//printf("模块基址:0x%08X\n",(DWORD)me32.modBaseAddr);} while (Module32Next(hProcessSnap,&me32));CloseHandle(hProcessSnap);return 0;}else{cout<<"获取进程快照失败"<<endl;;return 0;}return 0;}int CheckProcessModule(DWORD pid){HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pid);if (hProcessSnap){ MODULEENTRY32 me32;me32.dwSize=sizeof(MODULEENTRY32);Module32First(hProcessSnap,&me32);//获取进程第一个模块信息do {checkpatch.push_back(me32.szModule);if (!IsModuleValid(me32.szModule)){cout<<"[可疑模块]:"<<me32.szExePath<<endl;dwCount++;}//printf("模块路径:%s\n",me32.szExePath);//printf("模块名:%s\n",me32.szModule);//printf("模块基址:0x%08X\n",(DWORD)me32.modBaseAddr);} while (Module32Next(hProcessSnap,&me32));CloseHandle(hProcessSnap);if (dwCount){cout<<"可疑模块数:"<<dwCount<<endl;}return 0;}else{cout<<"获取进程快照失败"<<endl;return 0;}return 0;}BOOL IsModuleValid(tstring szModuleName){// 遍历起始状态的模块列表for ( int i = 0; i < patch.size(); i++ ){if ( patch[i] == szModuleName )return TRUE ;}return FALSE ;}
0 0
- 检测是否有dll被注入
- 检测form表单是否有被修改
- 检测是否有浏览器
- 用 MapFileAndCheckSum 函数检测 exe 或 dll 是否被修改
- 检测主机是否有Sqlserver
- 检测iphone是否有网络
- 检测iphone是否有网络
- 链表--检测是否有环
- 检测网络是否有网络
- android 检测是否有网络
- Android检测是否有网络
- 检测Xcode是否有问题
- IOS检测是否有网络
- 检测复选框组是否有被选中
- APC注入DLL(win7下有问题)
- APC注入DLL(win7下有问题)
- 检测字符串中是否有中文
- 检测是否有dns cache漏洞
- jps命令(Java Virtual Machine Process Status Tool)
- asp.net 客户端控件变为服务端控件 Jquery 获取控件的 值
- linux 环境变量
- 101 事件 [~ie8] 事件标准化
- [BZOJ 1034] ZJOI 2008 泡泡堂BNB · 贪心
- 检测是否有dll被注入
- jstack命令(Java Stack Trace)
- 《鸟哥的Linux私房菜》读书笔记1
- 动态添加上传控件
- Android微信开放平台 申请移动应用的签名如何获取
- 信息系统项目管理师历年试题分析与解答(android版)
- Create Bat
- Struts初学之需要导入的包
- HDOJ Least Common Multiple 1019