Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 00:27

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

Advertisement



C++ PointerWrite-Read & Allocconsole

Discussion on C++ PointerWrite-Read & Allocconsole within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Question C++ PointerWrite-Read & Allocconsole

Hallo liebe Epvp Community,

ich habe einen Multilevelpointer mit 5 offsets,
diesen kriege ich aber leider nicht verarbeitet,
mein ziel ist es das (ist eine dll) sie überprüft ob der wert >29900 ist
und wen ja ihr wieder auf 300000 writet.

Das Zweite ist , dass ich aus der Dll AllocConsole aufrufe wodurch die Console auch erstellt wird doch ich kriege es nicht hin etwas rein zu writen mit freopen.

Vielen Dank schon mal im Vor raus jeder der versucht zu Helfen bekommt natürlich ein THX.
Terrat is offline  
Old 12/03/2013, 14:59   #2
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
dann zeig mal code den du bisher fabriziert hast, fertige copypastelösung wird dir hier niemand geben.
Dr. Coxxy is offline  
Thanks
2 Users
Old 12/03/2013, 15:17   #3
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Ok hier der Code wo noch nichts davon Passiert:
Code:
#include <iostream>

void RewriteValues(){
    AllocConsole();
	#define Adress_Sp 0x00201D38
	int *SpPtr;
	SpPtr=(int*)Adress_Sp;
	//while(true)
	//{
		*SpPtr=300000;
//	}
}
	BOOL WINAPI DllMain(HINSTANCE hinstDll,DWORD Reason,LPVOID Reserved){

		switch(Reason){

		case DLL_PROCESS_ATTACH:
			
			RewriteValues();
			break;
		case DLL_PROCESS_DETACH:
			
			break;
		}

return TRUE;
}
Terrat is offline  
Old 12/03/2013, 15:50   #4
 
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
//Edit nvm ...
th0rex is offline  
Thanks
1 User
Old 12/03/2013, 16:39   #5

 
Delinquenz's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,160
Received Thanks: 232
Dazu gibt es genug Tutorials, die du offenbar nicht gelesen hast.
Delinquenz is offline  
Thanks
1 User
Old 12/03/2013, 18:51   #6
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Cool

Quote:
Originally Posted by Hiris View Post
Rücke er, der Delinquent, seinen Code ein und verleibe ihm Sinn und Verstand ein, damit jemand ihn freiwillig liest. Nenne er des weiteren Offsets oder gehe er erstmal lernen wie der ganze **** funktioniert bevor er auf die schnelle etwas auf den Boden scheißen will. Denn alles was man auf den Boden scheißt muss man auch irgendwann wieder wegwischen, außer man hat einen Minion der das übernimmt.
Hier:
Baseadress:=0x00400000
Terrat is offline  
Old 12/03/2013, 19:35   #7
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Quote:
Originally Posted by Dreamsläps View Post
Hier:
Baseadress:=0x00400000
Bitte, deine Baseaddress ist nicht 0x00400000
Die Baseaddress, in deinem Fall (also in einer dll), bekommt man durch GetModuleHandle(0) und das addieren deines Modul Offsets. Also:
Code:
DWORD BasePointer = 0;
DWORD ImageBase = (DWORD)GetModuleHandle(0);
BasePointer = ImageBase + 0x00201D38;
Wie man mit Multilevelpointer arbeitet, ist ganz einfach. Du musst deiner Addresse immer den Offset dazuzählen. (bei der CE kannst du das sogar gut beobachten!)


Du solltest mal die Grundlagen lernen, man sollte schon wissen wie man Inputs/Outputs einer Allokierten Konsole verwaltet.
Code:
freopen("CONIN$", "r", stdin); 
freopen("CONOUT$", "w", stdout); 
freopen("CONOUT$", "w", stderr);
XxharCs is offline  
Thanks
1 User
Old 12/03/2013, 20:06   #8


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by XxharCs View Post
Bitte, deine Baseaddress ist nicht 0x00400000
Die Baseaddress, in deinem Fall (also in einer dll), bekommt man durch GetModuleHandle(0) und das addieren deines Modul Offsets. Also:
Woher weißt du dass diese nicht 0x00400000 ist? Eventuell wird ASLR gar nicht verwendet, daher wäre das durchaus plausibel.

