<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Main.c und procfunc.c fehler?]]></title><description><![CDATA[<p>------ Erstellen gestartet: Projekt: DMA HÄXXN, Konfiguration: Debug Win32 ------<br />
Kompilieren...<br />
main.c<br />
c1 : fatal error C1083: Datei (Quelle) kann nicht geöffnet werden: &quot;.\main.c&quot;: No such file or directory<br />
procfunc.c<br />
c1 : fatal error C1083: Datei (Quelle) kann nicht geöffnet werden: &quot;.\procfunc.c&quot;: No such file or directory<br />
Code wird generiert...<br />
Das Buildprotokoll wurde unter &quot;file://c:\Dokumente und Einstellungen\keller\Desktop\Neuer Ordner\DMA_HÄXXN___Win32_Debug\BuildLog.htm&quot; gespeichert.<br />
DMA HÄXXN - 2 Fehler, 0 Warnung(en)<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========<br />
Warum hab ich die fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/188807/main-c-und-procfunc-c-fehler</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 05:07:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188807.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 04 Aug 2007 11:29:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:29:04 GMT]]></title><description><![CDATA[<p>------ Erstellen gestartet: Projekt: DMA HÄXXN, Konfiguration: Debug Win32 ------<br />
Kompilieren...<br />
main.c<br />
c1 : fatal error C1083: Datei (Quelle) kann nicht geöffnet werden: &quot;.\main.c&quot;: No such file or directory<br />
procfunc.c<br />
c1 : fatal error C1083: Datei (Quelle) kann nicht geöffnet werden: &quot;.\procfunc.c&quot;: No such file or directory<br />
Code wird generiert...<br />
Das Buildprotokoll wurde unter &quot;file://c:\Dokumente und Einstellungen\keller\Desktop\Neuer Ordner\DMA_HÄXXN___Win32_Debug\BuildLog.htm&quot; gespeichert.<br />
DMA HÄXXN - 2 Fehler, 0 Warnung(en)<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========<br />
Warum hab ich die fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338602</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:29:04 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:33:03 GMT]]></title><description><![CDATA[<p>Was hast du denn gemacht, um diesen Fehler zu erhalten?</p>
<p>(btw, schau mal nach, ob die Dateien main.c und procfunc.c auch wirklich in deinem Projektverzeichnis liegen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338606</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:33:17 GMT]]></title><description><![CDATA[<p>Grob gesagt: Weil er die Dateien nicht findet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338607</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:33:17 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:36:10 GMT]]></title><description><![CDATA[<p>Doch die liegen drin.Das ist ja das komische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338608</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:36:10 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:39:28 GMT]]></title><description><![CDATA[<p>Dann hast du womöglich das falsche Verzeichnis als Projektverzeichnis angegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338611</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:39:28 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:42:56 GMT]]></title><description><![CDATA[<p>So jetzt versteh ihr die Welt nicht <a href="http://mehr.So" rel="nofollow">mehr.So</a> die Fehler hab ich weg bekommen ich hab die &quot; &quot; in &lt; &gt; gemacht.</p>
<p>So jetzt hab ich neue fehler</p>
<p>------ Erstellen gestartet: Projekt: DMA HÄXXN, Konfiguration: Debug Win32 ------<br />
Kompilieren...<br />
main.c<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\main.c(2) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: &quot;resource.h&quot;: No such file or directory<br />
procfunc.c<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\procfunc.c(2) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: &quot;procfunc.h&quot;: No such file or directory<br />
Code wird generiert...<br />
Das Buildprotokoll wurde unter &quot;file://c:\Dokumente und Einstellungen\keller\Desktop\Neuer Ordner\DMA_HÄXXN___Win32_Debug\BuildLog.htm&quot; gespeichert.<br />
DMA HÄXXN - 2 Fehler, 0 Warnung(en)<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>So da hab ich aber nichts mit #inlcude...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338615</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:42:56 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:46:34 GMT]]></title><description><![CDATA[<p>Vielleicht solltest du nicht nur die Fehlermeldungen zeigen, sondern auch den Code, der sie ausgelöst hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338617</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:46:34 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:49:39 GMT]]></title><description><![CDATA[<p>Das ist jetzt die Datei resource.h</p>
<pre><code class="language-cpp">//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by rsrc.rc
//
#define IDD_DLGMAIN                     1000
#define IDC_ABOUT                       1001
#define IDC_EXIT                        1002
#define IDC_STATUSTEXT                  1003
#define IDC_KEY0                        1010
#define IDC_KEY1                        1011
#define IDC_KEY2                        1012
#define IDC_KEY3                        1013
#define IDC_KEY4                        1014
#define IDC_KEY5                        1015
#define IDC_KEY6                        1016
#define IDC_KEY7                        1017
#define IDC_KEY8                        1018
#define IDC_KEY9                        1019
#define IDC_KEYPB                       1030
#define IDC_KEYZM                       1031
#define IDC_KEYDH                       1032
#define IDC_KEYZM2                      1033
#define IDC_KEYZM3                      1035
#define IDC_STAT0                       1100
#define IDC_STAT1                       1101
#define IDC_STAT2                       1102
#define IDC_STAT3                       1103
#define IDC_STAT4                       1104
#define IDC_STAT5                       1105
#define IDC_STAT6                       1106
#define IDC_STAT7                       1107
#define IDC_STAT8                       1108
#define IDC_STAT9                       1109
#define IDC_STATPB                      1130
#define IDC_STATZM                      1131
#define IDC_STATZM2                     1132
#define IDC_NAME0                       1200
#define IDC_NAME1                       1201
#define IDC_NAME2                       1202
#define IDC_NAME3                       1203
#define IDC_NAME4                       1204
#define IDC_NAME5                       1205
#define IDC_NAME6                       1206
#define IDC_NAME7                       1207
#define IDC_NAME8                       1208
#define IDC_NAME9                       1209
#define IDC_NAMEPB                      1230
#define IDC_NAMEZM                      1231
#define IDC_NAMEDH                      1232

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        107
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1024
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif
</code></pre>
<p>Und das ist procfunc.h</p>
<pre><code class="language-cpp">#pragma once

BOOL  Peek(HANDLE gamePROC,DWORD Address, DWORD Count,void * save);
BOOL Poke(HANDLE gamePROC,DWORD Address, LPVOID write, DWORD Count);
DWORD GetPID(char *ExeName);
DWORD GetDLLBase(DWORD pid,char* DllName);
BOOL InjectDLL(LPCTSTR sLibName,DWORD dwProcID);
BOOL EjectDLL(LPCTSTR sLibName,DWORD dwProcID);
BOOL MemCopyEx(HANDLE hProcess,DWORD dwFrom,DWORD dwTo,DWORD dwSize);
DWORD CreateCopy(DWORD dwBase, DWORD dwSize);
DWORD CreateCopyEx(HANDLE hProcess, DWORD dwBase, DWORD dwSize);
BOOL DeleteCopy(DWORD dwBase, DWORD dwSize);
BOOL DeleteCopyEx(HANDLE hProcess, DWORD dwBase, DWORD dwSize);
BOOL LoadSeDebugPrivilege();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1338618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338618</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:49:39 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:50:42 GMT]]></title><description><![CDATA[<p>Ich denke er meint eher die Datei, wo du die beiden Dateien verwendest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338620</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:50:42 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 11:55:42 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;resource.h&gt;
#include &lt;procfunc.h&gt;
#include &lt;cheats.h&gt;
#include &lt;log.h&gt;

HWND dlg;							//Handle für das Fenster

// Funktionsdeklarationen

void ReadOriginalCode();
void DisableAllHax();
void RedirectAddresses();
void AttachGame();
void CopyOriginalCode();
BOOL Initialize();
BOOL DeInitialize();
void SetStatusText(LPCTSTR Text);

//////////////////////////////////////////////////////////////////////////////////////////

void ReadOriginalCode(){
/////////////////////////////////////////////////////////////////////////////////////////
// Ab Hier werden alle originalen Werte gespeichert bevor ein Hack sie verändern kann  //
// damit man später diese Codes wieder schreiben kann um eine toggle Funktion zu haben //
/////////////////////////////////////////////////////////////////////////////////////////

	if (!gameRunning) return;

	/////////////////////////////////////////////////////////////////////////////////////
	// Ab hier beginnt der Static Basepointer Abschnitt in dem die Addressen gespeichert werden

	Peek(gamePROC,gameExeBase+CHBase,sizeof(tmpBase1),&amp;tmpBase1); // ab Hier Original Cursor
	Peek(gamePROC,tmpBase1+CHAdd1,sizeof(tmpBase2),&amp;tmpBase2);   
	CHAddr = tmpBase2 + CHAdd2;

	Peek(gamePROC,gameDllBase+NFBase,sizeof(NFBase),&amp;tmpBase1);// ab Hier NoFog
	NFAddr = tmpBase1 +  NFAdd;
	Peek(gamePROC,NFAddr,sizeof(NFHack),&amp;NFOrg); // Fogweite 

	Peek(gamePROC,gameDllBase+VDBase,sizeof(VDBase),&amp;tmpBase1);// ab Hier Viewdistance
	VDAddr = tmpBase1 +  VDAdd;
	Peek(gamePROC,VDAddr,sizeof(VDHack),&amp;VDOrg); // Sichtweite

	Peek(gamePROC,gameDllBase+TVBase,sizeof(TVBase),&amp;tmpBase1);// ab Hier Static TV
	TVAddr = tmpBase1 +  TVAdd;
	WriteLog(&quot;Static TV DMA @ 0x%08X&quot;,TVAddr);

	Peek(gamePROC,gameDllBase+NSBase,sizeof(NSBase),&amp;tmpBase1);// ab Hier No Sky
	NSAddr = tmpBase1 +  NSAdd;
	WriteLog(&quot;Sky DMA @ 0x%08X&quot;,NSAddr);
}

void DisableAllHax(){
///////////////////////////////////////////////////////////////////////
// Hier werden die originalen werte in alle Addressen geschrieben    //
// und alle Hax ausgeschaltet                                        //
///////////////////////////////////////////////////////////////////////

	SetDlgItemText(dlg,IDC_STAT4,&quot;Off&quot;);
	SetDlgItemText(dlg,IDC_STAT5,&quot;0&quot;);
	SetDlgItemText(dlg,IDC_STAT6,&quot;Off&quot;);
	SetDlgItemText(dlg,IDC_STAT7,&quot;Off&quot;);
	SetDlgItemText(dlg,IDC_STAT8,&quot;Off&quot;);
	 //Hackstatus auf Aus
	isCHOn=isNFOn=isVDOn=isFCOn=isZMOn=isTVOn=isNSOn=FALSE;

	if (!gameRunning) return;
	// DMA Hacks
	Poke(gamePROC,CHAddr,&amp;CHOrg,sizeof(CHOrg)); // Original Cursor schreiben
	Poke(gamePROC,NFAddr,&amp;NFOrg,sizeof(NFOrg)); // Original Fog schreiben
	if (FCAddr) Poke(gamePROC,FCAddr,&amp;FCOrg,sizeof(FCOrg)); // Original Fog schreiben
	Poke(gamePROC,VDAddr,&amp;VDOrg,sizeof(VDOrg)); // Original ViewDistance schreiben
	if (ZM1Addr) Poke(gamePROC,ZM1Addr,&amp;ZM1Org,sizeof(ZM1Org)); // Original Zoom schreiben
	if (ZM2Addr) Poke(gamePROC,ZM2Addr,&amp;ZM2Org,sizeof(ZM2Org));
	Poke(gamePROC,NSAddr,&amp;NSOrg,sizeof(NSOrg)); // No Sky

}

BOOL Initialize(){
	hooksInjected=(InjectDLL(hookDll,gamePID));
	if (hooksInjected) SetStatusText(&quot;Anti SS injected&quot;);
	AttachGame();
	if (gameRunning){
		Sleep(500);
		ReadOriginalCode();
	}
	return TRUE;
}

BOOL Deinitialize(){
	DisableAllHax();
	CloseHandle(gamePROC);
	return TRUE;
}

//////////////////////////////////////////////////////////////////////////////////////////

void AttachGame() {// Diese Procedure sorgt dafür das der Prozess immer geöffnet ist um darin zu schreiben
				   // sollte dieser nicht geöffnet sein dann ist gameRunning FALSE
	CloseHandle(gamePROC);   // altes Handle von OpenProcess schließen
	gamePID = GetPID(gameExe);    // ProcessID von Game ermitteln
	gameDllBase = GetDLLBase(gamePID,gameDll); // Base
	gameRunning = (gamePID != 0);
	if (gameRunning) {
		gamePROC=OpenProcess(PROCESS_ALL_ACCESS,0,gamePID); // BF2 Prozess öffnen und Handle speichern
	}	
}

void TimerProc(){// Diese Procedure wird bei jedem Interval des Timer ausgeführt

	AttachGame();   //Spiel suchen und Prozess öffnen wenn gefunden

	if (!gameRunning){ // solange Spiel nicht läuft, nur diesen Block ausführen
		if (!firstRun){
			firstRun = TRUE; // Wenn der Prozess weg ist erststart wieder TRUE
			DisableAllHax(); // Cheatstaus alle aus
		}
		SetStatusText(&quot;Warte auf BF2142...&quot;); // Text im Fenster ändern
		return; // Solange BF2 nicht gefunden wird bricht die Procedure hier ab
	}

	// erstes mal seit Prozessstart hier angekommen und Spiel läuft!
	if (firstRun &amp;&amp; gameRunning){ 
		SetStatusText(&quot;BF2142 gefunden! 10 sek. warten&quot;); // Text im Fenster ändern
		Sleep(10000); // 20 Sekunden Warten
		Initialize();
		SetStatusText(&quot;Hotkeys aktiviert&quot;); // Text im Fenster ändern
		firstRun = FALSE;     // erstesmal auschalten
	}

  ///////////////////////////////////////////////////////////////////////////////////// 
  // Hier wird geprüft ob ein hack an ist und ob er wiederaufgerufen werden soll bei //
  // jedem Intervall z.B. RedDot damit er immer gezeichnet wird                      //
  /////////////////////////////////////////////////////////////////////////////////////

	// Crosshairtest
	Peek(gamePROC,CHAddr,sizeof(CHHack),&amp;CHAkt);
	if ((isCHOn) &amp;&amp; (CHHack != CHAkt)) Poke(gamePROC,CHAddr,&amp;CHHack,sizeof(CHHack));  //Hack schreiben

	// Zoomtest
	if (ZM1Addr){
		Peek(gamePROC,ZM1Addr,sizeof(ZMAkt),&amp;ZMAkt); //Aktuellen Zoom Speichern
		//SetDlgItemText(dlg,IDC_STATZM2,(char*) ZMAkt);
		if (ZM1Hack == ZMAkt){
			isZMOn = TRUE;
			SetDlgItemText(dlg,IDC_STATZM,&quot;On&quot;);
		}else{
			isZMOn = FALSE;
			SetDlgItemText(dlg,IDC_STATZM,&quot;Off&quot;);
		}
	}

	// Commandertest
	if (FCAddr){
		Peek(gamePROC,FCAddr,sizeof(FCHack),&amp;FCAkt);
		if ((isFCOn) &amp;&amp; (FCHack != FCAkt)) Poke(gamePROC,FCAddr,&amp;FCHack,sizeof(FCHack));
	}

ReadProcessMemory(hand,(void*)0xA8BF28,dwBuffer1,sizeof(dwBuffer1),NULL);
ReadProcessMemory(hand,(void*)(dwBuffer1+0x6C),&amp;dwLeaderBase,sizeof(dwLeaderBase),NULL);
dwTeamValue        = dwLeaderBase + 0xD8;

if(GetAsyncKeyState(VK_F10))
    { 
        if(dwTeamValue == 0x01)
        {
WriteProcessMemory(hand,(void*)(dwTeamValue),&amp;two,1,NULL);
        }
        else
        {
WriteProcessMemory(hand,(void*)(dwTeamValue),&amp;one,1,NULL);
        }
}

	else if(GetAsyncKeyState(TeamKey)){  // Team Switch
		Peek(gamePROC,gameExeBase+TSBase,sizeof(tmpBase1), &amp;tmpBase1);// ab Hier Teamswitch
		Peek(gamePROC,tmpBase1+TSAdd1,sizeof(tmpBase2), &amp;tmpBase2);
		TSAddr = tmpBase2 + TSAdd2;
		Peek(gamePROC,TSAddr,sizeof(TSAkt),&amp;TSAkt);
		if (TSAkt==1){
			Poke(gamePROC,TSAddr,&amp;TS2,sizeof(TS2));
		}else
			Poke(gamePROC,TSAddr,&amp;TS1,sizeof(TS1));
	}

	else if (GetAsyncKeyState(VK_DELETE)){ // [Entf]ernen Taste
		DisableAllHax();    // Alle Hacks ausschalten und Originalwerte schreiben
	}
}

BOOL CALLBACK DialogProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
    switch (message){ // Message übersetzen damit wir abfragen können
	    case WM_INITDIALOG:  // Wird beim erstellen unseres Fensters ausgeführt
			dlg = hwnd;
			SetTimer(hwnd,1001,tmrInterval,NULL);
			return TRUE;  // Funktion beenden und True übergeben
		case WM_COMMAND:  // Wird beim anclicken eines Buttons ausgeführt
			switch (LOWORD(wParam)){  // LOWORD(wParam) enthält die Message
				case IDC_EXIT:  // Exit wurde gedrückt
					EndDialog (hwnd, 0);  // Fenster schließen
					return TRUE;
			}
		    return TRUE;
		case WM_DESTROY:  // Wird beim beenden unseres Programs aufgerufen
			Deinitialize();
			PostQuitMessage(0);  
			return TRUE;
		case WM_CLOSE:  // Wird beim druck auf Ende ausgeführt
			PostQuitMessage(0);
			return TRUE;
		case WM_TIMER:  // Bei jedem Intervall vom Timer wird diese Message versendet
			TimerProc();  // timer ausführen
			return TRUE;
    }
    return FALSE;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
	DialogBox(hInstance,MAKEINTRESOURCE(IDD_DLGMAIN), NULL,DialogProc); // DialogBox aus einer Resource erstellen mit Callback an DialogProc
	return 0;  // Hier kommt man erst hin wenn die Dialogbox geschlossen wird
}

[cpp]void SetStatusText(LPCTSTR Text){
	SetDlgItemText(dlg,IDC_STATUSTEXT,Text);
}
</code></pre>
<p>#include &lt;windows.h&gt;<br />
#include &lt;procfunc.h&gt;<br />
#include &lt;tlhelp32.h&gt;<br />
/</p>
<p>BOOL Peek(HANDLE gamePROC,DWORD Address, DWORD Count,void * save){<br />
// Diese Function Liest aus dem Speicher des Prozesses &quot;proc&quot; ab der Addresse &quot;Address&quot;<br />
// &quot;Count&quot; Bytes und speichert diese in &quot;save&quot;. Wenn alles erfolgreich ist wird TRUE übergeben<br />
UINT iRPM;<br />
DWORD pStateOld, pStateDummy;<br />
DWORD bw; // var für RPM</p>
<p>iRPM = 0;<br />
if (gamePROC != 0){// Wenn gefunden<br />
//rechte im Speicher auf ALL_ACCESS<br />
if (VirtualProtectEx(gamePROC,(PDWORD)(Address),Count,PAGE_READWRITE,&amp;pStateOld)){<br />
// Ab Address Bytes lesen<br />
iRPM = ReadProcessMemory(gamePROC, (PDWORD)(Address),save, Count, &amp;bw);<br />
//rechte im Speicher wieder standard<br />
VirtualProtectEx(gamePROC,(PDWORD)(Address),Count,pStateOld,&amp;pStateDummy);<br />
}<br />
}<br />
return ((iRPM!=0)&amp;(bw==Count));<br />
}</p>
<p>BOOL Poke(HANDLE gamePROC,DWORD Address, void *write, DWORD Count){<br />
// Diese Function schreibt in den Speicher des Prozesses &quot;proc&quot; ab der Addresse &quot;Address&quot;<br />
// &quot;write&quot;.Count ist die große in Bytes. Wenn alles erfolgreich ist wird TRUE übergeben<br />
UINT iWPM;<br />
DWORD pStateOld, pStateDummy;<br />
DWORD bw; // var für WPM<br />
MEMORY_BASIC_INFORMATION mbi;</p>
<p>iWPM = 0;<br />
if (gamePROC != 0){// Wenn gefunden<br />
//Information über den gewählten Speicherbereich holen<br />
VirtualQueryEx(gamePROC,(PDWORD)Address,&amp;mbi,sizeof(MEMORY_BASIC_INFORMATION));<br />
//rechte im Speicherbereich auf READWRITE<br />
if (VirtualProtectEx(gamePROC,(PDWORD)mbi.BaseAddress,mbi.RegionSize,PAGE_READWRITE,&amp;pStateOld)){<br />
// Ab Address Bytes schreiben wenn Rechte erfolgreich gesetzt<br />
iWPM = WriteProcessMemory(gamePROC, (PDWORD)(Address),write, Count, &amp;bw);<br />
//rechte im Speicherbereich wieder standard<br />
VirtualProtectEx(gamePROC,(PDWORD)mbi.BaseAddress,mbi.RegionSize,pStateOld,&amp;pStateDummy);<br />
}</p>
<p>}<br />
return (bw==Count);<br />
}</p>
<p>DWORD GetPID(char *ExeName){<br />
// Diese Funktion gibt die ProzessID von &quot;EXEName&quot; in der Prozessliste zurück<br />
HANDLE snapProc;<br />
PROCESSENTRY32 pe32;</p>
<p>// Prozess finden<br />
snapProc = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);<br />
if(snapProc == INVALID_HANDLE_VALUE) return 0; // Wenn kein gültiges Suchhandle dann Funktionsabbruch<br />
pe32.dwSize = sizeof(PROCESSENTRY32); // Informationen Initialisieren<br />
if(Process32First(snapProc,&amp;pe32)){ // Wenn 1. Prozess gefunden<br />
do{ // Schleifen anfang<br />
if (stricmp(ExeName,pe32.szExeFile)==0){; // Ist Prozess.Exename = BF2 dann<br />
CloseHandle(snapProc); // Suchhandle schließen<br />
return pe32.th32ProcessID; // ProcessID übergeben und Funktion beenden<br />
}<br />
} while(Process32Next(snapProc,&amp;pe32));<br />
} //Sleife solange Prozesse gefunden werden<br />
CloseHandle(snapProc); // Suchhandle schließen<br />
return 0;<br />
}</p>
<p>DWORD GetDLLBase(DWORD pid,char* DllName){<br />
//Diese Function liest die Base Addresse des Moduls &quot;DLLName&quot; aus dem Prozess mit der ID &quot;pid&quot;<br />
HANDLE snapMod;<br />
MODULEENTRY32 me32;</p>
<p>// Modul im Prozess finden<br />
snapMod = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid); //Suchhandle auf alle Module im Process iProcID<br />
me32.dwSize = sizeof(MODULEENTRY32); // Informationen vorbereiten<br />
if (Module32First(snapMod, &amp;me32)){ // Erstes Modul finden und informationen speichern<br />
do{ // Solange noch module gefunden werden<br />
if (stricmp(DllName,me32.szModule) == 0){ // Wenn aktuell gefundenes <a href="http://Modul.Name" rel="nofollow">Modul.Name</a> mit übergebenem DLLName übereinstimmt<br />
CloseHandle(snapMod); //Suchhandle schließen<br />
return (DWORD) me32.modBaseAddr; // Dll Base Addresse speichern<br />
}<br />
}while(Module32Next(snapMod,&amp;me32));<br />
}<br />
// Hier kommt man nur an wenn das Modul nicht gefunden wurde<br />
CloseHandle(snapMod); // Suchhandle schließen<br />
return 0; // 0 übergeben<br />
}</p>
<p>BOOL InjectDLL(LPCTSTR sLibName,DWORD dwProcID){<br />
// Diese Function Injeziert ein Modul &quot;sLibName&quot; in den Prozess mit der ID &quot;dwProcID&quot;<br />
// Wenn erfolgreich injeziert wird TRUE übergeben<br />
DWORD dwLLA,dwTID,dwMemSize,dwTargetMemory,hMod;<br />
HANDLE hProc,hThread;<br />
char fullLibName[MAX_PATH];</p>
<p>// Wenn die DLL bereits im Prozess Procedure beenden<br />
if (GetDLLBase(dwProcID,(char *)sLibName)!=0) return TRUE;<br />
// Prozess öffnen mit vollzugriff<br />
hProc = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcID);<br />
if (!hProc){<br />
return FALSE;<br />
}<br />
// kompletter Pfad und dateiname ermitteln<br />
if (SearchPath(NULL,sLibName,NULL,MAX_PATH,fullLibName,0)){<br />
// Größe des vollen Dll-Namens ermitteln</p>
<p>dwMemSize = strlen(fullLibName)+1;<br />
}else return FALSE;<br />
// Speicher im Game für DllName reservieren<br />
dwTargetMemory = (DWORD) VirtualAllocEx(hProc,NULL,dwMemSize,MEM_COMMIT,PAGE_EXECUTE_READWRITE);<br />
// Addresse der Function LoadLibrary ermitteln<br />
dwLLA = (DWORD) GetProcAddress(GetModuleHandleA(&quot;kernel32.dll&quot;),&quot;LoadLibraryA&quot;);<br />
// Wenn Addresse gefunden und Speicher allokiert<br />
if ((dwLLA!=0) &amp; (dwTargetMemory!=0)){<br />
// Modulname in Prozess schreiben<br />
Poke(hProc,dwTargetMemory,(void *)fullLibName,dwMemSize);<br />
// Thread im Process Prozess starten der LoadLibrary ausführt<br />
hThread = CreateRemoteThread(hProc,NULL,0, (void *)dwLLA,(void *)dwTargetMemory,0,&amp;dwTID);<br />
// auf den Thread warten bis er fertig ist<br />
WaitForSingleObject(hThread,INFINITE);<br />
// LoadLibrary erfolgreich?<br />
GetExitCodeThread(hThread,&amp;hMod);<br />
// Handle des Threads schließen<br />
CloseHandle(hThread);<br />
}<br />
// Speicher und Handles schließen<br />
if (dwTargetMemory) VirtualFreeEx(hProc,(PDWORD)dwTargetMemory,dwMemSize,MEM_DECOMMIT);<br />
if (hProc)CloseHandle(hProc);<br />
// Wenn DLL in Prozess TRUE übergeben<br />
if (GetDLLBase(dwProcID,(char *)sLibName)!=0) return TRUE;<br />
return FALSE;<br />
}</p>
<p>BOOL EjectDLL(LPCTSTR sLibName,DWORD dwProcID){<br />
// Diese Function Entlädt das Modul &quot;sLibName&quot; in den Prozess mit der ID &quot;dwProcID&quot;<br />
// Wenn erfolgreich entladen wird TRUE übergeben<br />
DWORD dwFL,dwTID;<br />
PBYTE dwModuleHandle = 0;<br />
DWORD dwCRTResult;<br />
HANDLE hProc,hThread;</p>
<p>// DLLBase (DWORD) als PBYTE schreiben<br />
dwModuleHandle=(PBYTE) GetDLLBase(dwProcID,(char *)sLibName);<br />
// Wenn die DLL bereits im Prozess beendet<br />
if (!dwModuleHandle) return TRUE;<br />
// Prozess öffnen mit vollzugriff<br />
hProc = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcID);<br />
if (!hProc) return FALSE;</p>
<p>// Addresse der Function FreeLibrary ermitteln<br />
dwFL = (DWORD) GetProcAddress(GetModuleHandleA(&quot;kernel32.dll&quot;),&quot;FreeLibrary&quot;);<br />
if ((dwFL) &amp;&amp; (dwModuleHandle)){<br />
// Thread im Process Prozess starten der LoadLibrary ausführt<br />
hThread = CreateRemoteThread(hProc,NULL,0, (void <em>)dwFL,(void</em>)dwModuleHandle,0,&amp;dwTID);<br />
// auf den Thread warten bis er fertig ist<br />
WaitForSingleObject(hThread,INFINITE);<br />
// Ergebnis<br />
GetExitCodeThread(hThread,&amp;dwCRTResult);<br />
// Handle des Threads schließen<br />
CloseHandle(hThread);<br />
}<br />
// Speicher und Handles schließen<br />
if (hProc)CloseHandle(hProc);<br />
// Wenn DLL in Prozess TRUE übergeben<br />
if (!GetDLLBase(dwProcID,(char *)sLibName)) return TRUE;<br />
return FALSE;<br />
}</p>
<p>BOOL MemCopyEx(HANDLE hProcess,DWORD dwFrom,DWORD dwTo,DWORD dwSize){<br />
// Diese Function kopiert im Prozess &quot;hProcess&quot; den Bereich ab &quot;dwFrom&quot; mit der<br />
// größe &quot;dwSize&quot; an die Addresse &quot;dwTo&quot; und übergibt TRUE wenn erfolgreich</p>
<p>//Speicher für Buffer reservieren<br />
PBYTE dwBuffer = (PBYTE)VirtualAlloc(0,dwSize,MEM_COMMIT,PAGE_READWRITE);<br />
// Lesen und Zweischenspeichern<br />
if (Peek(hProcess,dwFrom,dwSize,dwBuffer)){<br />
// Zwischenspeicher schreiben<br />
if (Poke(hProcess,dwTo,dwBuffer,dwSize)){<br />
// Zwischenspeicher leeren<br />
VirtualFree(dwBuffer,dwSize,MEM_RELEASE);<br />
// Function beenden<br />
return TRUE;<br />
}<br />
}<br />
// Zwischenspeicher leeren<br />
VirtualFree(dwBuffer,dwSize,MEM_RELEASE);<br />
return FALSE;<br />
}</p>
<p>DWORD CreateCopy(DWORD dwBase, DWORD dwSize){<br />
// Diese Function kopiert im aktuellen Prozess den Bereich &quot;dwBase&quot; mit der größe &quot;dwSize&quot;<br />
// und übergibt wenn erfolgreich die Addresse an die es kopiert worden ist</p>
<p>//Speicher für Buffer reservieren<br />
PBYTE dwBuffer = (PBYTE)VirtualAlloc(0,dwSize,MEM_COMMIT,PAGE_READWRITE);<br />
if (!dwBuffer) return 0;<br />
//Speicher lesen und speichern<br />
if (Peek(GetCurrentProcess(),dwBase,dwSize,dwBuffer)){<br />
// Zwischenspeicher leeren<br />
VirtualFree(dwBuffer,dwSize,MEM_RELEASE);<br />
// Addresse des gespeicherten zurückgeben<br />
return (DWORD) dwBuffer;<br />
}<br />
// Zwischenspeicher leeren<br />
VirtualFree(dwBuffer,dwSize,MEM_RELEASE);<br />
return 0;<br />
}</p>
<p>DWORD CreateCopyEx(HANDLE hProcess, DWORD dwBase, DWORD dwSize){<br />
// Diese Function kopiert im Prozess &quot;hProcess&quot; den Bereich &quot;dwBase&quot; mit der größe &quot;dwSize&quot;<br />
// und übergibt wenn erfolgreich die Addresse an die es kopiert worden ist<br />
DWORD dwBufferAddr;</p>
<p>//Speicher für Buffer reservieren<br />
dwBufferAddr = (DWORD) VirtualAllocEx(hProcess,0,dwSize,MEM_COMMIT,PAGE_READWRITE);<br />
if (!dwBufferAddr) return 0;<br />
//Speicher kopieren<br />
if (MemCopyEx(hProcess,dwBase,dwBufferAddr,dwSize)){<br />
return (DWORD) dwBufferAddr;<br />
}<br />
// Zwischenspeicher leeren<br />
return 0;<br />
}</p>
<p>BOOL DeleteCopy(DWORD dwBase, DWORD dwSize){<br />
return VirtualFree((PDWORD) dwBase,dwSize, MEM_RELEASE);<br />
}</p>
<p>BOOL DeleteCopyEx(HANDLE hProcess, DWORD dwBase, DWORD dwSize){<br />
return VirtualFreeEx(hProcess,(PDWORD) dwBase,dwSize, MEM_DECOMMIT);<br />
}</p>
<p>BOOL LoadSeDebugPrivilege(){<br />
HANDLE hToken;<br />
LUID Val;<br />
TOKEN_PRIVILEGES tp;</p>
<p>if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &amp;hToken))<br />
return(FALSE);<br />
if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &amp;Val))<br />
return(FALSE);<br />
tp.PrivilegeCount = 1;<br />
tp.Privileges[0].Luid = Val;<br />
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;<br />
if (!AdjustTokenPrivileges(hToken,FALSE,&amp;tp,sizeof(tp),NULL,NULL))<br />
return(FALSE);<br />
CloseHandle(hToken);<br />
return TRUE;<br />
}</p>
<p>void HideModule(HINSTANCE hModule)<br />
{<br />
DWORD dwPEB_LDR_DATA = 0;<br />
_asm<br />
{<br />
pushad;<br />
pushfd;<br />
mov eax, fs:[30h] // PEB<br />
mov eax, [eax+0Ch] // PEB-&gt;ProcessModuleInfo<br />
mov dwPEB_LDR_DATA, eax // Save ProcessModuleInfo</p>
<p>InLoadOrderModuleList:<br />
mov esi, [eax+0Ch] // ProcessModuleInfo-&gt;InLoadOrderModuleList[FORWARD]<br />
mov edx, [eax+10h] // ProcessModuleInfo-&gt;InLoadOrderModuleList[BACKWARD]</p>
<p>LoopInLoadOrderModuleList:<br />
lodsd // Load First Module<br />
mov esi, eax // ESI points to Next Module<br />
mov ecx, [eax+18h] // LDR_MODULE-&gt;BaseAddress<br />
cmp ecx, hModule // Is it Our Module ?<br />
jne SkipA // If Not, Next Please (@f jumps to nearest Unamed Lable @@:)<br />
mov ebx, [eax] // [FORWARD] Module<br />
mov ecx, [eax+4] // [BACKWARD] Module<br />
mov [ecx], ebx // Previous Module's [FORWARD] Notation, Points to us, Replace it with, Module++<br />
mov [ebx+4], ecx // Next Modules, [BACKWARD] Notation, Points to us, Replace it with, Module--<br />
jmp InMemoryOrderModuleList // Hidden, so Move onto Next Set<br />
SkipA:<br />
cmp edx, esi // Reached End of Modules ?<br />
jne LoopInLoadOrderModuleList // If Not, Re Loop</p>
<p>InMemoryOrderModuleList:<br />
mov eax, dwPEB_LDR_DATA // PEB-&gt;ProcessModuleInfo<br />
mov esi, [eax+14h] // ProcessModuleInfo-&gt;InMemoryOrderModuleList[START]<br />
mov edx, [eax+18h] // ProcessModuleInfo-&gt;InMemoryOrderModuleList[FINISH]</p>
<p>LoopInMemoryOrderModuleList:<br />
lodsd<br />
mov esi, eax<br />
mov ecx, [eax+10h]<br />
cmp ecx, hModule<br />
jne SkipB<br />
mov ebx, [eax]<br />
mov ecx, [eax+4]<br />
mov [ecx], ebx<br />
mov [ebx+4], ecx<br />
jmp InInitializationOrderModuleList<br />
SkipB:<br />
cmp edx, esi<br />
jne LoopInMemoryOrderModuleList</p>
<p>InInitializationOrderModuleList:<br />
mov eax, dwPEB_LDR_DATA // PEB-&gt;ProcessModuleInfo<br />
mov esi, [eax+1Ch] // ProcessModuleInfo-&gt;InInitializationOrderModuleList[START]<br />
mov edx, [eax+20h] // ProcessModuleInfo-&gt;InInitializationOrderModuleList[FINISH]</p>
<p>LoopInInitializationOrderModuleList:<br />
lodsd<br />
mov esi, eax<br />
mov ecx, [eax+08h]<br />
cmp ecx, hModule<br />
jne SkipC<br />
mov ebx, [eax]<br />
mov ecx, [eax+4]<br />
mov [ecx], ebx<br />
mov [ebx+4], ecx<br />
jmp Finished<br />
SkipC:<br />
cmp edx, esi<br />
jne LoopInInitializationOrderModuleList</p>
<p>Finished:<br />
popfd;<br />
popad;<br />
}<br />
}[/cpp]</p>
<p>So jetzt hab ich es <a href="http://richitg.Es" rel="nofollow">richitg.Es</a> soll zwar ein hack werden aber nur für Singelplayer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338625</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 11:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 13:30:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;resource.h&gt;
#include &lt;procfunc.h&gt;
#include &lt;cheats.h&gt;
#include &lt;log.h&gt;

HWND dlg;							//Handle für das Fenster

// Funktionsdeklarationen

void ReadOriginalCode();
void DisableAllHax();
void RedirectAddresses();
void AttachGame();
void CopyOriginalCode();
BOOL Initialize();
BOOL DeInitialize();
void SetStatusText(LPCTSTR Text);

//////////////////////////////////////////////////////////////////////////////////////////

void ReadOriginalCode(){
/////////////////////////////////////////////////////////////////////////////////////////
// Ab Hier werden alle originalen Werte gespeichert bevor ein Hack sie verändern kann  //
// damit man später diese Codes wieder schreiben kann um eine toggle Funktion zu haben //
/////////////////////////////////////////////////////////////////////////////////////////

	if (!gameRunning) return;

	/////////////////////////////////////////////////////////////////////////////////////
	// Ab hier beginnt der Static Basepointer Abschnitt in dem die Addressen gespeichert werden

	Peek(gamePROC,gameExeBase+CHBase,sizeof(tmpBase1),&amp;tmpBase1); // ab Hier Original Cursor
	Peek(gamePROC,tmpBase1+CHAdd1,sizeof(tmpBase2),&amp;tmpBase2);   
	CHAddr = tmpBase2 + CHAdd2;

	Peek(gamePROC,gameDllBase+NFBase,sizeof(NFBase),&amp;tmpBase1);// ab Hier NoFog
	NFAddr = tmpBase1 +  NFAdd;
	Peek(gamePROC,NFAddr,sizeof(NFHack),&amp;NFOrg); // Fogweite 

	Peek(gamePROC,gameDllBase+VDBase,sizeof(VDBase),&amp;tmpBase1);// ab Hier Viewdistance
	VDAddr = tmpBase1 +  VDAdd;
	Peek(gamePROC,VDAddr,sizeof(VDHack),&amp;VDOrg); // Sichtweite

	Peek(gamePROC,gameDllBase+TVBase,sizeof(TVBase),&amp;tmpBase1);// ab Hier Static TV
	TVAddr = tmpBase1 +  TVAdd;
	WriteLog(&quot;Static TV DMA @ 0x%08X&quot;,TVAddr);

	Peek(gamePROC,gameDllBase+NSBase,sizeof(NSBase),&amp;tmpBase1);// ab Hier No Sky
	NSAddr = tmpBase1 +  NSAdd;
	WriteLog(&quot;Sky DMA @ 0x%08X&quot;,NSAddr);
}

void DisableAllHax(){
///////////////////////////////////////////////////////////////////////
// Hier werden die originalen werte in alle Addressen geschrieben    //
// und alle Hax ausgeschaltet                                        //
///////////////////////////////////////////////////////////////////////

	SetDlgItemText(dlg,IDC_STAT4,&quot;Off&quot;);
	SetDlgItemText(dlg,IDC_STAT5,&quot;0&quot;);
	SetDlgItemText(dlg,IDC_STAT6,&quot;Off&quot;);
	SetDlgItemText(dlg,IDC_STAT7,&quot;Off&quot;);
	SetDlgItemText(dlg,IDC_STAT8,&quot;Off&quot;);
	 //Hackstatus auf Aus
	isCHOn=isNFOn=isVDOn=isFCOn=isZMOn=isTVOn=isNSOn=FALSE;

	if (!gameRunning) return;
	// DMA Hacks
	Poke(gamePROC,CHAddr,&amp;CHOrg,sizeof(CHOrg)); // Original Cursor schreiben
	Poke(gamePROC,NFAddr,&amp;NFOrg,sizeof(NFOrg)); // Original Fog schreiben
	if (FCAddr) Poke(gamePROC,FCAddr,&amp;FCOrg,sizeof(FCOrg)); // Original Fog schreiben
	Poke(gamePROC,VDAddr,&amp;VDOrg,sizeof(VDOrg)); // Original ViewDistance schreiben
	if (ZM1Addr) Poke(gamePROC,ZM1Addr,&amp;ZM1Org,sizeof(ZM1Org)); // Original Zoom schreiben
	if (ZM2Addr) Poke(gamePROC,ZM2Addr,&amp;ZM2Org,sizeof(ZM2Org));
	Poke(gamePROC,NSAddr,&amp;NSOrg,sizeof(NSOrg)); // No Sky

}

BOOL Initialize(){
	hooksInjected=(InjectDLL(hookDll,gamePID));
	if (hooksInjected) SetStatusText(&quot;Anti SS injected&quot;);
	AttachGame();
	if (gameRunning){
		Sleep(500);
		ReadOriginalCode();
	}
	return TRUE;
}

BOOL Deinitialize(){
	DisableAllHax();
	CloseHandle(gamePROC);
	return TRUE;
}

//////////////////////////////////////////////////////////////////////////////////////////

void AttachGame() {// Diese Procedure sorgt dafür das der Prozess immer geöffnet ist um darin zu schreiben
				   // sollte dieser nicht geöffnet sein dann ist gameRunning FALSE
	CloseHandle(gamePROC);   // altes Handle von OpenProcess schließen
	gamePID = GetPID(gameExe);    // ProcessID von Game ermitteln
	gameDllBase = GetDLLBase(gamePID,gameDll); // Base
	gameRunning = (gamePID != 0);
	if (gameRunning) {
		gamePROC=OpenProcess(PROCESS_ALL_ACCESS,0,gamePID); // BF2 Prozess öffnen und Handle speichern
	}	
}

void TimerProc(){// Diese Procedure wird bei jedem Interval des Timer ausgeführt

	AttachGame();   //Spiel suchen und Prozess öffnen wenn gefunden

	if (!gameRunning){ // solange Spiel nicht läuft, nur diesen Block ausführen
		if (!firstRun){
			firstRun = TRUE; // Wenn der Prozess weg ist erststart wieder TRUE
			DisableAllHax(); // Cheatstaus alle aus
		}
		SetStatusText(&quot;Warte auf BF2142...&quot;); // Text im Fenster ändern
		return; // Solange BF2 nicht gefunden wird bricht die Procedure hier ab
	}

	// erstes mal seit Prozessstart hier angekommen und Spiel läuft!
	if (firstRun &amp;&amp; gameRunning){ 
		SetStatusText(&quot;BF2142 gefunden! 10 sek. warten&quot;); // Text im Fenster ändern
		Sleep(10000); // 20 Sekunden Warten
		Initialize();
		SetStatusText(&quot;Hotkeys aktiviert&quot;); // Text im Fenster ändern
		firstRun = FALSE;     // erstesmal auschalten
	}

  ///////////////////////////////////////////////////////////////////////////////////// 
  // Hier wird geprüft ob ein hack an ist und ob er wiederaufgerufen werden soll bei //
  // jedem Intervall z.B. RedDot damit er immer gezeichnet wird                      //
  /////////////////////////////////////////////////////////////////////////////////////

	// Crosshairtest
	Peek(gamePROC,CHAddr,sizeof(CHHack),&amp;CHAkt);
	if ((isCHOn) &amp;&amp; (CHHack != CHAkt)) Poke(gamePROC,CHAddr,&amp;CHHack,sizeof(CHHack));  //Hack schreiben

	// Zoomtest
	if (ZM1Addr){
		Peek(gamePROC,ZM1Addr,sizeof(ZMAkt),&amp;ZMAkt); //Aktuellen Zoom Speichern
		//SetDlgItemText(dlg,IDC_STATZM2,(char*) ZMAkt);
		if (ZM1Hack == ZMAkt){
			isZMOn = TRUE;
			SetDlgItemText(dlg,IDC_STATZM,&quot;On&quot;);
		}else{
			isZMOn = FALSE;
			SetDlgItemText(dlg,IDC_STATZM,&quot;Off&quot;);
		}
	}

	// Commandertest
	if (FCAddr){
		Peek(gamePROC,FCAddr,sizeof(FCHack),&amp;FCAkt);
		if ((isFCOn) &amp;&amp; (FCHack != FCAkt)) Poke(gamePROC,FCAddr,&amp;FCHack,sizeof(FCHack));
	}

ReadProcessMemory(hand,(void*)0xA8BF28,dwBuffer1,sizeof(dwBuffer1),NULL);
ReadProcessMemory(hand,(void*)(dwBuffer1+0x6C),&amp;dwLeaderBase,sizeof(dwLeaderBase),NULL);
dwTeamValue        = dwLeaderBase + 0xD8;

if(GetAsyncKeyState(VK_F10))
    { 
        if(dwTeamValue == 0x01)
        {
WriteProcessMemory(hand,(void*)(dwTeamValue),&amp;two,1,NULL);
        }
        else
        {
WriteProcessMemory(hand,(void*)(dwTeamValue),&amp;one,1,NULL);
        }
}

	else if(GetAsyncKeyState(TeamKey)){  // Team Switch
		Peek(gamePROC,gameExeBase+TSBase,sizeof(tmpBase1), &amp;tmpBase1);// ab Hier Teamswitch
		Peek(gamePROC,tmpBase1+TSAdd1,sizeof(tmpBase2), &amp;tmpBase2);
		TSAddr = tmpBase2 + TSAdd2;
		Peek(gamePROC,TSAddr,sizeof(TSAkt),&amp;TSAkt);
		if (TSAkt==1){
			Poke(gamePROC,TSAddr,&amp;TS2,sizeof(TS2));
		}else
			Poke(gamePROC,TSAddr,&amp;TS1,sizeof(TS1));
	}

	else if (GetAsyncKeyState(VK_DELETE)){ // [Entf]ernen Taste
		DisableAllHax();    // Alle Hacks ausschalten und Originalwerte schreiben
	}
}

BOOL CALLBACK DialogProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
    switch (message){ // Message übersetzen damit wir abfragen können
	    case WM_INITDIALOG:  // Wird beim erstellen unseres Fensters ausgeführt
			dlg = hwnd;
			SetTimer(hwnd,1001,tmrInterval,NULL);
			return TRUE;  // Funktion beenden und True übergeben
		case WM_COMMAND:  // Wird beim anclicken eines Buttons ausgeführt
			switch (LOWORD(wParam)){  // LOWORD(wParam) enthält die Message
				case IDC_EXIT:  // Exit wurde gedrückt
					EndDialog (hwnd, 0);  // Fenster schließen
					return TRUE;
			}
		    return TRUE;
		case WM_DESTROY:  // Wird beim beenden unseres Programs aufgerufen
			Deinitialize();
			PostQuitMessage(0);  
			return TRUE;
		case WM_CLOSE:  // Wird beim druck auf Ende ausgeführt
			PostQuitMessage(0);
			return TRUE;
		case WM_TIMER:  // Bei jedem Intervall vom Timer wird diese Message versendet
			TimerProc();  // timer ausführen
			return TRUE;
    }
    return FALSE;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
	DialogBox(hInstance,MAKEINTRESOURCE(IDD_DLGMAIN), NULL,DialogProc); // DialogBox aus einer Resource erstellen mit Callback an DialogProc
	return 0;  // Hier kommt man erst hin wenn die Dialogbox geschlossen wird
}

