Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "main.h" // main.h on http://pastebin.com/vbB50sS2
- // a sample exported function
- using namespace std;
- string banana = "Hello";
- HINSTANCE MyHandle;
- void RealMain()
- {
- HMODULE modules[1024];
- DWORD M_Needed;
- char buff [MAX_PATH];
- DisableThreadLibraryCalls(MyHandle);
- AllocConsole();
- freopen("CONIN$", "r", stdin);
- freopen("CONOUT$", "w", stdout);
- freopen("CONOUT$", "w", stderr);
- SetConsoleTitle("Console");
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
- cout <<banana.length()<<endl;
- cin.get();
- EnumProcessModules(GetCurrentProcess(),modules,sizeof(modules),&M_Needed);
- for(int i = 0;i<(M_Needed/sizeof(HMODULE));i++){
- if (GetModuleBaseName(GetCurrentProcess(),modules[i],buff,sizeof(buff))&&(modules[i]!=MyHandle)){
- printf("%i\t| %08X : %s\n",i,modules[i],buff);
- }
- }
- system("PAUSE>NULL");
- FreeConsole();
- FreeLibraryAndExitThread(MyHandle, 0);
- }
- extern "C" DLL_EXPORT BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
- {
- switch (fdwReason)
- {
- case DLL_PROCESS_ATTACH:
- MyHandle = hinstDLL;
- CreateThread(0,0,(LPTHREAD_START_ROUTINE)RealMain,0,0,0);
- break;
- case DLL_PROCESS_DETACH:
- // detach from process
- break;
- case DLL_THREAD_ATTACH:
- // attach to thread
- break;
- case DLL_THREAD_DETACH:
- // detach from thread
- break;
- }
- return TRUE; // succesful
- }
Add Comment
Please, Sign In to add comment