Source:WC3ProfileView/profileview.cpp
Source.
Parent Directory: Source:WC3ProfileView
Plain Code: edit
#define _WIN32_WINNT 0x0500#include <stdio.H>#include <windows.h>#include <psapi.h>#include <iostream>#include <Tlhelp32.h>#include <fstream>#include "colors.cpp"using namespace std;
// Debug Priviledges.void EnableDebugPriv( )
{HANDLE hToken;
LUID sedebugnameValue; TOKEN_PRIVILEGES tkp;OpenProcessToken( GetCurrentProcess( ), TOKEN_ADJUST_PRIVILEGES |TOKEN_QUERY, &hToken );
LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue );
tkp.PrivilegeCount = 1;tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, false, &tkp, sizeof( tkp ), NULL, NULL );
CloseHandle( hToken );
} void SendText(char* message, int size)
{int lc=0;
do{
keybd_event(VkKeyScan(message[lc]),0,KEYEVENTF_EXTENDEDKEY,0);
keybd_event(VkKeyScan(message[lc]),0,KEYEVENTF_KEYUP,0);
lc=lc+1;
}while(lc<size);
//keybd_event(VK_RETURN,0,KEYEVENTF_EXTENDEDKEY,0); //Presses Return//keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0); //Presses Return}DWORD GetPID (char* proc);
DWORD GetDLL (char* DllName, DWORD tPid);
#define WRITE(i,w,l) WriteProcessMemory(hProc,reinterpret_cast<LPVOID>(GameDLL+i),w,l,&dSize)int main()
{ //HWND hWnd = GetConsoleWindow() ; //ShowWindow(hWnd, SW_HIDE); SetColor(-1,1);
ClearConsole();
char str[93];
char buf[93];
char dbuf[93];
int key = 10000;
strcpy(str, "Dibq~_7c0@b_vy|u0\\\_qtub");
for(int i=0;i < strlen(str);i++) {
char enc = (char)((int)str[i] ^ key);
buf[i] = enc;}
for(int i=0;i < strlen(buf);i++) {
char dec = (char)((int)buf[i] ^ key);
dbuf[i] = dec;}
SetConsoleTitle(buf);
EnableDebugPriv();
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, false, GetPID("war3.exe"));
TCHAR War3Name[32] = TEXT("Warcraft III");
HWND hWar3 = FindWindow(War3Name, NULL);
if(!hWar3)
{cout << "Warcraft 3 was not found. Please make sure the game is running." << endl;
system( "pause" );
return 1;
} DWORD pid;GetWindowThreadProcessId( hWar3, &pid );
HANDLE hOpen = OpenProcess( PROCESS_ALL_ACCESS, false, pid );
if( !hOpen )
{cout << "Can't open Warcraft III process." << endl;
system( "pause" );
return 1;
} DWORD Address = 113;
DWORD Address2 = 507;
DWORD Address3 = 507;
DWORD Address4 = 882;
DWORD Address5 = 882;
DWORD Address6 = 11147656;
DWORD Buffer = 0;
DWORD Buffer2 = 0;
DWORD Buffer3 = 0;
DWORD Buffer4 = 0;
DWORD Buffer5 = 0;
DWORD Buffer6 = 0;
DWORD WINAPI GetLastError(void);
SIZE_T BytesRead = 0;
DWORD GameDLL = GetDLL("Game.dll",GetPID("war3.exe"));
Sleep(100);
restart:for (;;)
{ReadProcessMemory(hOpen, (LPCVOID)(GameDLL+Address6), &Buffer6, 4, &BytesRead);
if(Buffer6 == 0)
{cout << "Not in game..." <<endl;
Sleep(3000);
ClearConsole();
} else {cout << "In game!";
//Sleep(5000);if(Buffer6 == 0)
{ //cout << "Not in game" <<endl; goto restart;
} elsefor(;;)
{ReadProcessMemory(hOpen, (LPCVOID)Address, &Buffer, 4, &BytesRead);
if(Buffer == 1953653108)
{Address += 96;
break;
} else {Address += 65536;
} }for (;;)
{ReadProcessMemory(hOpen, (LPCVOID)Address2, &Buffer2, 4, &BytesRead);
if(Buffer2 == 2036427888)
{Address2 += 28;
break;
} else {Address2 += 65536;
} }for (;;)
{ReadProcessMemory(hOpen, (LPCVOID)Address3, &Buffer3, 4, &BytesRead);
if(Buffer3 == 2036427888)
{Address3 -= 5;
break;
} else {Address3 += 65536;
} }char Name[16];
Name[15] = 0;
char Link[10];
Link[9] = 0;
char Ver[5];
Ver[4] = 0;
char Info[40];
Info[39] = 0;
char Info2[40];
Info2[39] = 0;
for( unsigned int i = 0; i < 15; i++ )
{ReadProcessMemory( hOpen, (LPVOID)( Address + i ), &Buffer, 1, &BytesRead );
Name[i] = Buffer;
}for( unsigned int i = 0; i < 9; i++ )
{ReadProcessMemory( hOpen, (LPVOID)( Address2 + i ), &Buffer2, 1, &BytesRead );
Link[i] = Buffer2;
}for( unsigned int i = 0; i < 4; i++ )
{ReadProcessMemory( hOpen, (LPVOID)( Address3 + i ), &Buffer3, 1, &BytesRead );
Ver[i] = Buffer3;
}bool once = false;
DWORD GameDLL = 0;
bool bPressed[4] = {false, false, false, false};
HWND hwnd;for(;;)
{ if(GetAsyncKeyState(VK_END) && GetAsyncKeyState(VK_END) && !bPressed[0])
{bPressed[0] = true;
DWORD GameDLL = GetDLL("Game.dll",GetPID("war3.exe"));
DWORD dSize = 0;
SetColor(4);
cout << endl << endl << "Viewing: " << endl << endl;
SetColor(11);
cout << "Version: " << Ver << endl;
cout << "Realm: " << Link << endl;
cout << "Enemy: " << Name << endl << endl;
WRITE(0x5F9C1D,"\x83\xC7\x00",3);
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_ESCAPE, 0, 0, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
ShellExecute(0, "open", "C:\\Program Files\\Internet Explorer\\iexplore.exe",0, 0, SW_SHOWNORMAL);
Sleep(5000);
keybd_event(VK_F6, 0, 0, 0);
Sleep(100);
keybd_event(VK_F6, 0, KEYEVENTF_KEYUP, 0);
SendText("www.battle.net", strlen("www.battle.net"));
Sleep(10);
keybd_event(VK_DIVIDE, 0, 0, 0);
SendText("war3", strlen("war3"));
Sleep(10);
keybd_event(VK_DIVIDE, 0, 0, 0);
SendText("ladder", strlen("ladder"));
Sleep(10);
keybd_event(VK_DIVIDE, 0, 0, 0);
SendText(Ver, strlen(Ver));
SendText("-player-profile.aspx", strlen("-player-profile.aspx"));
Sleep(10);
keybd_event(VK_SHIFT, 0, 0, 0);
Sleep(10);
//SendText("6", strlen("6")); // frenchkeybd_event(VK_OEM_2, 0, 0, 0); // english
//SendText("-", strlen("-"));keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
Sleep(10);
SendText("Gateway=", strlen("Gateway="));
Sleep(10);
SendText(Link, strlen(Link));
Sleep(10);
keybd_event(VK_SHIFT, 0, 0, 0);
SendText("7", strlen("7"));
Sleep(10);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
Sleep(10);
SendText("PlayerName=", strlen("PlayerName="));
SendText(Name, strlen(Name));
keybd_event(VK_RETURN, 0, 0, 0);
Sleep(10000);
WRITE(0x5F9C1D,"\x83\xC7\x01",3);
}else if (!GetAsyncKeyState(VK_END))
bPressed[0] = false;
if(GetAsyncKeyState(VK_HOME) && GetAsyncKeyState(VK_HOME) && !bPressed[1])
{bPressed[1] = true;
DWORD GameDLL = GetDLL("Game.dll",GetPID("war3.exe"));
DWORD dSize = 0;
SetColor(4);
cout << endl<< endl << "Viewing: " << endl << endl;
SetColor(11);
cout << "Version: " << Ver << endl;
cout << "Realm: " << Link << endl;
cout << "Enemy: " << Name << endl << endl;
WRITE(0x5F9C1D,"\x83\xC7\x00",3);
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_ESCAPE, 0, 0, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
ShellExecute(0, "open", "C:\\Program Files\\Internet Explorer\\iexplore.exe",0, 0, SW_SHOWNORMAL);
Sleep(5000);
keybd_event(VK_F6, 0, 0, 0);
Sleep(100);
keybd_event(VK_F6, 0, KEYEVENTF_KEYUP, 0);
SendText("www.battle.net", strlen("www.battle.net"));
Sleep(10);
keybd_event(VK_DIVIDE, 0, 0, 0);
SendText("war3", strlen("war3"));
Sleep(10);
keybd_event(VK_DIVIDE, 0, 0, 0);
SendText("ladder", strlen("ladder"));
Sleep(10);
keybd_event(VK_DIVIDE, 0, 0, 0);
SendText(Ver, strlen(Ver));
SendText("-player-stats.aspx", strlen("-player-profile.aspx"));
Sleep(10);
keybd_event(VK_SHIFT, 0, 0, 0);
Sleep(10);
//SendText("6", strlen("6")); // frenchkeybd_event(VK_OEM_2, 0, 0, 0); // english
//SendText("-", strlen("-"));keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
Sleep(10);
SendText("Gateway=", strlen("Gateway="));
Sleep(10);
SendText(Link, strlen(Link));
Sleep(10);
keybd_event(VK_SHIFT, 0, 0, 0);
SendText("7", strlen("7"));
Sleep(10);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
Sleep(10);
SendText("PlayerName=", strlen("PlayerName="));
SendText(Name, strlen(Name));
keybd_event(VK_RETURN, 0, 0, 0);
Sleep(10000);
WRITE(0x5F9C1D,"\x83\xC7\x01",3);
}else if (!GetAsyncKeyState(VK_HOME))
bPressed[1] = false;
if(GetAsyncKeyState(VK_F9) && GetAsyncKeyState(VK_F9) && !bPressed[2])
{ bPressed[2] = true;
keybd_event(VK_RETURN, 0, 0, 0);
Sleep(10);
keybd_event(VK_DIVIDE, 0, 0, 0);
SendText("stats ", strlen("stats "));
SendText(Name, strlen(Name));
Sleep(10);
keybd_event(VK_RETURN, 0, 0, 0);
SetColor(4);
cout << endl << endl << "Viewing: " << endl << endl;
SetColor(11);
cout << "Version: " << Ver << endl;
cout << "Realm: " << Link << endl;
cout << "Enemy: " << Name << endl << endl;
}else if (!GetAsyncKeyState(VK_F9))
bPressed[2] = false;
}}}}// Get PID for process (proc).DWORD GetPID (char* proc)
{BOOL working=0;
PROCESSENTRY32 lppe= {0};
DWORD targetPid=0;
HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS ,0);
if (hSnapshot)
{lppe.dwSize=sizeof(lppe);
working=Process32First(hSnapshot,&lppe);
while (working)
{if (_stricmp(lppe.szExeFile,proc)==0)
{targetPid=lppe.th32ProcessID;
break;
}working=Process32Next(hSnapshot,&lppe);
} }CloseHandle( hSnapshot );
return targetPid;
}// DLL Base (6F).DWORD GetDLL(char* DllName, DWORD tPid)
{ HANDLE snapMod; MODULEENTRY32 me32;if (tPid == 0) return 0;
snapMod = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, tPid);
me32.dwSize = sizeof(MODULEENTRY32);
if (Module32First(snapMod, &me32)){
do{
if (strcmp(DllName,me32.szModule) == 0){
CloseHandle(snapMod);
return (DWORD) me32.modBaseAddr;
}}while(Module32Next(snapMod,&me32));
}CloseHandle(snapMod);
return 0;
}