void SetStatusText(LPCTSTR Text){
	SetDlgItemText(dlg,IDC_STATUSTEXT,Text);
}
</code></pre>
<pre><code>#include &lt;windows.h&gt;
#include &lt;procfunc.h&gt;
#include &lt;tlhelp32.h&gt;
/

BOOL  Peek(HANDLE gamePROC,DWORD Address, DWORD Count,void * save){
// Diese Function Liest aus dem Speicher des Prozesses &quot;proc&quot; ab der Addresse &quot;Address&quot;
// &quot;Count&quot; Bytes und speichert diese in &quot;save&quot;. Wenn alles erfolgreich ist wird TRUE übergeben
  UINT iRPM;
  DWORD pStateOld, pStateDummy;
  DWORD bw;   //  var für RPM

  iRPM = 0;
  if (gamePROC != 0){// Wenn gefunden
    //rechte im Speicher auf ALL_ACCESS
	if (VirtualProtectEx(gamePROC,(PDWORD)(Address),Count,PAGE_READWRITE,&amp;pStateOld)){
	  // Ab Address Bytes lesen
      iRPM = ReadProcessMemory(gamePROC, (PDWORD)(Address),save, Count, &amp;bw);
      //rechte im Speicher wieder standard
	  VirtualProtectEx(gamePROC,(PDWORD)(Address),Count,pStateOld,&amp;pStateDummy);
	}
  }
  return ((iRPM!=0)&amp;(bw==Count));
}

BOOL Poke(HANDLE gamePROC,DWORD Address, void *write, DWORD Count){
// Diese Function schreibt in den Speicher des Prozesses &quot;proc&quot; ab der Addresse &quot;Address&quot;
// &quot;write&quot;.Count ist die große in Bytes. Wenn alles erfolgreich ist wird TRUE übergeben
  UINT iWPM;
  DWORD pStateOld, pStateDummy;
  DWORD bw;   //  var für WPM
  MEMORY_BASIC_INFORMATION mbi;

  iWPM = 0;
  if (gamePROC != 0){// Wenn gefunden
	//Information über den gewählten Speicherbereich holen
	VirtualQueryEx(gamePROC,(PDWORD)Address,&amp;mbi,sizeof(MEMORY_BASIC_INFORMATION));
	//rechte im Speicherbereich auf READWRITE
	if (VirtualProtectEx(gamePROC,(PDWORD)mbi.BaseAddress,mbi.RegionSize,PAGE_READWRITE,&amp;pStateOld)){
	   // Ab Address Bytes schreiben wenn Rechte erfolgreich gesetzt
       iWPM = WriteProcessMemory(gamePROC, (PDWORD)(Address),write, Count, &amp;bw);
       //rechte im Speicherbereich wieder standard
	   VirtualProtectEx(gamePROC,(PDWORD)mbi.BaseAddress,mbi.RegionSize,pStateOld,&amp;pStateDummy);
	}

  }
  return (bw==Count);
}

DWORD GetPID(char *ExeName){
// Diese Funktion gibt die ProzessID von &quot;EXEName&quot; in der Prozessliste zurück
  HANDLE snapProc;  
  PROCESSENTRY32 pe32;

  // Prozess finden
  snapProc = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  if(snapProc == INVALID_HANDLE_VALUE) return 0; // Wenn kein gültiges Suchhandle dann Funktionsabbruch
  pe32.dwSize = sizeof(PROCESSENTRY32);  // Informationen Initialisieren
  if(Process32First(snapProc,&amp;pe32)){  // Wenn 1. Prozess gefunden
	do{  // Schleifen anfang 
       if (stricmp(ExeName,pe32.szExeFile)==0){; // Ist Prozess.Exename = BF2 dann
	      CloseHandle(snapProc);   // Suchhandle schließen
		  return pe32.th32ProcessID;  // ProcessID übergeben und Funktion beenden
	   }
	} while(Process32Next(snapProc,&amp;pe32));
  } //Sleife solange Prozesse gefunden werden 
  CloseHandle(snapProc);   // Suchhandle schließen
  return 0;
}

DWORD GetDLLBase(DWORD pid,char* DllName){
//Diese Function liest die Base Addresse des Moduls &quot;DLLName&quot; aus dem Prozess mit der ID &quot;pid&quot;
  HANDLE snapMod;  
  MODULEENTRY32 me32;

  // Modul im Prozess finden
  snapMod = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid);  //Suchhandle auf alle Module im Process iProcID
  me32.dwSize = sizeof(MODULEENTRY32);   // Informationen vorbereiten
  if (Module32First(snapMod, &amp;me32)){   // Erstes Modul finden und informationen speichern
    do{   // Solange noch module gefunden werden
        if (stricmp(DllName,me32.szModule) == 0){  // Wenn aktuell gefundenes Modul.Name mit übergebenem DLLName übereinstimmt
          CloseHandle(snapMod);  //Suchhandle schließen
          return (DWORD) me32.modBaseAddr;  // Dll Base Addresse speichern
        }
    }while(Module32Next(snapMod,&amp;me32));
  }
  // Hier kommt man nur an wenn das Modul nicht gefunden wurde
  CloseHandle(snapMod); // Suchhandle schließen
  return 0;   // 0 übergeben
}

