Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > World of Warcraft
You last visited: Today at 12:06

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

Advertisement



WoW-Bot selber schreiben

Discussion on WoW-Bot selber schreiben within the World of Warcraft forum part of the Popular Games category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2008
Posts: 7
Received Thanks: 0
WoW-Bot selber schreiben

Hallo, ich probiere seit Tagen selber einen Bot zu schreiben. Dabei bin ich kein Anfänger und kenne mich sehr gut in C und der WinAPI aus.
Bisher habe ich einen Autoclicker für meine Zauber gebastelt, damit ich nicht ständig die selben Tasten drücken muss.
Nun möchte ich doch etwas mehr Flexibilität rein bringen, z.B. automatisch das Mob wechseln wenn das alte tot ist.
Da stellt sich mir aber nun die Frage wie ich an diese Informationen komme.
Ich denke mal die sind im Speicher aber ich bräuchte einen Anhaltspunkt wie ich danach suche, bzw. wie ich an die richtigen Werte komme.
Da kommt dann auch ein weiteres Problem, denn die Lebenspunkte und die Manapunkte sind afaik Serverseitig gespeichert und somit nicht im Speicher zu finden (oder sind die zu finden und nur nicht editierbar?).

Ich hoffe mir wird hier etwas geholfen.

Greetz,
enco
enco is offline  
Old 03/10/2009, 12:08   #2
 
elite*gold: 19
Join Date: Aug 2007
Posts: 4,432
Received Thanks: 874
mach das ganze doch nur oberflächlich. wenn dein mana zb low geht kann man das visuel erkennen und der bot handelt dann. gleiche beim mob. wenn mob auf 0% ist = erkennen = nächster mob
Rammsteiner is offline  
Old 03/10/2009, 12:13   #3
 
elite*gold: 20
Join Date: Dec 2006
Posts: 839
Received Thanks: 91
HP und MP werden mit dem Server abgeglichen. Da sie aber clientseitig angezeigt werden (d'oh!) werden sich die entsprechenden Werte auch im Speicher finden.

Es gibt hier im Forum genügend Links zu anderen Seiten, insbesondere im Gamehacking-Bereich, die dir in dieser Sache weiterhelfen sollte. So dass es wohl unnötig wäre, das alles hier nochmals aufzugreifen.
Assass1n is offline  
Old 03/11/2009, 07:00   #4
 
elite*gold: 0
Join Date: Apr 2005
Posts: 745
Received Thanks: 669
Jo also entweder nimmst du dir die Werte aus dem Speicher oder eben vom Bildschim wie schon richtig gesagt.
Also wenn ich sowas mach, dann meist mit AutoIt, da ich zu 90% sagen kann, dass AutoIt nicht als ThirdParty rausgekickt wird.

Bei nem eigenen C-Programm, das auchnoch auf den Speicher zugreift(zwar nur lesen aber trozdem Risiko) Wer weiß wie sich Warden da verhält.

In AutoIt kannst du das ganze mit PixelSearch machen.
Das benutz ich z.B. auf für den Fish-Bot.

Syntax:
PixelSearch ( left, top, right, bottom, color [, shade-variation][, step]] )

Beispiel:
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )
If Not @error Then
MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf

Das ganze sucht nen roten Pixel mit einertoleranz von 10.
Die ersten 4 Werte sind die Bereich in dem er sucht.
Der 5. Wert is die Farbe nach der gesucht wird.

Wenn zu jetzt z.B. HP auslesen wilst kannst du auch einfach PixelGetColor benutzen um an einer ganz bestimmten Stelle die Farbe auszulesen.
z.B. im HP-Balken vom Gegner oder in deinem um nen Trank zu schlucken oder um nach dem Kampf zu essen/trinken.

Die Funktionen gibts natürlich auch in C.

Hoffe das hat dir ein bissel geholfen.
Sordi is offline  
Old 03/11/2009, 08:24   #5
 
elite*gold: 0
Join Date: Jun 2008
Posts: 7
Received Thanks: 0
Danke aber eine Frage hätte ich dazu. Ich kann nirgends ein Handle finden also gehe ich davon aus, dass das Fenster immer im Vordergrund sein muss, richtig?
enco is offline  
Old 03/11/2009, 12:03   #6
 
elite*gold: 0
Join Date: Apr 2005
Posts: 745
Received Thanks: 669
Jo das is halt der Nachteil an AutoIt in dem Fall. Es lies die ja die aktuelle Pixel-Farbe aus die dort angezeigt ist.
Man kann nur Tastendrückedirekt an das WoW-Fenster schicken.

Du kannst aber mit AutoIt auch die Memory von WoW auslesen/verändern btw.
Sordi is offline  
Old 03/12/2009, 06:16   #7
 
