Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 09:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C++ WriteProcessMemory return 998

Discussion on C++ WriteProcessMemory return 998 within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
xX.Slayer.Xx's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 149
Received Thanks: 27
C++ WriteProcessMemory return 998

Hi Leute,

ich habe ein Problem mit der Funktion WriteProcessMemory.
Ich bekomme immer den Fehler 998 (Acces denied).
Jedoch weiß ich nicht, was ich falsch mache.

Ich hoffe mir kann jemand helfen.
Hier mein Code:

Code:
#include <iostream> 
#include <windows.h> 
using namespace std; 
BYTE flash[5] = { 0xE9, 0x7A, 0x01, 0x00, 0x00 }; 
BYTE smoke[5] = { 0xE9, 0x1E, 0x05, 0x00, 0x00 }; 

int main() 
{ 
	HWND fenster = NULL;
	while(fenster == NULL)
	{ 
		fenster = FindWindow(NULL, "Counter-Strike Source");
		Sleep(100); 
	}

	if(!fenster) 
	{
		cout << "There was an error: function FindWindow" << endl;
	}
	else 
	{
		cout << "Counterstrike:Source wurde gefunden!" << endl; 
	}

	DWORD prozessid; 
	if(!GetWindowThreadProcessId(fenster, &prozessid))
	{
		cout << "There was an error: function GetWindowThreadProcessId" << endl;
	}

	HANDLE handleprozess; 
	if(!(handleprozess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, prozessid)))
	{
		cout << "There was an error: function OpenProcess" << endl;
	}

	DWORD puffer = NULL; 
	if(!(WriteProcessMemory(handleprozess,(void*)(0x5D6AD38E),&flash,sizeof(flash),&puffer))) 
	{
		cout << "There was an error: function WriteProcessMemory" << endl; 
	}
	cout << GetLastError() << endl;
	CloseHandle(handleprozess); 
	cin.get();
	return 0; 
}
xX.Slayer.Xx is offline  
Old 01/08/2014, 14:08   #2


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by MSDN
PROCESS_ALL_ACCESS
All possible access rights for a process object.
Windows Server 2003 and Windows XP: The size of the PROCESS_ALL_ACCESS flag increased on Windows Server 2008 and Windows Vista. If an application compiled for Windows Server 2008 and Windows Vista is run on Windows Server 2003 or Windows XP, the PROCESS_ALL_ACCESS flag is too large and the function specifying this flag fails with ERROR_ACCESS_DENIED. To avoid this problem, specify the minimum set of access rights required for the operation. If PROCESS_ALL_ACCESS must be used, set _WIN32_WINNT to the minimum operating system targeted by your application (for example, #define _WIN32_WINNT _WIN32_WINNT_WINXP). For more information, see Using the Windows Headers.


Könnte ne Lösung sein, ansonsten mal bei WriteProcessMemory schauen ob da etwas diesbezüglich angegeben wurde.
Mostey is offline  
Old 01/08/2014, 14:15   #3
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
0x5D6AD38E
sicher, dass die adresse da zu dem zeitpunkt an dem du das programm ausführst beschreibbar ist?
sieht mir stark nach einer dynamischen dll-adresse aus die sich bei jedem spielstart ändert.
Dr. Coxxy is offline  
Old 01/08/2014, 20:10   #4
 
ccommander's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 519
Received Thanks: 155
Quote:
Originally Posted by Dr. Coxxy View Post
sicher, dass die adresse da zu dem zeitpunkt an dem du das programm ausführst beschreibbar ist?
sieht mir stark nach einer dynamischen dll-adresse aus die sich bei jedem spielstart ändert.

Quote:
LoadLibrary failed with error 998: Unzulässiger Zugriff auf einen Speicherbereich
Man kann nicht so einfach bei CSS am Spiel rumbasteln.
ccommander is offline  
Old 01/08/2014, 20:58   #5
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by ccommander View Post
Man kann nicht so einfach bei CSS am Spiel rumbasteln.
was hast du denn geraucht?
Dr. Coxxy is offline  
Thanks
1 User
Old 01/08/2014, 21:16   #6
 
xX.Slayer.Xx's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 149
Received Thanks: 27
Die Adresse ist Statisch.
Ist bei jedem Game neustart gleich.

Habe ich ca. 3-5 mal getestet. Auch bei PC Neustart ist die Adresse gleich.
Wenn ich die Adresse mithilfe von OllyDBG ändere, funktioniert auch alles super.
Nur die WriteProcessMemory will nicht funktionieren.

In der MSDN steht auch nichts dazu, wie man diesen Fehler beheben könnte.
Es wird nur ACCES_DENIED angegeben.
xX.Slayer.Xx is offline  
Old 01/08/2014, 21:18   #7
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
mal mit virtualprotectex schreibrechte setzen.

Btw. vac detected was du da machst.
Dr. Coxxy is offline  
Old 01/08/2014, 21:22   #8
 
xX.Slayer.Xx's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 149
Received Thanks: 27
Nicht VAC Protectet. VAC sichert ja nur auf Servern ab, und nicht im Spielmenü.

Wenn man im Spielmenü änderungen vornimmt, sieht VAC das als "Normal" an und beschwert sich nicht. Wenn man jedoch wärend des Spiels etwas ändert, merkt VAC das ganze.

Quote:
Originally Posted by Mostey View Post


Könnte ne Lösung sein, ansonsten mal bei WriteProcessMemory schauen ob da etwas diesbezüglich angegeben wurde.
Hab mir das ganze nochmal genauer durchgeschaut.
Und genau das ist es.

mit
#define _WIN32_WINNT _WIN32_WINNT_WIN7
funktioniert alles

Danke für die hilfe
xX.Slayer.Xx is offline  
Old 01/09/2014, 05:25   #9
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by xX.Slayer.Xx View Post
Nicht VAC Protectet. VAC sichert ja nur auf Servern ab, und nicht im Spielmenü.

Wenn man im Spielmenü änderungen vornimmt, sieht VAC das als "Normal" an und beschwert sich nicht. Wenn man jedoch wärend des Spiels etwas ändert, merkt VAC das ganze.
nein, tut es nicht, enjoy your free vac ban.
Dr. Coxxy is offline  
Reply


Similar Threads Similar Threads
WriteProcessMemory
08/06/2013 - C/C++ - 5 Replies
Hey, also ich versuche schon seit paar Stunden den Wert von einem Base Pointer eines anderen Prozesses via writeProcessMemory zu ändern, aber aus irgendein Grund funktioniert dies nicht. Code: GetWindowThreadProcessId(hWnd, &prog_id); HANDLE hprog = OpenProcess(PROCESS_ALL_ACCESS, false, prog_id); float valueY; ReadProcessMemory(hprog, (LPVOID)(PointerY), &PointedY, 4, NULL); PointedY = PointedY+OFFY;
WriteProcessmemory?
09/13/2012 - C/C++ - 3 Replies
Mal ne frage. Kann es sein dass Cheat Engine etwas besonderes macht um werte zu ändern? Habe einen wert der überprüft wird. Wenn ich ihn über c++ oder autoit change wirds bemerkt. Wenn ich den wert mit cheat engine ändere wirds nicht bemerkt. Bin grad bissle verwundert. Hab Processopen alle rechte gegeben.
WriteProcessMemory
07/11/2012 - C/C++ - 4 Replies
HeyHo, Ich wollte ein Autoit Script in C++ umwandeln doch leider klappt das nicht so wie ich will ... Autoit Code :: $Adresse = 0x00477786 $Prozess = _memoryopen(ProcessExists("NostaleX.dat" ))
C# WriteProcessMemory
02/29/2012 - .NET Languages - 3 Replies
Hey Leute hab nen Problem mit den schreiben von werten in den speicher ... hier ma grob der code der damit zusammen hängt //die eingebundene dll static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte lpBuffer, UIntPtr nSize, ref uint lpNumberOfBytesWritten);
help on Writeprocessmemory
10/07/2009 - General Coding - 8 Replies
#include <Windows.h> #include <iostream> using namespace std; #define EngineUpgrade_Addr 0x2F7EDDC8 #define EngineUpgrade_Value 1000 const SIZE_T EngineUpgrade_Size = sizeof(EngineUpgrade_Value); SIZE_T EngineUpgrade_Sent = 0;



All times are GMT +1. The time now is 09:54.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.