Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > World of Warcraft > WoW Bots
You last visited: Today at 07:04

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

Advertisement



Wie funktioniert CTM?

Discussion on Wie funktioniert CTM? within the WoW Bots forum part of the World of Warcraft category.

Reply
 
Old   #1
 
●ROBBY●'s Avatar
 
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 07/14/2010, 15:35   #2
 
Bl@ze!'s Avatar
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,579
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 07/14/2010, 15:43   #3
 
●ROBBY●'s Avatar
 
elite*gold: 1
Join Date: Jun 2009
Posts: 1,142
Received Thanks: 158
Was ist Pattern ?
●ROBBY● is offline  
Old 07/14/2010, 15:48   #4
 
Bl@ze!'s Avatar
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,579
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 07/14/2010, 15:51   #5
 
●ROBBY●'s Avatar
 
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 07/14/2010, 15:54   #6
 
Bl@ze!'s Avatar
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,579
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 07/14/2010, 15:56   #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 07/14/2010, 15:56   #8
 
●ROBBY●'s Avatar
 
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 07/14/2010, 16:00   #9
 
Bl@ze!'s Avatar
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,579
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


Similar Threads Similar Threads
wie funktioniert das ?
07/23/2010 - CrossFire - 7 Replies
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 was PerX.exe ist also btte helft mir danke im voraus
such bot der funktioniert!!!!!!!!!!!!
06/07/2010 - Rappelz - 2 Replies
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 wie man die genau einstellt.. habe bis jetzt alle, fast alle runtergeladen und fast keiner geht. sortiert mal die nicht funktionierenden raus und löscht die einträge den ich lade mir nur müll runter. wäre echt nett wen ich mal eine erfreuliche antwort bekomme ich danke euch Lieben fruß an alle
Funktioniert das?
04/10/2010 - Off Topic - 4 Replies
Du willst ne 6stellige ICQ-Nummer? - Domain wurde soeben registriert - kostenlos!
Bei mir funktioniert das Löschcode nicht. Er hat mal funktioniert
01/07/2010 - Metin2 Private Server - 0 Replies
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 Datenbank löschen geht nicht weil da diser lvl 0 charackter bleibt und ich nciht weiß wie man den weg kriegt Bitte kan mir jemand helfen.
Wie funktioniert das?
02/26/2008 - World of Warcraft - 0 Replies
Ich würde gerne ein Addon schreiben, welches je nach ausgelöstem Event unterschiedlich farbige Kreise auf den Bildschirm malt. Weiß jemand wie das geht, in der WoW API finde ich leider keine Zeichenfunktionen. Für Hilfe wäre ich sehr dankbar. Mfg, Nab4ever



All times are GMT +2. The time now is 07:04.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.