elite*gold: 0
Join Date: Aug 2006
Posts: 505
Received Thanks: 89
Das nur oberflächlich zu machen ist wohl die dümmste Idee.

Sobald jemand ein anderes Interface hat kannst du den Bot vergessen.
Dass das Fenster immer aktiv sein müss ist auch nicht grade eine positive Eigenschaft eines Bots.

Machs am besten über den Speicher, allzu schwer ist das nicht, wenn du dich halbwegs damit auskennst und fähig bist entsprechende Adressen/Pointer herauszufinden.

Ein Thread der mir geholfen hat:
kennyo is offline  
Old 03/12/2009, 16:05   #8
 
elite*gold: 0
Join Date: Apr 2005
Posts: 745
Received Thanks: 669
Quote:
Originally Posted by kennyo View Post
Das nur oberflächlich zu machen ist wohl die dümmste Idee.

Sobald jemand ein anderes Interface hat kannst du den Bot vergessen.
Dass das Fenster immer aktiv sein müss ist auch nicht grade eine positive Eigenschaft eines Bots.

Machs am besten über den Speicher, allzu schwer ist das nicht, wenn du dich halbwegs damit auskennst und fähig bist entsprechende Adressen/Pointer herauszufinden.

Ein Thread der mir geholfen hat:
Du du kennst dich ja da am besten aus gelle? xD
Zum Thema Interface kann man auch eine setupfunktion einbauen. Hab ich bei meinen Bots auch schon gemacht. Einfach mit der Maus auf die stelle und ne testenkombination zack hast du den bot eingerichtet.

Und wenn du mit Speichergeschichten anfängst dann kannst du dir schonmal gedanken machen wie du warden dabei umgehst. An den Speicherschicken is net so das Problem, da hast du recht aber das so zumachen dass du net gleich gebannt wirst is wieder was anderes. Also is Speichernutzung bei WoW wohl die "dümmste Idee", aber wenn du das kannst mach doch einen für uns.

Edit: Btw gehts bei deinem Link hauptsächlich ums Speicher AUSLESEN, was nicht so riskant is.
Aber Befehle an den Speicher senden is was anderes. Siehe WoW!Sharp. Kaum war Warden da wurden alle User der Reihe nach gebannt...warum nur? Wow!Sharp konnte man schön im minimierten Fensterlaufen lassen weil den Speicher verändert hat.
Sordi is offline  
Old 03/12/2009, 16:25   #9
 
BlackFog's Avatar
 
elite*gold: 105
Join Date: Mar 2007
Posts: 5,073
Received Thanks: 558
Wer redet denn auch davon in den Speicher zu schreiben ? Und vom Speicher lesen ist nicht besonders gefährlich, da es für eininge Programme natürlich ist im Speicher zu lesen(Antiviren - Software). Wiederrum sollte man das schreiben in den Speicher vermeiden, da das nicht "natürlich" ist.
BlackFog is offline  
Old 03/12/2009, 18:44   #10
 
elite*gold: 0
Join Date: Mar 2009
Posts: 36
Received Thanks: 1
ich raffs nicht
LAMIKA is offline  
Old 03/12/2009, 18:57   #11
 
12354's Avatar
 
elite*gold: 0
Join Date: Apr 2007
Posts: 943
Received Thanks: 132
Die Werte kannst du ohne Probleme aus WoW auslesen.(ebenso alle möglichen Mob Positionen etc).

Die besten Infos kriegste eigentlich in der Memory Editing Sektion von ****** (ich kann dir bei TLS Implementation etc aber auch helfen).

Ich würde erstmal einen Radar bzw InfoTool schreiben dass dir alle Mobs inner Umgebung anzeigt.

P.S PixelSearch is kagge : P
12354 is offline  
Old 03/12/2009, 19:04   #12
 
elite*gold: 0
Join Date: Jun 2008
Posts: 7
Received Thanks: 0
Danke erstmal für eure Hilfe und Ideen, aber ich habe mich für die Speichervarainte entschieden.
Jetzt hänge ich aber an einem Punkt fest.
Wie bekomme ich von der dynamischen Adresse eine statische, die ich in meinem Programm nutzen kann?

Beispielsweise möchte ich die HP auslesen, habe davon dann auch die dynamische Adresse gefunden.
Nachdem ich gescannt habe welche Adressen auf die dynamische Adresse schreiben erhielt ich folgende Zeile:
Quote:
006253cc - 89 0c 90 - mov [eax+edx*4],ecx
Jetzt habe ich die Werte aus eax, ecx und edx eingesetzt und das ganze mal ausgerechnet:
Quote:
[eax + edx * 4], ecx

eax = 1F442648
edx = 0x58
ecx = 0x3DC50

[0x1F442648 + 0x16 * 4], 0x3DC50
[0x1F442648 + 0x58], 0x3DC50
Jetzt weiß ich nur noch nicht ganz was ich mit dem Ergebnis anfangen kann, eine Idee habe ich. Ich denke, dass 0x1F442648 die Adresse (Pointer? Basis?) darstellt und 0x58 der Offset ist.

Bitte klärt mich auf.
enco is offline  
Old 03/12/2009, 19:13   #13
 
12354's Avatar
 
elite*gold: 0
Join Date: Apr 2007
Posts: 943
Received Thanks: 132
Wie gesagt ich würde es mit der TLS Methode machen

Dabei bekommste einen Pointer der zum ersten Objekt(Mob,GameObject etc) zeigt , dann kannste ein spezielles Offset zur Adresse des ersten Objekts dazuaddieren und bekommst darauf z.B die HP oder das Target.
Das ganze kannste dir als linked list vorstellen -> jedes Objekt hat n Pointer zum nächsten Objekt -> du kannst durch alle Objekte gehen und z.b dein Target nehmen.

Is im Prinzip recht einfach.
12354 is offline  
Old 03/12/2009, 19:16   #14
 
elite*gold: 0
Join Date: Jun 2008
Posts: 7
Received Thanks: 0
Das klingt sehr gut, TLS sagst du .. Danach suche ich gleich mal!
Also angenommen ich finde diese Startadresse von der aus gerechnet wird, die ist doch bei jeder WoW-Version gleich, also auf jedem PC bei ner 2.4.3er ist die Adresse gleich, oder?
Wenn das so ist und die Offsets auch stimmen sollte ich doch irgendwo eine Liste finden können und die benutzen, oder nicht?

Soviele Fragen, ich hoffe ich gehe euch nicht allzusehr auf die Nerven ^^
Ich suche gleich mal nach diesem TLS. Danke für den Tipp!
enco is offline  
Old 03/12/2009, 22:36   #15
 
elite*gold: 0
Join Date: Apr 2005
Posts: 745
Received Thanks: 669
Jo sollten identisch sein.
Hier mal ein paar offsets. Dazukommt dan die base des objekts:

Position X = 0x7D0
Position Y = 0x7D4
Position Z = 0x7D8
Aggro oder nicht = 0x7DC
Momentane HP = 0xFF4

Um die PlayerBase zu bekommen benutz ich in AutoIt den Code:

Func _WoWPlayerBase($handle)
$Pointerlvl1 = _MemoryRead(0x0127F13C,$handle,'ptr') ;(p)
$Pointerlvl2 = _MemoryRead($Pointerlvl1 + 0x30,$handle,'ptr')
$pBase = _MemoryRead($Pointerlvl2 + 0x28,$handle,'ptr')
return $pBase
EndFunc

Funktioniert also ca wie 12354 gesagt hat über mehrere Ebenen. Ich denkdürfte kein Problemsein das in C zu übersetzen. Müsst mal gucken wie die anderen Offsets sind wenn du mehr brauchst.
Sordi is offline  
Reply


Similar Threads Similar Threads
Bot/Script selber schreiben
06/17/2010 - Guild Wars - 16 Replies
Huhu ich wollte mal euch fragen mit was für eine Progie man überhaupt so einen bot/script für GW schrieben kann? es ist einfach sowas zu machen ober braucht man viel erfahrung? gibt es vielleicht ein tut das einem hilft so einen bot/script zu erstellen? sorry dafür falls das thema nicht hier rein gehört.
Macros Selber schreiben
05/03/2010 - 4Story - 4 Replies
Mit welchem Programm kann man eigene Macros schreiben ? Kein AutoIT !
hack selber für crossfire schreiben??
04/16/2010 - CrossFire - 10 Replies
hy kenne mich mit c (einigermaßen )aus ;) nun wollte ich mal fragen wo ich mir einen hack für crossfire erstellen kann??(miit was für einem programm?) bitte heft mir pls!!:handsdown: bedank mich imvoraus gebe auch jeden der einen guten beitrag brin(der mir auch weitehilft:):rolleyes:) ein fetts überdimensionales THANKS:)
Selber Hack schreiben Help My you !
02/11/2010 - 4Story - 8 Replies
Also Ich wollte für 4s einen hack schreiben Zuerst habe ich Mit Flahs Games Angefangen Das Problem Ist das sich die adresse bei jedem Spiel neustart endert Habe Tausende tut angesehen wie man den DMA Pointer Findet Doch keiner Klappt udn wie sol das mit dem offset gehen bitte schreibt mir eure icq oder Msn auf ich wiel Mit jemanden Kontakt ahben der eien ahnung Hatt Ps Es geht Um das Flahs game BoxHead vll kennt das wer wie finde ich den Pointer von UZI Monizion usw So hir Ein Paar...



All times are GMT +2. The time now is 12:06.


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.