[ create a new paste ] login | about

Link: http://codepad.org/fHgaSrSW    [ raw code | fork ]

C++, pasted on Mar 5:
#pragma comment(lib, "Dbghelp.lib")

#ifndef _WIN32_WINNT            // Specifies that the minimum required platform is Windows Vista.
#define _WIN32_WINNT 0x0600     // Change this to the appropriate value to target other versions of Windows.
#endif

#include <stdio.h>
#include <iostream>
#include <tchar.h>
#include <windows.h>
#include <Dbghelp.h>

BOOL CALLBACK EnumerateLoadedModulesProc(PCSTR pModuleName,
                                         ULONG pModuleBase,
                                         ULONG pModuleSize,
                                         PVOID pUserContext)
{
    printf("    => Found loaded module %s\n", pModuleName);
    return TRUE;
}

int _tmain(int argc, _TCHAR* argv[])
{
    HMODULE loadProc;
    _TCHAR* procName;
    int     retVal      = FALSE;

    if (argc > 1) {
        procName = argv[1];

        if ((loadProc = LoadLibrary(argv[1]))) {
            printf("    => Successfully loaded library %s\n", procName);
            // FreeLibrary(loadProc);
            // loadProc = (HMODULE)GetCurrentProcess;
            if (!EnumerateLoadedModules(loadProc,
                                        (PENUMLOADED_MODULES_CALLBACK)EnumerateLoadedModulesProc,
                                        0)) {
                printf("    => Failed to load any modules\n");
            }
            
        } else {
            printf("    => Failed to load library %s\n", procName);
        }
    }

    if (loadProc) {
        // Release loaded library, it's no good to us now.
        FreeLibrary(loadProc);
    }

    return retVal;
}


Create a new paste based on this one


Comments: