Register for your free account! | Forgot your password?

Go Back   elitepvpers > World of Warcraft > WoW Bots
You last visited: Today at 01:21

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

 

Wie funktioniert CTM?

Reply
 
Old   #1
 
elite*gold: 1
Join Date: Jun 2009
Posts: 1,142
Received Thanks: 158
Wie funktioniert CTM?

Hi,
also ich stelle mir gerade die Frage wie ig. CTM funktioniert.
Ich habe gehört, dass das über MemoryEditing gemacht wurd, aber kann mir nicht vorstellen wie man die Adressen in CE finden soll oder welche Werte man bei denen eintragen müsste damit irgendwo hingeklickt wird.
Wäre nett wenn jemand das mal erklären könnte.



●ROBBY● is offline  
Old   #2
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,580
Received Thanks: 1,609
Naja, die Offsets in Cheat Engine zu finden ist schwer.
Leichter ist es sie durch ein Pattern zu finden, oder aus der internen WoW Funktion rauszukopieren. :-)

Also du brauchst 5 Addressen.

CTMX = X Koordinate wo du hin möchtest,
CTMY = Y ...,
CTMZ = Z ...,
CTMDistance = eine "Click distance" Idealwert liegt bei 1.4f oder 3.4f, weiß es nicht auswendig gerade.
CTMState = Ist das, was der Klick intern machen soll, (Object Interact, bewegen oder ähnliches) Für bewegen ist es die konstante "4".

Wenn du mehr Informationen zu CTM brauchst und möchtest, kannst du gerne Antworten und Fragen, ich gebe dir gerne mehr Informationen, falls nötig.


Bl@ze! is offline  
Thanks
1 User
Old   #3
 
elite*gold: 1
Join Date: Jun 2009
Posts: 1,142
Received Thanks: 158
Was ist Pattern ?
●ROBBY● is offline  
Old   #4
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,580
Received Thanks: 1,609
Pattern sind Masken , bzw. Bytefolgen die nach einer Änderung der .exe immernoch gleich sind, bzw Bytefolgen die sie wenig ändern.

Nach diesen Bytefolgen wird gesucht und man erhält die Addressen, an welcher diese Bytefolge steht.

Ein Pattern kann zum Beispiel so aussehen:
"\x55\x8B\xEC\x57\x8B\x7D\x00\x85\xFF\xF\x84\x00\x 00\x00\x00\x80\x3F\x00"

Die dazugehörigen Bytefolge ist folgende: xxxxxx?xxxx????xx?

Die "?" spiegeln Bytes da, die sich ändern. Die "x" sind vermutlich "immer" gleich nach jedem Patch.

Und die zugehörigen Funktionen, zu meinem Beispiel sehen so aus:

Code:
#pragma once

#include <windows.h>

namespace Utilities
{
	bool compareData(LPCBYTE currentData, LPCBYTE byteMask, LPCSTR filterMask)
	{
		for (; *filterMask; ++filterMask, ++currentData, ++byteMask)
		{
			if (*filterMask == 'x' && *currentData != *byteMask)
				return false;
		}

		return !(*filterMask);
   }

	DWORD_PTR findPattern(	LPCBYTE byteMask,
							LPCSTR filterMask,
							DWORD_PTR startAddress,
							DWORD_PTR dataLength)
	{
		for (DWORD_PTR current = 0; current < dataLength; current++)
		{
			if (compareData(reinterpret_cast<LPBYTE>(startAddress + current), byteMask, filterMask))
				return startAddress + current;
		}

		return 0;
	}
}
Edit: Wenn ich schon gerade meinen Source durchschau, kann ich dir auch gleich mal die CTM Offsets geben, falls sie dich interessieren:

Code:
enum CTM
   {
      CTMX     = 0xCA11E4 + 0x80,
      CTMY     = 0xCA11E4 + 0x84,
      CTMZ     = 0xCA11E4 + 0x88,
      State    = 0xCA11E4 + 0x10,
      Distance = 0xCA11E4,
   };


Bl@ze! is offline  
Thanks
3 Users
Old   #5
 
elite*gold: 1
Join Date: Jun 2009
Posts: 1,142
Received Thanks: 158
Hört sich ziemlich kompliziert an.
Ich glaube die Funktion zum Bewegen mit OllyDbg zu finden und dann ne Dll zu machen ist einfacher, oder?
●ROBBY● is offline  
Old   #6
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,580
Received Thanks: 1,609
Nein sicherlich nicht. :-)

Weil du mit der DLL kommunizieren musst, von deinem anderen Programm (Inter Process Communication), außer du bist komplett injected.

So würdest du deinen Charakter zu x,y,z (float Variabeln) bewegen lassen.

Code:
int state = 4;
   float distance = 0.5f;
   WriteProcessMemory(curHandle, (void*)Offsets::CTMX, &x, sizeof(float), &bytesWritten);
   WriteProcessMemory(curHandle, (void*)Offsets::CTMY, &y, sizeof(float), &bytesWritten);
   WriteProcessMemory(curHandle, (void*)Offsets::CTMZ, &z, sizeof(float), &bytesWritten);
   WriteProcessMemory(curHandle, (void*)Offsets::Distance, &distance, sizeof(float), &bytesWritten);
   WriteProcessMemory(curHandle, (void*)Offsets::State, &state, sizeof(int), &bytesWritten);
Edit: Wenn du dir die Funktion zum Bewegen in Olly oder IDA mal anschauen möchtest, hier die Addresse: 00727400 CGPlayer_C__ClickToMove
Bl@ze! is offline  
Thanks
2 Users
Old   #7
 
elite*gold: 0
Join Date: Jun 2010
Posts: 697
Received Thanks: 96
WoW also Unknow du machst dir wirklich viel Mühe
♥-♥ is offline  
Old   #8
 
elite*gold: 1
Join Date: Jun 2009
Posts: 1,142
Received Thanks: 158
Ok, ich glaube ich werde erstmal weiter "normal" programmieren lernen und mich erst in ner Woche oder so daran versuchen wenn ich die Basics und alles komplett drauf habe.
Aber trotzdem Danke für deine schnelle Hilfe.
Hab mir den Thread schonmal aus Bookmark hinzugefügt.
●ROBBY● is offline  
Old   #9
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,580
Received Thanks: 1,609
Das normale Programmieren ist schonm, denn HelloWorld Kenntnisse reichen da nicht, aber ich denke, jeder der lernen möchte kann auch lernen.

Du kannst mich auch bei C++ bezogenden Problemen, fragen, solange es keine HelloWorld Probleme sind. :P


Bl@ze! is offline  
Thanks
1 User
Reply



« Previous Thread | Next Thread »

Similar Threads
wie funktioniert das ?
Hi leute ich hab einen hack gedownloadet und weiss jetzt nicht was ich machen soll kann mir jemand erklären was ich machen soll weil ich nicht weiss...
7 Replies - CrossFire
such bot der funktioniert!!!!!!!!!!!!
Ich bin schon seit langem auf der scuhe nach einem guten Bot für Rappelz habe hier ein paar gefunden aber könnt ihr mir Bitte sagen welcher geht und...
2 Replies - Rappelz
Funktioniert das?
Du willst ne 6stellige ICQ-Nummer? - Domain wurde soeben registriert - kostenlos!
4 Replies - Off Topic
Bei mir funktioniert das Löschcode nicht. Er hat mal funktioniert
Hi. Also auf mienem PServer geht das mit dem Löschcode nicht. Kann mir jemand sagen warum? Ich weiß noch das es mal ging. Aber den Spieler in der...
0 Replies - Metin2 PServer - Discussions / Questions
Wie funktioniert das?
Ich würde gerne ein Addon schreiben, welches je nach ausgelöstem Event unterschiedlich farbige Kreise auf den Bildschirm malt. Weiß jemand wie das...
0 Replies - WoW Ask the Experts



All times are GMT +1. The time now is 01:21.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.