Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 22:13

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

Advertisement



Wie programmiere ich einen Bot

Discussion on Wie programmiere ich einen Bot within the General Coding forum part of the Coders Den category.

Reply
 
Old 07/12/2006, 22:15   #16
 
elite*gold: 0
Join Date: Jul 2006
Posts: 1,811
Received Thanks: 12
naja ich würde damit anfangen erstmal die offsets der positionen zu finden.
Aber da die nich angezeigt werden, kannst du schlecht normal nach den Offsets suchen
->

leider auch kein Plan wie man an die Offsets kommt.

Sobald ich das rausbekommen hab, fang ich auch mal mit nem einfachen Pathway-"Bot" an, der einfach mal die wege abläuft
DrunkenSheep is offline  
Old 07/12/2006, 23:19   #17
 
elite*gold: 0
Join Date: Jul 2006
Posts: 12
Received Thanks: 0
Sowas in der Art wäre auch ein guter Ansatz für mich zum anfangen, erstaml ein kleines Programm schreiben und erstmal die ganzen Probleme der hardwarenahen Programmierung in den Griff bekommen.. meine Programme ich bis jetzt so Programmiert habe, sahen meisten eher nach dem schema aus lese irgendwelche werte aus der Eingabeaufforderung, berechne sie und geben sie wieder aus.. und das gleiche nochhmal in graphisch mit java
NEOGEO is offline  
Old 07/12/2006, 23:22   #18
 
elite*gold: 0
Join Date: Jul 2004
Posts: 980
Received Thanks: 46
also ein auf pixel basierter bot funktioniert offensichtlich nicht wenn das spiel minimiert ist und keine pixel zu sehen sind

also die infos zu deinem char sind im normal fall alle auf dem server gespeichert

und hier kommt dann das mit dem dynamischen speicher hinzu weil dein client braucht um etwas anzeigen zu können ja die informationen

1. entweder hat der client also für alle daten statisch speicher angelegt und schreibt die informationen wenn er sie vom client bekommt dort hin

2. er legt am anfang an einer dynamischen adresse die daten ab ansich das gleiche wie oben

3. er speichert fast nix und verarbeitet die informationen direkt nach dem empfang und verwirft anschließend alles da hier nix oder fast nix gespeichert wird kann man im speicher nichts finden man kann es aber abfangen und selber speichern und so doch an die daten kommen


Um an die daten zu kommen kannst du am einfachsten tsearch nehmen dich irgendwo hin stellen und dann neue suche starten dann dich bewegen und wert verändert machen usw... bis hoffentlich nurnoch ein wert übrig bleibt alternativen an programmen gibts genug z.B. cheat engine wenn du keinen wert findest kann es gut sein das methode 3 verwendet wird

edit: aus dem speicher lesen is ganz einfach da benutzt du windows api ReadMemory und WriteMemory sind deine freunde einfach bei google eingeben und dazu MSDN
Ultima is offline  
Old 07/12/2006, 23:39   #19
 
elite*gold: 0
Join Date: Jul 2006
Posts: 12
Received Thanks: 0
danke Ultima, sehr aussagekräftiger thread
aber was mache ich wenn bei dem betreffenden Spiel Fall 3 der Fall ist, was ich befürchte, wie kann man die Daten abfangen?
NEOGEO is offline  
Old 07/13/2006, 00:21   #20
 
elite*gold: 0
Join Date: Jul 2004
Posts: 980
Received Thanks: 46
Quote:
Originally posted by NEOGEO@Jul 12 2006, 23:39
danke Ultima, sehr aussagekräftiger thread
aber was mache ich wenn bei dem betreffenden Spiel Fall 3 der Fall ist, was ich befürchte, wie kann man die Daten abfangen?
das funktioniert so das du erstmal die stelle im programm code finden musst an der die daten die du haben willst verarbeitet werden
und dann patched du das einfach ein wenig das die daten erstmal an eine feste speicher adresse geschrieben werden und dann verarbeitet werden

dazu muss ich wohl erwähnen das du bei fall 3 ohne assembler grundkenntnisse nicht weiter kommst
Ultima is offline  
Old 07/13/2006, 04:37   #21
 
elite*gold: 0
Join Date: May 2006
Posts: 162
Received Thanks: 44
Quote:
Originally posted by Ultima@Jul 12 2006, 19:50
man kann nicht generell davon ausgehen das adressen statisch sind es gibt aber techniken sie statisch zu machen
Es gibt immer eine statische Basis Adresse, ob der eigentliche Wert den man haben will in einen dynamischen Bereich liegt den man nur über 10 Pointern erreicht ist dabei egal.

edit:
ok gibt 2 Ausnahmen, man kann die Adresse als Argument übergeben dadurch befindet sie sich nur auf dem Stack und die andere man speichert sie über den FS Pointer. Erstere wird man aber nie vorfinden und zweitere kann man auch einfach lösen.
Harko is offline  
Old 07/13/2006, 10:21   #22
 
elite*gold: 0
Join Date: Jul 2006
Posts: 12
Received Thanks: 0
@ Ultima wie wahrscheinlich ist es denn so das ein die Daten dirket verarbeitet, ohne sie nochmals in einer Variable zwischen zu speichern?
Ich hab ma ne Grundsätzliche Frage, wenn man dem compiler das verwalten der Speicherbereiche überlässt sind die doch dynamisch, und die ändern sich doch dann bei jedem Programmstart? WEnn ich jetzt einmal einen Spielstand oder sowas (hab ich net vor und würde auch bei einem Onlinespiel nicht funktionieren..) editieren will dann müsste ich doch bei jedem bei jedem Neustart die gesamte Prozedur mit tSearch wieder durchführen, oder seh ich das falsch?
NEOGEO is offline  
Old 07/13/2006, 19:42   #23
 
elite*gold: 0
Join Date: Jul 2004
Posts: 980
Received Thanks: 46
Quote:
Originally posted by NEOGEO@Jul 13 2006, 10:21
@ Ultima wie wahrscheinlich ist es denn so das ein die Daten dirket verarbeitet, ohne sie nochmals in einer Variable zwischen zu speichern?
Ich hab ma ne Grundsätzliche Frage, wenn man dem compiler das verwalten der Speicherbereiche überlässt sind die doch dynamisch, und die ändern sich doch dann bei jedem Programmstart? WEnn ich jetzt einmal einen Spielstand oder sowas (hab ich net vor und würde auch bei einem Onlinespiel nicht funktionieren..) editieren will dann müsste ich doch bei jedem bei jedem Neustart die gesamte Prozedur mit tSearch wieder durchführen, oder seh ich das falsch?
das kann man so generell nicht sagen

wenn ein programm ziehmlich linear abläuft und speicher immer in der gleichen reihenfolge angefordert wird bekommen die selben adressen

wenns aber durcheinander ist dann nicht

es gibt aber techniken die es einem ermöglichen an diese dynamischen adressen heran zu kommen

dazu sucht man sich im programm eine stelle an der mit dem wert gearbeitet wird (das programm kennt ja die adresse) und dort klaust du sie dir einfach oder du kopierst den wert an eine feste speicheradresse das geht z.B. mit tsearch oder einem debugger

als schlagwort ist hier "DMA to Static" zu nennen für tutorial suche
Ultima is offline  
Old 07/14/2006, 08:42   #24
 
elite*gold: 0
Join Date: Aug 2005
Posts: 443
Received Thanks: 72
neji is offline  
Old 07/14/2006, 09:39   #25
 
Lowfyr's Avatar
 
elite*gold: 235
The Black Market: 135/1/0
Join Date: Jul 2003
Posts: 16,559
Received Thanks: 17,765
davon gabs auch nochn dma stealing (die dma2static codecave variante) video tutorial
Lowfyr is offline  
Old 07/14/2006, 13:33   #26
 
elite*gold: 0
Join Date: May 2006
Posts: 162
Received Thanks: 44
Quote:
Originally posted by neji@Jul 14 2006, 08:42
Tutorial ist nutzlos ...

fld dword ptr [ebx+0x354]

im debugger rückwärts tracen und einfach schauen wie der Wert in ebx generiert wird und dies dann passiv im Bot genauso machen.

fld packt ein float wert auf den floating point stack. Z.b. x/y/z Koordinaten. In einer eigenen Hookfunktion müßte man dann immer noch mit einbauen um welches Objekt es sich handelt da ebx bei unterschiedlichen Objekten wie Spieler/Monster usw. ein anderen Wert hätte.

Wie gesagt es gibt immer eine statische Basis Adresse. Spiele benutzen Multi-Threading. Damit z.B. der Socket-Thread und der Render-Thread auf das gleiche Objekt zugreifen können muß es irgendwo einen statischen Verweis auf dieses Objekt geben.
Harko is offline  
Old 07/15/2006, 23:41   #27
 
elite*gold: 0
Join Date: Jul 2006
Posts: 12
Received Thanks: 0
@Harko, ich vestehe den Sinn von deinem Thread nicht ganz
Quote:
Tutorial ist nutzlos ...

fld dword ptr [ebx+0x354]

im debugger rückwärts tracen und einfach schauen wie der Wert in ebx generiert wird und dies dann passiv im Bot genauso machen.

fld packt ein float wert auf den floating point stack. Z.b. x/y/z Koordinaten. In einer eigenen Hookfunktion müßte man dann immer noch mit einbauen um welches Objekt es sich handelt da ebx bei unterschiedlichen Objekten wie Spieler/Monster usw. ein anderen Wert hätte.
Kann man aus einen Spiel systemnachrichten abfangen die im Chatfester erscheinen, sowie auch Chatnachrichten von anderen Gamern?
NEOGEO is offline  
Old 02/02/2010, 11:13   #28
 
elite*gold: 0
Join Date: Jan 2010
Posts: 69
Received Thanks: 3
lol 4 jahre alten thread rausgekramt
glückwunsch dazu -.-
eumel122 is offline  
Reply


Similar Threads Similar Threads
Wie programmiere ich einen Warrock D3D Hack ?
09/13/2010 - WarRock - 13 Replies
Hey liebe Community :) ich habe eine frage kann mir einer beim coden eines D3D Warrock Menü Hack behilflich sein ? weil ich mache des zum 1.Mal und würde mich sehr freuen wenn mir da einer helfen könnte Addys+Programm habe ich (VisualBasic2010ExpressEdition)
Techniker Programmiere gesucht!
06/06/2010 - Metin2 Private Server - 5 Replies
Unser jetziger Hamachi Server soll bald auf Root laufen!! Dazu suchen wir Programmiere die sich mit Gm-tool und dem Patchuptader auskennen! Und Techniker mit Server File Kenntnissen und wie es auf einem Root einfach läuft..! Trettet dem Hamachi Netzwerk Metin2Moon bei(12345) Und Pnt ZyoX ! Wäre geil wenn ihr uns helfen könnten ;D
Wie programmiere ich neue Länder in Flyff rein ? ? ?
08/01/2008 - Flyff - 1 Replies
Ich wollte mal Fragen wie ich neue Kontinente in Flyff einbauen kann ? ? ? ClientSide wie sich versteht Mfg jphecht



All times are GMT +1. The time now is 22:13.


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.