Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -----------------------------------------
- * Game hacking QTS ( Quickie Tip Series )
- * no. 22 - Dynamic Link Library Loader Class
- -----------------------------------------
- * Author: SEGnosis - GHAnon.net
- * Thanks to:
- * bitterbanana - No known site
- * Drunken Cheetah - No known site
- * fatboy88 - No known site
- * Geek4Ever - No known site
- * learn_more - www.uc-forum.com
- * Novocaine - http://ilsken.net/blog/?page_id=64
- * Philly0494 - No known site
- * Roverturbo - www.uc-forum.com
- * SilentKarma - www.halocoders.com - offline
- * Strife - www.uc-forum.com
- * Wieter20 - No known site
- */
- #ifndef H_LOADER
- #define H_LOADER
- #pragma comment( lib, "Psapi")
- #include <Windows.h>
- #include <shlwapi.h>
- #include <tlhelp32.h>
- #include <psapi.h>
- //----------------------------------//
- #define CREATE_THREAD_ACCESS ( PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ )
- //----------------------------------//
- void Alert( char* szString )
- {
- MessageBox( 0, szString, "Alert", MB_ICONINFORMATION );
- }
- class C_Library_Loader
- {
- public:
- C_Library_Loader();
- ~C_Library_Loader();
- C_Library_Loader( char* szpProcessName, char* szpLibrary );
- int GetTargetProcessIdFromProcName( char* szName );
- BOOL LoadLibraryIntoProcess();
- private:
- char m_szProcessName[ MAX_PATH ];
- char m_szLibrary[ MAX_PATH ];
- };
- C_Library_Loader::C_Library_Loader()
- {
- }
- C_Library_Loader::~C_Library_Loader()
- {
- }
- C_Library_Loader::C_Library_Loader( char* szpProcessName, char* szpLibrary )
- {
- strcpy( m_szProcessName, szpProcessName );
- strcpy( m_szLibrary, szpLibrary );
- }
- BOOL C_Library_Loader::LoadLibraryIntoProcess()
- {
- DWORD dwID = GetTargetProcessIdFromProcName( m_szProcessName );
- if( !dwID )
- return FALSE;
- HANDLE hProcess = OpenProcess( CREATE_THREAD_ACCESS, FALSE, dwID );
- if( hProcess != INVALID_HANDLE_VALUE )
- {
- LPVOID lpvRemoteString,
- lpvLibraryAddress;
- lpvLibraryAddress = ( LPVOID )GetProcAddress( GetModuleHandle( "kernel32.dll" ), "LoadLibraryA" );
- lpvRemoteString = ( LPVOID )VirtualAllocEx( hProcess, NULL, strlen( m_szLibrary ), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE );
- if( !lpvRemoteString )
- Alert( "Failed to allocate memory process" );
- else
- {
- WriteProcessMemory( hProcess, ( LPVOID )lpvRemoteString, m_szLibrary, strlen( m_szLibrary ), NULL );
- CreateRemoteThread( hProcess, NULL, NULL, ( LPTHREAD_START_ROUTINE )lpvLibraryAddress, ( LPVOID )lpvRemoteString, NULL, NULL );
- }
- CloseHandle( hProcess );
- return TRUE;
- }
- return FALSE;
- }
- int C_Library_Loader::GetTargetProcessIdFromProcName( char *szName )
- {
- PROCESSENTRY32 ProcessSlot;
- HANDLE hProcess;
- long iID;
- ProcessSlot.dwSize = sizeof( PROCESSENTRY32 );
- hProcess = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
- if( hProcess == INVALID_HANDLE_VALUE)
- Alert( "Failed to get process snapshot for process" );
- else
- {
- iID = Process32First( hProcess, &ProcessSlot );
- while( iID )
- {
- if( strstr( ProcessSlot.szExeFile, szName ) )
- return ProcessSlot.th32ProcessID;
- iID = Process32Next( hProcess, &ProcessSlot );
- ProcessSlot.dwSize = sizeof( PROCESSENTRY32 );
- }
- }
- return false;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment