C++ ReadProcessMemory Offset Şablonu

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
aka panic.rs
Kurucu
Katılım
18 Haz 2015
Mesajlar
3,379
Çözümler
50
Tepki puanı
13,156
Ödüller
22
Sosyal
10 HİZMET YILI
PHP:
/*ReadProcessMemory Offset Şablonu Örnek Kullanım  - Example*/ 
DWORD Adres =(DWORD) GetModuleHandleA("ac_client.exe") +0x0010F418;
LM_WriteMemoryOffset<int>(GetCurrentProcess(),/*Hedef Adres*/Adres,/*Değer*/100,/*Offset Sayısı*/4,/*Offsetler*/0xF8,0x1DC,0x8,0x150);
int Value = LM_ReadMemoryOffset<int>(GetCurrentProcess(),/*Hedef Adres*/Adres,/*Offset Sayısı*/4,/*Offsetler*/0xF8,0x1DC,0x8,0x150);


template< typename VeriTürü >VeriTürü LM_ReadMemoryOffset(HANDLE hProc ,DWORD adres/*Hedef Adres*/ ,int oCount/*Offset Sayısı*/,...)
{
	   DWORD outAdres[8];
	   va_list in_List;
	   DWORD val;
	   VeriTürü Value;
	   va_start(in_List,oCount);
	   ReadProcessMemory(hProc,(LPCVOID)adres,&outAdres[0],4,0);
	   for (int i=0;i<oCount;i++)
		{
			val=va_arg(in_List,DWORD);
		

			switch (i)
			{
			case 0:
				ReadProcessMemory(hProc,(LPVOID)(outAdres[0] + val),&outAdres[1],4,0);
				break;
			case 1:
				if(i==oCount-1)
				ReadProcessMemory(hProc,(LPVOID)(outAdres[1] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[1] + val),&outAdres[2],4,0);
				break;
			case 2:
				if(i==oCount-1)
				ReadProcessMemory(hProc,(LPVOID)(outAdres[2] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[2] + val),&outAdres[3],4,0);
				break;
			case 3:
				if(i==oCount-1)
				ReadProcessMemory(hProc,(LPVOID)(outAdres[3] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[3] + val),&outAdres[4],4,0);
				break;
			case 4:
				if(i==oCount-1)
				ReadProcessMemory(hProc,(LPVOID)(outAdres[4] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[4] + val),&outAdres[5],4,0);
				break;
			case 5:
				if(i==oCount-1)
				ReadProcessMemory(hProc,(LPVOID)(outAdres[5] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[5] + val),&outAdres[6],4,0);
				break;
			case 6:
				if(i==oCount-1)
				ReadProcessMemory(hProc,(LPVOID)(outAdres[6] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[6] + val),&outAdres[7],4,0);
				break;
			default:
				break;
			}
			
	    }
	    va_end(in_List);

return Value;
}


template< typename VeriTürü >VeriTürü LM_WriteMemoryOffset(HANDLE hProc ,DWORD adres/*Hedef Adres*/ ,VeriTürü Value/*Değer*/,int oCount/*Offset Sayısı*/,...)
{
	   DWORD outAdres[8];
	   va_list in_List;
	   DWORD val;
	   
	   va_start(in_List,oCount);
	   ReadProcessMemory(hProc,(LPCVOID)adres,&outAdres[0],4,0);
	   for (int i=0;i<oCount;i++)
		{
			val=va_arg(in_List,DWORD);
			switch (i)
			{
			case 0:
				ReadProcessMemory(hProc,(LPVOID)(outAdres[0] + val),&outAdres[1],4,0);
				break;
			case 1:
				if(i==oCount-1)
				WriteProcessMemory(hProc,(LPVOID)(outAdres[1] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[1] + val),&outAdres[2],4,0);
				break;
			case 2:
				if(i==oCount-1)
				WriteProcessMemory(hProc,(LPVOID)(outAdres[2] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[2] + val),&outAdres[3],4,0);
				break;
			case 3:
				if(i==oCount-1)
				WriteProcessMemory(hProc,(LPVOID)(outAdres[3] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[3] + val),&outAdres[4],4,0);
				break;
			case 4:
				if(i==oCount-1)
				WriteProcessMemory(hProc,(LPVOID)(outAdres[4] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[4] + val),&outAdres[5],4,0);
				break;
			case 5:
				if(i==oCount-1)
				WriteProcessMemory(hProc,(LPVOID)(outAdres[5] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[5] + val),&outAdres[6],4,0);
				break;
			case 6:
				if(i==oCount-1)
				WriteProcessMemory(hProc,(LPVOID)(outAdres[6] + val),&Value,4,0);
				else
				ReadProcessMemory(hProc,(LPVOID)(outAdres[6] + val),&outAdres[7],4,0);
				break;
			default:
				break;
			}
			
	    }
	    va_end(in_List);

return Value;
}

Bağlantıları görmek için lütfen Giriş Yap


Boş vaktimde işimi kolaylaştırmak için Yaptım Paylaşayım dedim.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...