In diesem Fall wäre die Funktion GetModuleHandle() auch überflüssig.
Mostey is offline  
Thanks
1 User
Old 12/04/2013, 18:29   #9
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Question Hä`?

Hab es jetzt so gemacht ,
der Compiler und Co sagen mir auch kein Fehler aber er gibt mir das richtige nicht aus ?
Code:
#include <Windows.h>
#include <iostream>
#include <stdio.h>
void RewriteValues(){
	DWORD BasePointer = 0;
	DWORD ImageBase = (DWORD)GetModuleHandle(0);
	BasePointer = ImageBase + 0x00201D38;
	WCHAR BaseOutput[50]; // WCHAR is the same as wchar_t
	// swprintf_s is the same as sprintf_s for wide characters
	swprintf_s(BaseOutput, 10, L"%d", BasePointer); // use L"" prefix for wide chars
	
	MessageBox(NULL,BaseOutput,NULL,NULL);
    DWORD PROC_ID;
    HANDLE PROC_HANDLE;
	DWORD Step1,Step2,Step3,Step4,Step5,EndAdress;
    GetWindowThreadProcessId(FindWindow(NULL, (LPCTSTR)"S4 Client"), &PROC_ID);
    PROC_HANDLE = OpenProcess(PROCESS_ALL_ACCESS, false, PROC_ID);
    ReadProcessMemory(PROC_HANDLE, (void*)BasePointer, &Step1, sizeof(Step1), NULL);
    Step1=Step1+0x84;
	ReadProcessMemory(PROC_HANDLE, (void*)Step1, &Step2, sizeof(Step2), NULL);
	Step2=Step2+0x214;
	ReadProcessMemory(PROC_HANDLE, (void*)Step2, &Step3, sizeof(Step3), NULL);
	Step3=Step2+0x58;
	ReadProcessMemory(PROC_HANDLE, (void*)Step3, &Step4, sizeof(Step4), NULL);
	Step4=Step2+0x14;
	ReadProcessMemory(PROC_HANDLE, (void*)Step4, &Step5, sizeof(Step5), NULL);
	Step5=Step2+0x5d8;
	ReadProcessMemory(PROC_HANDLE, (void*)Step5, &EndAdress, sizeof(EndAdress), NULL);
	WCHAR BaseOutput2[500]; // WCHAR is the same as wchar_t
	// swprintf_s is the same as sprintf_s for wide characters
	swprintf_s(BaseOutput2, 500, L"%d", EndAdress); // use L"" prefix for wide chars
	MessageBox(NULL,BaseOutput2,L"Adress",MB_OK);
	CloseHandle(PROC_HANDLE);

}
	BOOL WINAPI DllMain(HINSTANCE hinstDll,DWORD Reason,LPVOID Reserved){

		switch(Reason){

		case DLL_PROCESS_ATTACH:
			
			RewriteValues();
			break;
		case DLL_PROCESS_DETACH:
			
			break;
		}

return TRUE;
}
Terrat is offline  
Old 12/04/2013, 18:54   #10
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Quote:
Originally Posted by Mostey View Post
Woher weißt du dass diese nicht 0x00400000 ist? Eventuell wird ASLR gar nicht verwendet, daher wäre das durchaus plausibel.

In diesem Fall wäre die Funktion GetModuleHandle() auch überflüssig.
In 90% der Fälle ist es ASLR, bzw. ich bin immer auf ASLR gestoßen


Quote:
Originally Posted by Dreamsläps View Post
Hab es jetzt so gemacht ,
der Compiler und Co sagen mir auch kein Fehler aber er gibt mir das richtige nicht aus ?
Anscheinend verstehst du da vieles nicht.

1. Wieso verwendest du OpenProcess in der dll wenn du sie sowieso in das "Opfer"-Programm injizierst?
2. Wieso verwendest du ReadMemory, wenn du die "Haupt"-Addresse & Offsets kennst?
3. Schau dir die Pointer Arithemtic an, anscheinend hast du es missverstanden / weißt nicht was das ist.
oder das openbook von C mit den Pointer (ob C oder C++ die Pointer Arithemtic funktioniert gleich in den 2 Sprachen)


Code:
DWORD dwOffset1 = *(DWORD*)(BasePointer + 0x5d8);
DWORD dwOffset2 = *(DWORD*)(dwOffset1 + 0x14);
DWORD dwOffset3 = *(DWORD*)(dwOffset2 + 0x58);
DWORD dwOffset4 = *(DWORD*)(dwOffset3 + 0x214);
DWORD dwOffset5 = *(DWORD*)(dwOffset4 + 0x84);
Edit:
Vergessen zu erwähnen, du brauchst noch ein Thread, in diesen führst du deine Funktion aus. Den Thread startest du in DLL_PROCESS_ATTACH.
Code:
DWORD WINAPI HackThread(LPVOID unused)
{
...
}
...
...
CreateThread(0, 0, &HackThread , 0, 0, 0);
...
XxharCs is offline  
Thanks
1 User
Old 12/05/2013, 07:39   #11


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by XxharCs View Post
2. Wieso verwendest du ReadMemory, wenn du die "Haupt"-Addresse & Offsets kennst?
Die Frage sollte eher lauten:
"Wieso verwendest du ReadProcessMemory, wenn du dich im selben Address-Space befindest?"
Die einzelnen Zwischenadressen muss man so oder so auslesen, machst du mit deinem Code ja auch - insofern verstehe ich nicht ganz, was der Verweis auf Hauptadresse und Offsets soll.
MrSm!th is offline  
Thanks
1 User
Old 12/05/2013, 07:55   #12


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by XxharCs View Post
In 90% der Fälle ist es ASLR, bzw. ich bin immer auf ASLR gestoßen
Bin ich jetzt auch eigentlich immer, obwohl ich das bisher testweise nur 3-4 mal gemacht habe. Kann aber trotzdem möglich sein.

Code:
	ReadProcessMemory(PROC_HANDLE, (void*)Step2, &Step3, sizeof(Step3), NULL);
	Step3=Step2+0x58; // Step3 += 0x58
	ReadProcessMemory(PROC_HANDLE, (void*)Step3, &Step4, sizeof(Step4), NULL);
	Step4=Step2+0x14; // Step4 += 0x14
	ReadProcessMemory(PROC_HANDLE, (void*)Step4, &Step5, sizeof(Step5), NULL);
	Step5=Step2+0x5d8; // Step5 += 0x5d8
	ReadProcessMemory(PROC_HANDLE, (void*)Step5, &EndAdress, sizeof(EndAdress), NULL)
Dort sind wesentliche Fehler, du addierst komischerweise immer den Inhalt aus 'Step2' mit den Offsets, obwohl du eigentlich den Inhalt der zuletzt ausgelesen Adresse mit dem Offset addieren solltest. (Du addierst in CE ja auch die Offsets auf das Ergebnis der jeweils letzten Operation, oder?)
Mostey is offline  
Thanks
1 User
Old 12/05/2013, 11:51   #13
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Question

Danke leute kreigt Alle Thx

Aber warum Crasht der Code jetzt den Client?
ps:kann mir jemand den richtigen Code reinschreiben der Funktioniert mit ein bissel erklärung
Code:
#include <Windows.h>
#include <iostream>
#include <stdio.h>
DWORD WINAPI HackThread(LPVOID unused){
	DWORD BasePointer = 0;
	DWORD ImageBase = (DWORD)GetModuleHandle(0);
	BasePointer = ImageBase + 0x00201D38;
	DWORD dwOffset1 = *(DWORD*)(BasePointer + 0x5d8);
	DWORD dwOffset2 = *(DWORD*)(dwOffset1 + 0x14);
	DWORD dwOffset3 = *(DWORD*)(dwOffset2 + 0x58);
	DWORD dwOffset4 = *(DWORD*)(dwOffset3 + 0x214);
	DWORD dwOffset5 = *(DWORD*)(dwOffset4 + 0x84);
	int *SpPtr;
	SpPtr=(int*)dwOffset5;
	while(true)
	{
		if(*SpPtr!=30000);
			*SpPtr=300000;
	}
	return 0;


}
	BOOL WINAPI DllMain(HINSTANCE hinstDll,DWORD Reason,LPVOID Reserved){

		switch(Reason){

		case DLL_PROCESS_ATTACH:
			
			CreateThread(0, 0, &HackThread , 0, 0, 0);
			break;
		case DLL_PROCESS_DETACH:
			
			break;
		}

return TRUE;
}
Terrat is offline  
Old 12/05/2013, 15:41   #14



 
+Yazzn's Avatar
 
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
Vielleicht dereferenzierst du einen nullptr?
+Yazzn is offline  
Old 12/05/2013, 15:46   #15
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Hmm eigentlich ein bissel,
er ist erst aktiv wen ich in einen mode gehe ingame macht das etwas aus ?
Terrat is offline  
Reply

« C++ Buch | DLL Gui »

Similar Threads Similar Threads
WTS EU Account !!!8 Top Tier + 2 premium !!!!!READ READ READ
03/07/2013 - Trading - 1 Replies
Im selling WoT EU account! Here are the tanks in the garage: Tier Xall tanks have 3 camoflauges+full equipment;2 skills max,3rd at 70%+) M110E5 M110E4 M110E3 E100 MAUS
Battle Pirates **READ**READ**READ**
05/02/2012 - Facebook - 37 Replies
Be smart when using the hacks now, Kixeye is banning by ip address now!
READ READ READ !!! LORDYK93 SCAMMER
10/11/2009 - Silkroad Online Trading - 1 Replies
he scammed a ecsro vip account from me ... he wanna give a lvl 90 sjsro account he change the pw of my account and said i have to wait ... now hes on at epvpers and on in msn but he didnt answer me anymore if you answer me and give me my vip account back i will delete this.!



All times are GMT +1. The time now is 00:27.


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.