BOOL InjectDLL(LPCTSTR sLibName,DWORD dwProcID){
// Diese Function Injeziert ein Modul &quot;sLibName&quot; in den Prozess mit der ID &quot;dwProcID&quot;
// Wenn erfolgreich injeziert wird TRUE übergeben
  DWORD dwLLA,dwTID,dwMemSize,dwTargetMemory,hMod;
  HANDLE hProc,hThread;
  char fullLibName[MAX_PATH];

  // Wenn die DLL bereits im Prozess Procedure beenden
  if (GetDLLBase(dwProcID,(char *)sLibName)!=0) return TRUE;
  // Prozess öffnen mit vollzugriff
  hProc = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcID);
  if (!hProc){
	 return FALSE;
  }
  // kompletter Pfad und dateiname ermitteln
  if (SearchPath(NULL,sLibName,NULL,MAX_PATH,fullLibName,0)){
    // Größe des vollen Dll-Namens ermitteln 

	dwMemSize = strlen(fullLibName)+1;
  }else return FALSE;
  // Speicher im Game für DllName reservieren
  dwTargetMemory = (DWORD) VirtualAllocEx(hProc,NULL,dwMemSize,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
  // Addresse der Function LoadLibrary ermitteln
  dwLLA = (DWORD) GetProcAddress(GetModuleHandleA(&quot;kernel32.dll&quot;),&quot;LoadLibraryA&quot;);
  // Wenn Addresse gefunden und Speicher allokiert
  if ((dwLLA!=0) &amp; (dwTargetMemory!=0)){
    // Modulname in Prozess schreiben
	Poke(hProc,dwTargetMemory,(void *)fullLibName,dwMemSize);
	// Thread im Process Prozess starten der LoadLibrary ausführt
	hThread = CreateRemoteThread(hProc,NULL,0, (void *)dwLLA,(void *)dwTargetMemory,0,&amp;dwTID);
    // auf den Thread warten bis er fertig ist
	WaitForSingleObject(hThread,INFINITE);
	// LoadLibrary erfolgreich?
	GetExitCodeThread(hThread,&amp;hMod);
	// Handle des Threads schließen
	CloseHandle(hThread);
  }
  // Speicher und Handles schließen
  if (dwTargetMemory) VirtualFreeEx(hProc,(PDWORD)dwTargetMemory,dwMemSize,MEM_DECOMMIT);
  if (hProc)CloseHandle(hProc);
  // Wenn DLL in Prozess TRUE übergeben
  if (GetDLLBase(dwProcID,(char *)sLibName)!=0) return TRUE;
  return FALSE;
}

BOOL EjectDLL(LPCTSTR sLibName,DWORD dwProcID){
// Diese Function Entlädt das Modul &quot;sLibName&quot; in den Prozess mit der ID &quot;dwProcID&quot;
// Wenn erfolgreich entladen wird TRUE übergeben
  DWORD dwFL,dwTID;
  PBYTE dwModuleHandle = 0;
  DWORD dwCRTResult;
  HANDLE hProc,hThread;

  // DLLBase (DWORD) als PBYTE schreiben
  dwModuleHandle=(PBYTE) GetDLLBase(dwProcID,(char *)sLibName);
  // Wenn die DLL bereits im Prozess beendet
  if (!dwModuleHandle) return TRUE;
  // Prozess öffnen mit vollzugriff
  hProc = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcID);
  if (!hProc) return FALSE;

  // Addresse der Function FreeLibrary ermitteln
  dwFL = (DWORD) GetProcAddress(GetModuleHandleA(&quot;kernel32.dll&quot;),&quot;FreeLibrary&quot;);
  if ((dwFL) &amp;&amp; (dwModuleHandle)){
    // Thread im Process Prozess starten der LoadLibrary ausführt
    hThread = CreateRemoteThread(hProc,NULL,0, (void *)dwFL,(void*)dwModuleHandle,0,&amp;dwTID);
    // auf den Thread warten bis er fertig ist
    WaitForSingleObject(hThread,INFINITE);
    // Ergebnis
    GetExitCodeThread(hThread,&amp;dwCRTResult);
    // Handle des Threads schließen
    CloseHandle(hThread);
  }
  // Speicher und Handles schließen
  if (hProc)CloseHandle(hProc);
  // Wenn DLL in Prozess TRUE übergeben
  if (!GetDLLBase(dwProcID,(char *)sLibName)) return TRUE;
  return FALSE;
}

BOOL MemCopyEx(HANDLE hProcess,DWORD dwFrom,DWORD dwTo,DWORD dwSize){
// Diese Function kopiert im Prozess &quot;hProcess&quot; den Bereich ab &quot;dwFrom&quot; mit der 
// größe &quot;dwSize&quot; an die Addresse &quot;dwTo&quot; und übergibt TRUE wenn erfolgreich

  //Speicher für Buffer reservieren
  PBYTE dwBuffer = (PBYTE)VirtualAlloc(0,dwSize,MEM_COMMIT,PAGE_READWRITE);
  // Lesen und Zweischenspeichern
  if (Peek(hProcess,dwFrom,dwSize,dwBuffer)){
	// Zwischenspeicher schreiben
	if (Poke(hProcess,dwTo,dwBuffer,dwSize)){
	  // Zwischenspeicher leeren
	  VirtualFree(dwBuffer,dwSize,MEM_RELEASE);
	  // Function beenden
	  return TRUE;
    }
  }
  // Zwischenspeicher leeren
  VirtualFree(dwBuffer,dwSize,MEM_RELEASE);
  return FALSE;
}

DWORD CreateCopy(DWORD dwBase, DWORD dwSize){
// Diese Function kopiert im aktuellen Prozess den Bereich &quot;dwBase&quot; mit der größe &quot;dwSize&quot;
// und übergibt wenn erfolgreich die Addresse an die es kopiert worden ist

  //Speicher für Buffer reservieren
  PBYTE dwBuffer = (PBYTE)VirtualAlloc(0,dwSize,MEM_COMMIT,PAGE_READWRITE);
  if (!dwBuffer) return 0;
  //Speicher lesen und speichern
  if (Peek(GetCurrentProcess(),dwBase,dwSize,dwBuffer)){
	// Zwischenspeicher leeren
	VirtualFree(dwBuffer,dwSize,MEM_RELEASE);
	// Addresse des gespeicherten zurückgeben
	return (DWORD) dwBuffer;
  }
  // Zwischenspeicher leeren
  VirtualFree(dwBuffer,dwSize,MEM_RELEASE);
  return 0;
}

DWORD CreateCopyEx(HANDLE hProcess, DWORD dwBase, DWORD dwSize){
// Diese Function kopiert im Prozess &quot;hProcess&quot; den Bereich &quot;dwBase&quot; mit der größe &quot;dwSize&quot;
// und übergibt wenn erfolgreich die Addresse an die es kopiert worden ist
  DWORD dwBufferAddr;

  //Speicher für Buffer reservieren
  dwBufferAddr = (DWORD) VirtualAllocEx(hProcess,0,dwSize,MEM_COMMIT,PAGE_READWRITE);
  if (!dwBufferAddr) return 0;
  //Speicher kopieren
  if (MemCopyEx(hProcess,dwBase,dwBufferAddr,dwSize)){
    return (DWORD) dwBufferAddr;
  }
  // Zwischenspeicher leeren
  return 0;
}

BOOL DeleteCopy(DWORD dwBase, DWORD dwSize){
 return VirtualFree((PDWORD) dwBase,dwSize, MEM_RELEASE);
}

BOOL DeleteCopyEx(HANDLE hProcess, DWORD dwBase, DWORD dwSize){
 return VirtualFreeEx(hProcess,(PDWORD) dwBase,dwSize, MEM_DECOMMIT);
}

BOOL LoadSeDebugPrivilege(){
  HANDLE hToken;
  LUID Val;
  TOKEN_PRIVILEGES tp;

  if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &amp;hToken))
     return(FALSE);
  if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &amp;Val))
     return(FALSE);
  tp.PrivilegeCount = 1;
  tp.Privileges[0].Luid = Val;
  tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  if (!AdjustTokenPrivileges(hToken,FALSE,&amp;tp,sizeof(tp),NULL,NULL))
	 return(FALSE);
  CloseHandle(hToken);
  return TRUE;
}

