找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 263|回复: 0

昭姐每天一练- 检测进程模块(来源:VC循序渐进)

[复制链接]

30

主题

1

回帖

0

积分

版主

积分
0
发表于 2013-6-8 11:00:40 | 显示全部楼层 |阅读模式


// 取得当前模块信息
VOID CCheckModuleDlg::InitModuleVect()
{
    this->ModuleVect.clear () ;
    DWORD dwProcessId = GetCurrentProcessId () ;
    HANDLE hModuleSnap = CreateToolhelp32Snapshot ( TH32CS_SNAPMODULE, dwProcessId ) ;
    if ( hModuleSnap == INVALID_HANDLE_VALUE )
        return ;

    MODULEENTRY32 me32 = { sizeof(MODULEENTRY32) } ;
    if ( Module32First ( hModuleSnap, &me32 ) )
    {
        do{
            this->ModuleVect.push_back ( me32.szModule ) ;
        }while ( Module32Next ( hModuleSnap, &me32 ) ) ;
    }

    CloseHandle ( hModuleSnap ) ;
}

// 检测指定模块在存在于起始状态
BOOL CCheckModuleDlg::IsModuleValid( CString szModuleName )
{
    // 遍历起始状态的模块列表
    for ( int i = 0; i < this->ModuleVect.size(); i++ )
    {
        if ( this->ModuleVect == szModuleName )
            return TRUE ;
    }
    return FALSE ;
}

// “统计”功能
void CCheckModuleDlg::OnBnClickedFlush()
{
    this->InitModuleVect () ;   
    MY_OutputDebugStringW ( L"当前模块数量:%d", this->ModuleVect.size() ) ;
}

// “检测”功能
void CCheckModuleDlg::OnBnClickedCheck()
{
    DWORD dwProcessId = GetCurrentProcessId () ;
    HANDLE hModuleSnap = CreateToolhelp32Snapshot ( TH32CS_SNAPMODULE, dwProcessId ) ;
    if ( hModuleSnap == INVALID_HANDLE_VALUE )
        return ;

    DWORD    dwCount = 0 ;
    MODULEENTRY32 me32 = { sizeof(MODULEENTRY32) } ;
    if ( Module32First ( hModuleSnap, &me32 ) )
    {
        do{
            if ( !this->IsModuleValid ( me32.szModule ) )
            {
                MY_OutputDebugStringW ( L"[可疑模块]%s", me32.szExePath ) ;
                dwCount ++ ;
            }
        }while ( Module32Next ( hModuleSnap, &me32 ) ) ;
    }

    CloseHandle ( hModuleSnap ) ;
    MY_OutputDebugStringW ( L"可疑模块数量:%d", dwCount ) ;
}
[attachment=52]

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

果子博客
扫码关注微信公众号

Archiver|手机版|小黑屋|风叶林

GMT+8, 2026-2-1 03:24 , Processed in 0.133041 second(s), 21 queries .

Powered by 风叶林

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表