enum DLLs in executable

    MEMORY_BASIC_INFORMATION mbi = {};
    for (unsigned char *pBase = nullptr; VirtualQuery(static_cast<void *>(pBase), &mbi, sizeof(mbi)) == sizeof(mbi); pBase += mbi.RegionSize)
    {
        if (mbi.AllocationBase == mbi.BaseAddress
            && mbi.AllocationBase != nullptr)
        {
            char dllName[MAX_PATH] = "";
            if (GetModuleFileName(static_cast<HMODULE>(mbi.AllocationBase), dllName, ArrLen(dllName)) != 0)
            {
                cout <<dllName <<endl;
            }//if GetModuleFilename
        }//if mbi
    }//for
posted @ 2012-10-23 10:35  walfud  阅读(284)  评论(0编辑  收藏  举报