void HideModule(HINSTANCE hModule)
{
	DWORD dwPEB_LDR_DATA = 0;
	_asm
	{
		pushad;
		pushfd;
		mov eax, fs:[30h]		   // PEB
		mov eax, [eax+0Ch]		  // PEB-&gt;ProcessModuleInfo
		mov dwPEB_LDR_DATA, eax	 // Save ProcessModuleInfo

InLoadOrderModuleList:
		mov esi, [eax+0Ch]					  // ProcessModuleInfo-&gt;InLoadOrderModuleList[FORWARD]
		mov edx, [eax+10h]					  //  ProcessModuleInfo-&gt;InLoadOrderModuleList[BACKWARD]

		LoopInLoadOrderModuleList: 
		    lodsd							   //  Load First Module
			mov esi, eax		    			//  ESI points to Next Module
			mov ecx, [eax+18h]		    		//  LDR_MODULE-&gt;BaseAddress
			cmp ecx, hModule		    		//  Is it Our Module ?
			jne SkipA		    		    	//  If Not, Next Please (@f jumps to nearest Unamed Lable @@:)
		    	mov ebx, [eax]				  //  [FORWARD] Module 
		    	mov ecx, [eax+4]    		    	//  [BACKWARD] Module
		    	mov [ecx], ebx				  //  Previous Module's [FORWARD] Notation, Points to us, Replace it with, Module++
		    	mov [ebx+4], ecx			    //  Next Modules, [BACKWARD] Notation, Points to us, Replace it with, Module--
			jmp InMemoryOrderModuleList		//  Hidden, so Move onto Next Set
		SkipA:
			cmp edx, esi					    //  Reached End of Modules ?
			jne LoopInLoadOrderModuleList		//  If Not, Re Loop

InMemoryOrderModuleList:
		mov eax, dwPEB_LDR_DATA		  //  PEB-&gt;ProcessModuleInfo
		mov esi, [eax+14h]			   //  ProcessModuleInfo-&gt;InMemoryOrderModuleList[START]
		mov edx, [eax+18h]			   //  ProcessModuleInfo-&gt;InMemoryOrderModuleList[FINISH]

		LoopInMemoryOrderModuleList: 
			lodsd
			mov esi, eax
			mov ecx, [eax+10h]
			cmp ecx, hModule
			jne SkipB
				mov ebx, [eax] 
				mov ecx, [eax+4]
				mov [ecx], ebx
				mov [ebx+4], ecx
				jmp InInitializationOrderModuleList
		SkipB:
			cmp edx, esi
			jne LoopInMemoryOrderModuleList

InInitializationOrderModuleList:
		mov eax, dwPEB_LDR_DATA				    //  PEB-&gt;ProcessModuleInfo
		mov esi, [eax+1Ch]						 //  ProcessModuleInfo-&gt;InInitializationOrderModuleList[START]
		mov edx, [eax+20h]						 //  ProcessModuleInfo-&gt;InInitializationOrderModuleList[FINISH]

		LoopInInitializationOrderModuleList: 
			lodsd
			mov esi, eax		
			mov ecx, [eax+08h]
			cmp ecx, hModule		
			jne SkipC
				mov ebx, [eax] 
				mov ecx, [eax+4]
				mov [ecx], ebx
				mov [ebx+4], ecx
				jmp Finished
		SkipC:
			cmp edx, esi
			jne LoopInInitializationOrderModuleList

		Finished:
			popfd;
			popad;
	}
}
</code></pre>
<p>So jetzt hab ich es <a href="http://richitg.Es" rel="nofollow">richitg.Es</a> soll zwar ein hack werden aber nur für Singelplayer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338638</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:30:27 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 13:09:54 GMT]]></title><description><![CDATA[<p>Setz mal deine eigenen Dateien, also resource.h und procfunc.h in Anführungsstrichelchen:</p>
<pre><code class="language-cpp">#include &quot;resource.h&quot;
#include &quot;procfunc.h&quot;
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338654</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 13:24:51 GMT]]></title><description><![CDATA[<p>Ok habs gemacht und jetzt kommem wieder Fehler.</p>
<p>------ Erstellen gestartet: Projekt: DMA HÄXXN, Konfiguration: Debug Win32 ------<br />
Kompilieren...<br />
main.c<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\cheats.h(27) : error C2054: Nach 'Variablendeklarationen' muss '(' folgen<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\cheats.h(27) : error C2085: 'firstRun': Nicht in der formalen Parameterliste enthalten<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\cheats.h(27) : error C2143: Syntaxfehler: Es fehlt ';' vor '='<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\main.c(5) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: &quot;log.h&quot;: No such file or directory<br />
procfunc.c<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\procfunc.c(76) : warning C4996: 'stricmp' wurde als veraltet deklariert<br />
c:\programme\microsoft visual studio 8\vc\include\string.h(213): Siehe Deklaration von 'stricmp'<br />
Meldung: &quot;The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.&quot;<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\procfunc.c(96) : warning C4996: 'stricmp' wurde als veraltet deklariert<br />
c:\programme\microsoft visual studio 8\vc\include\string.h(213): Siehe Deklaration von 'stricmp'<br />
Meldung: &quot;The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.&quot;<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\procfunc.c(343) : warning C4102: 'InLoadOrderModuleList': Unreferenzierte Marke<br />
Code wird generiert...<br />
Das Buildprotokoll wurde unter &quot;file://c:\Dokumente und Einstellungen\keller\Desktop\Neuer Ordner\Neuer Ordner\DMA_HÄXXN___Win32_Debug\BuildLog.htm&quot; gespeichert.<br />
DMA HÄXXN - 4 Fehler, 3 Warnung(en)<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338659</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 13:52:55 GMT]]></title><description><![CDATA[<p>Erstmal: Kannst du mal dazusagen, welche der oben angegebenen Dateien welche ist (und du cheats.h dazugeben)?</p>
<p>Zweitens: Hast du zufällig etwas mit dem User &quot;Chenoa&quot; zu tun? (die letzten Warnmeldungen kommen mir irgendwie bekannt vor)</p>
<p>Drittens: Schreibst du eigentlich C oder C++? Wenn ersteres, würde ich dich eine Etage höher verschieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338674</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 04 Aug 2007 13:52:55 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 14:03:14 GMT]]></title><description><![CDATA[<p>Erwin schrieb:</p>
<blockquote>
<p>c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\cheats.h(27) : error C2054: Nach 'Variablendeklarationen' muss '(' folgen<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\cheats.h(27) : error C2085: 'firstRun': Nicht in der formalen Parameterliste enthalten<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\cheats.h(27) : error C2143: Syntaxfehler: Es fehlt ';' vor '='</p>
</blockquote>
<p>Diese Fehler müsstest du auch selbst raushauen können, schließlich steht Zeilennummer und Begründung dabei...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338681</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 04 Aug 2007 14:03:14 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 14:33:53 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Erstmal: Kannst du mal dazusagen, welche der oben angegebenen Dateien welche ist (und du cheats.h dazugeben)?</p>
<p>Zweitens: Hast du zufällig etwas mit dem User &quot;Chenoa&quot; zu tun? (die letzten Warnmeldungen kommen mir irgendwie bekannt vor)</p>
<p>Drittens: Schreibst du eigentlich C oder C++? Wenn ersteres, würde ich dich eine Etage höher verschieben.</p>
</blockquote>
<p>Ja ich kenne ihn von eine Page.Da gibts source codes.Ich schätze die hat er auch genommen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338688</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 14:33:53 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 14:37:59 GMT]]></title><description><![CDATA[<p>Ich schreib in C++.Sry solte eig. Kein doppelpost werden.Das erste ist main.c das zweite ist procfunc.c</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338689</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 14:37:59 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 21:52:35 GMT]]></title><description><![CDATA[<p>ok 3 fehler nur noch die ich aber nicht weg bekomme</p>
<p>----- Erstellen gestartet: Projekt: DMA HÄXXN, Konfiguration: Debug Win32 ------<br />
Kompilieren...<br />
main.c<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\cheats.h(27) : error C2054: Nach 'Variablendeklarationen' muss '(' folgen<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\main.c(27) : error C2449: '{' auf Dateiebene gefunden - fehlt der Funktionskopf?<br />
c:\dokumente und einstellungen\keller\desktop\neuer ordner\neuer ordner\main.c(261) : fatal error C1004: Unerwartetes Dateiende gefunden.<br />
Das Buildprotokoll wurde unter &quot;file://c:\Dokumente und Einstellungen\keller\Desktop\Neuer Ordner\Neuer Ordner\DMA_HÄXXN___Win32_Debug\BuildLog.htm&quot; gespeichert.<br />
DMA HÄXXN - 3 Fehler, 0 Warnung(en)<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>Wenn ich bei der ersten fehler meldung ne { setze geht es immer noch nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338837</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 21:52:35 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sat, 04 Aug 2007 22:11:00 GMT]]></title><description><![CDATA[<p>ok hab nur noch einen fehler</p>
<p>.\rsrc.rc(10) : fatal error RC1015: cannot open include file 'afxres.h'.</p>
<p>Sry wegen meine doppelpost kann einer sie löschen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338841</guid><dc:creator><![CDATA[Erwin]]></dc:creator><pubDate>Sat, 04 Aug 2007 22:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Sun, 05 Aug 2007 07:29:55 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Ich glaube du benutzt VC++ Express dan kann er es nicht.(Stimmt das?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1338895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1338895</guid><dc:creator><![CDATA[Hello Wolrd]]></dc:creator><pubDate>Sun, 05 Aug 2007 07:29:55 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Mon, 06 Aug 2007 11:00:12 GMT]]></title><description><![CDATA[<p>das ist ein Multiplayer hack, das erkennt man an zbsp. crosshair usw... und CSS und DoD_Source(parameter..)</p>
<p>Helft ihm bloss net, cheater an die Wand!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1339460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339460</guid><dc:creator><![CDATA[OMG]]></dc:creator><pubDate>Mon, 06 Aug 2007 11:00:12 GMT</pubDate></item><item><title><![CDATA[Reply to Main.c und procfunc.c fehler? on Mon, 06 Aug 2007 11:59:10 GMT]]></title><description><![CDATA[<p>Ich glaube kaum, dass da Gefahr besteht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1339498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339498</guid><dc:creator><![CDATA[mad_martin]]></dc:creator><pubDate>Mon, 06 Aug 2007 11:59:10 GMT</pubDate></item></channel></rss>