Eure größten Programmier Fails!

09/29/2009 15:12 Cholik#16
Eure größten Programmier Fails!
|
v
ROCPBF, ROIGBF ;O
10/07/2009 19:59 buFFy!#17
Ich hab vor ner Woche ne dll injeziert und wollte die ingame variablen per writeprocessmemory umschreiben :facepalm:

Und nein, es war nicht meine 1. Mal..
10/07/2009 20:15 Gianotti#18
Quote:
Originally Posted by u-coRe View Post
Ich hab vor ner Woche ne dll injeziert und wollte die ingame variablen per writeprocessmemory umschreiben :facepalm:

Und nein, es war nicht meine 1. Mal..
wie willse die dennn sonst umschreiben XD
10/07/2009 20:36 Akorn#19
Quote:
Originally Posted by Gianotti View Post
wie willse die dennn sonst umschreiben XD
Mit der memcpy funktion kann man auch speicherstellen im eigenen speicherbereich umschreiben. Und nach einer injection befindet sich die DLL ja im selben speicherbereich des programmes in dem injectiert wurde.
10/07/2009 20:39 Gianotti#20
Quote:
Originally Posted by Akorn View Post
Mit der memcpy funktion kann man auch speicherstellen im eigenen speicherbereich umschreiben. Und nach einer injection befindet sich die DLL ja im selben speicherbereich des programmes in dem injectiert wurde.
ja das stimmt danke für die aufklärung damit gehts einfacher
10/07/2009 20:45 D00MR4ZR#21
Would be so much better if you posted your Q in ENG!
10/07/2009 21:27 buFFy!#22
Quote:
Originally Posted by Gianotti View Post
ja das stimmt danke für die aufklärung damit gehts einfacher
So zum Beispiel..

10/07/2009 21:54 Gianotti#23
Quote:
Originally Posted by u-coRe View Post
So zum Beispiel..

that works ? cool :D
10/08/2009 21:14 Bot_interesierter#24
Man sollte für CreateThread eine richtige Thread Routine anlegen, das kann sonst zu unerwarteten Problemen führen.
Code:
#include "stdafx.h"
#include <limits>
#include <windows.h>

DWORD __stdcall ChangePts(LPVOID lpThreadParameter) 
{
	  //Memories
	  while(true)
	  {
		  if(GetAsyncKeyState(0x22))
		  {
			  while(GetAsyncKeyState(0x22))
			  {
				  Sleep(100);
			  }
			  *(unsigned long*) (0x08237810) =  (*(unsigned long*) (0x08237810)+1000);
		  }
	  }
	  return 1;
}

BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved  ) 
	{ 
		if (ul_reason_for_call == DLL_PROCESS_ATTACH) { 
			CreateThread(
				NULL,
				NULL,
				ChangePts,
				NULL,
				NULL,
				NULL
				); 
			 
	} 
		else{
			return TRUE;
			};
		return TRUE; 
	}
10/08/2009 21:39 Gianotti#25
Quote:
Originally Posted by Bot_interesierter View Post
Man sollte für CreateThread eine richtige Thread Routine anlegen, das kann sonst zu unerwarteten Problemen führen.
Code:
#include "stdafx.h"
#include <limits>
#include <windows.h>

DWORD __stdcall ChangePts(LPVOID lpThreadParameter) 
{
	  //Memories
	  while(true)
	  {
		  if(GetAsyncKeyState(0x22))
		  {
			  while(GetAsyncKeyState(0x22))
			  {
				  Sleep(100);
			  }
			  *(unsigned long*) (0x08237810) =  (*(unsigned long*) (0x08237810)+1000);
		  }
	  }
	  return 1;
}

BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved  ) 
	{ 
		if (ul_reason_for_call == DLL_PROCESS_ATTACH) { 
			CreateThread(
				NULL,
				NULL,
				ChangePts,
				NULL,
				NULL,
				NULL
				); 
			 
	} 
		else{
			return TRUE;
			};
		return TRUE; 
	}
unerwartete probleme ? welche z.b. . bei mir sind noch nie welche aufgetaucht
10/09/2009 15:20 buFFy!#26
Ich hatte damit bisher auch noch keine Probleme
10/09/2009 18:39 Bot_interesierter#27
Man kann Probleme mit dem Stack bekommen, weil CreateThread einen lpThreadParameter Pointer übergibt und wenn die Funktion keinen lpThreadParameter pointer übernimmt ist das verhalten undefiniert.
Solange man keine ThreadParameter übergibt sollte es aber keine Probleme machen, nur gehört es zu einem guten Programmierstiel dazu FunktionPointer nicht unnötig zu casten, also lieber gleich den Funktions Prototypen richtig programmieren als irgendwann später mal ärger damit zu haben.
10/09/2009 19:47 Gianotti#28
Quote:
Originally Posted by Bot_interesierter View Post
Man kann Probleme mit dem Stack bekommen, weil CreateThread einen lpThreadParameter Pointer übergibt und wenn die Funktion keinen lpThreadParameter pointer übernimmt ist das verhalten undefiniert.
Solange man keine ThreadParameter übergibt sollte es aber keine Probleme machen, nur gehört es zu einem guten Programmierstiel dazu FunktionPointer nicht unnötig zu casten, also lieber gleich den Funktions Prototypen richtig programmieren als irgendwann später mal ärger damit zu haben.
solange es funktioniert ist mir das egal programmiere ja nicht für geld :)
10/15/2009 11:16 Cholik#29
Quote:
Originally Posted by Gianotti View Post
solange es funktioniert ist mir das egal programmiere ja nicht für geld :)
Wieso nen Porsche fahren wenn man auch n Trabbi haben kann ;O
10/15/2009 19:58 link#30
Ich bin mit meinem Trabant 601LX Deluxe ein dicker Bonner Bonze :>