/// <summary> /// Enumerate process modules /// </summary> /// <param name="result">Found modules</param> /// <param name="mtype">Module type: x86 or x64</param> /// <returns>Module count</returns> std::vector<ModuleDataPtr> Native::EnumModules( eModSeachType search/*= LdrList*/, eModType mtype /*= mt_default */ ) { if (search == LdrList) { // Detect module type if (mtype == mt_default) mtype = _wowBarrier.targetWow64 ? mt_mod32 : mt_mod64; return CALL_64_86( mtype == mt_mod64, EnumModulesT ); } else if(search == Sections) { return EnumSections(); } else if(search == PEHeaders) { return EnumPEHeaders(); } return std::vector<ModuleDataPtr>(); }
/// <summary> /// Enumerate process modules /// </summary> /// <param name="result">Found modules</param> /// <param name="mtype">Module type: x86 or x64</param> /// <returns>Module count</returns> size_t Native::EnumModules( listModules& result, eModSeachType search/*= LdrList*/, eModType mtype /*= mt_default */ ) { if (search == LdrList) { // Detect module type if (mtype == mt_default) mtype = _wowBarrier.targetWow64 ? mt_mod32 : mt_mod64; return (mtype == mt_mod32) ? EnumModulesT<DWORD>( result ) : EnumModulesT<DWORD64>( result ); } else if(search == Sections) { return EnumSections( result ); } else if(search == PEHeaders) { return EnumPEHeaders( result ); } return 0; }