[Frage] Wie finde ich einen Mob?

08/31/2010 18:31 ZEAR#16
@Shadow992

Nein nein ich hab mich wohl blöd ausgedrückt.
Natürlich weiß ich das es Mehrere Level gibt.

Nur sagen wir mal ich hab die Adresse von meiner x Koordinate gefunden.
Nun gehe in CE auf "find out what acces to this address"
Dann wähle ich eine eintrag dort aus und klicke auf "More information"
Notiere mir den HEX wert und z.b. [ebx+00000314]
Suche nach den HEX wert und bum hab ich mal locker 18 Adressen. Denk ich mir nun gut passiert halt und adde alle als jeweils einen Pointer und natürlich mit dem offset was ich mir notiert hab.
dann wähle ich einen der Pointer aus und beginne ich wieder von Anfang an und erhalte wieder mehrere Addressen.

Ergo hab ich am ende mehrere Base Pointer und mit glück überleben alle den Neustart des Spiels.
(Hab natürlich nnoch nie alle Adressen ausprobiert sind zu viele Kombinationen)
Das ist alles etwas mehrkwürdig und dieses problem hatte ich bis jetzt auch noch nie.
Das ist mein Problem.

Ich hoffe ich habs etwas besser erkährt.

greetz ZEAR
08/31/2010 18:50 Shadow992#17
Quote:
Originally Posted by ZEAR View Post
@Shadow992

Nein nein ich hab mich wohl blöd ausgedrückt.
Natürlich weiß ich das es Mehrere Level gibt.

Nur sagen wir mal ich hab die Adresse von meiner x Koordinate gefunden.
Nun gehe in CE auf "find out what acces to this address"
Dann wähle ich eine eintrag dort aus und klicke auf "More information"
Notiere mir den HEX wert und z.b. [ebx+00000314]
Suche nach den HEX wert und bum hab ich mal locker 18 Adressen. Denk ich mir nun gut passiert halt und adde alle als jeweils einen Pointer und natürlich mit dem offset was ich mir notiert hab.
dann wähle ich einen der Pointer aus und beginne ich wieder von Anfang an und erhalte wieder mehrere Addressen.

Ergo hab ich am ende mehrere Base Pointer und mit glück überleben alle den Neustart des Spiels.
(Hab natürlich nnoch nie alle Adressen ausprobiert sind zu viele Kombinationen)
Das ist alles etwas mehrkwürdig und dieses problem hatte ich bis jetzt auch noch nie.
Das ist mein Problem.

Ich hoffe ich habs etwas besser erkährt.

greetz ZEAR
Na dann hast du halt 18 Pointer, die auf diese Adresse zeigen.
Du brauchst doch nur einen, also ist es doch egal welche du nimmst.
Nimm doch einfach den Ersten und mach da weiter, einer reicht doch.
Du brauchst doch keine 100.
08/31/2010 18:58 ZEAR#18
Das ist natürlich richtig aber es ist mir schon vorgekommen das einer dieser Pointer ungültig wurde...

Ich teste es grad nochmal nicht das ich einen Fehler gemacht hab.

greetz ZEAR
09/01/2010 05:19 ZEAR#19
So endlich von der Arbeit...
Danke erstmal für die bisherigen Tips, etc

Habs wohl endlich geschaft die Base Pointer auf zumindest 9-10 zu reduzieren aber CE spinnt bei mir grad, deshalb kann ich nur noch mit den PointerScan arbeiten sonst bekomm ich nen crash von CE auch unter vm und 32bit.
Naja egal anderes Thema.

Nunja Hab zwar die Adressen von meiner Position zumindesten x und y aber kann damit eigentlich nix anfangen, denn:

PositionIm Spiel2Bytes4Bytes8BytesFloatDouble
x6949033392881686795-6357987896686605045-1,38592034983759E-12-3,94361062446917E-117
y691764548332864792754818857819390587307-455,388031005859140931804110221

Sind die Daten verschlüsselt oder steckt da ne refinierte Formel dahinter?
Hab mal die Zahlen hin und her geworfen aber zu keinen ergebins gekommen.
Vieleicht kann einer von euch da was machen oder mir nen Denkanstoß geben?

Ich versuch jetzt erstmal die Tips von Atheuz mal schaun was ich dann für wert bekomme :p

greetz ZEAR
09/01/2010 07:02 HardCore.1337#20
Dürften meiner Meinung nach nicht verschlüsselt sein.
Die Map besteht ja aus Coords, und die Position verrät dir nun wo du dich grade befindest. Die Zahlen scheinen mir gerade bei 2Byte und 4Byte realistisch.
09/03/2010 15:16 SandMann016#21
AutoIt kannst du packetbots vergessen ab vb.net kannst du es nehmen einen mob anzuwiesieren ist eigentlich einfach hier mal ne funktion in metin2 um mob zu finden :



PHP Code:
    Public Function GetX() As String
        ReadSingle
(processHandleGetAdd(161412), value4Nothing)
        Return 
value
    End 
Function
    Public Function 
GetY() As String
        ReadSingle
(processHandleGetAdd(161416), value4Nothing)
        Return 
value
    End 
Function
    Public Function 
GetZ() As String
        ReadSingle
(processHandleGetAdd(161420), value4Nothing)
        Return 
value
    End 
Function

Public 
XyzLock() As Byte = {&HA1, &H44, &H1, &H60, &H0, &H89, &H86, &HA8, &H3, &H0, &H0, &H8B, &HD, &H4A, &H1, &H60, &H0, &H89, &H8E, &HAC, &H3, &H0, &H0, &H8B, &H15, &H53, &H1, &H60, &H0, &H89, &H96, &HB0, &H3, &H0, &H0, &H5F, &HE9, &HD9, &H3C, &HEA, &HFF, &H90'byte moblock
  '
um sie alle auf ein haufen zu setzten^^ 
viel erfolg aber dazu musst du erstmal die richtigen pointer finden (für mich wars nich schwer :P)
09/03/2010 15:50 lolkop#22
Quote:
Originally Posted by ZEAR View Post
Ergo hab ich am ende mehrere Base Pointer und mit glück überleben alle den Neustart des Spiels.
(Hab natürlich nnoch nie alle Adressen ausprobiert sind zu viele Kombinationen)
dir ist schon klar das ein basepointer eine adresse ist die vom client selbst aufgerufen wird?
das ganze hat nichts mit glück zu tun....
wenn man einen breakpoint auf eine basisadresse legt wird man sofort viele breaks erhalten. und in jedem break wird die basisadresse selbst in ein register kopiert.
das ist doch genau das worann man eine basisadresse erkennt. Solange du diesen punkt nicht erreicht hast musst du weiter nach pointern mit den dazugehörigen offsets suchen.
09/04/2010 04:11 ZEAR#23
Danke euch für die Antworten.

@SandMann016
Ich hab mal ein paar Packete gesnifft und ein Packet zu analysieren bin da nicht weit gekommen (hab null herausgefunden :P).
Muss dafür warscheinlich noch ein bisgen mehr lesen.
Hab mich entschieden es über den Speicher zu versuchen, aber danke.

@lolkop
Quote:
dir ist schon klar das ein basepointer eine adresse ist die vom client selbst aufgerufen wird?
das ganze hat nichts mit glück zu tun....
Ja natürlich ist mir das klar, ich bin mir auch sicher das ich am Ende keine weitere Adresse hatte, aber ich kann das ganze Momentan nicht reproduzieren da CE abstürtz sobalt ich den Debugger öffnen will.

Ich hab im Moment aber auch wenig Zeit und die Zeit die ich für den Bot investiere versuche ich erstmal herauszufinden wie ich aus den Werten im Speicher auf die Werte im Spiel komme, sonst sonst kann ich damit ja relativ wenig anfangen.


greetz Trice
09/04/2010 10:15 XxFratziXx#24
@all
ich weis dass das nicht weiterhilft aber:
lernt doch eine gescheide programmiersprache...
autoit vllt. zum anfang aber dann lernt c#, c++, javascript, usw...

denn bei autoit sind oft viren dabei (immer) macht virenscan...
und immer findet ihr virusse....
bei c#, c++ und co passiert das nicht...

und die sprachen können mehrl...
und aller einstieg ist schwer nur lernt mal was gutes!
09/04/2010 10:20 SandMann016#25
von c# würde ich abraten^^ billige kopie von Java
dehalb nimm gleich C/C++ ist einfach ma der hammer^^
09/04/2010 10:52 Shadow992#26
Quote:
Originally Posted by WORLD-KILLER View Post
@all
ich weis dass das nicht weiterhilft aber:
lernt doch eine gescheide programmiersprache...
autoit vllt. zum anfang aber dann lernt c#, c++, javascript, usw...
Javascript?
Javascript ist auch eine Skriptsprache genauso wie Autoit, außerdem bietet Javascript viel weniger Möglichkeiten als AutoIt.


Quote:
Originally Posted by WORLD-KILLER View Post
denn bei autoit sind oft viren dabei (immer) macht virenscan...
und immer findet ihr virusse....
bei c#, c++ und co passiert das nicht...
1. Bei AutoIt sind nie Viren dabei, da AutoIt eine Skriptsprache ist...
Man kann zwar mit AutoIt Viren machen, aber AutoIt an sich hat keinerlei Viren.

2. In AutoIt-Programmen sind sogar im Vergleich zu den anderen Sprachen relativ wenig Dateien verseucht (weil die Leute meistens wissen, dass AutoIt decompilierbar ist und dann sind die Dateien sehr selten lange im Umlauf). C++/C ist nicht decompilierbar und deswegen sind die Viren so lange im Umlauf bis ein Virenscanner oder ein Benutzer sie findet (und das kann verdammt lange dauern)

Quote:
Originally Posted by WORLD-KILLER View Post
und die sprachen können mehrl...
und aller einstieg ist schwer nur lernt mal was gutes!
Wie bereits gesagt Javascript kann sogar weniger als AutoIt.
Außerdem kannst du die Sprachen nur schlecht miteinander vergleichen, da einfach jede Sprache für etwas anderes entwickelt wurde.

Du kannst auch nicht sagen : "Ein Küchenmesser kann mehr als ein Wagenheber". Man kann und darf es einfach nicht auf diese Art und Weise Vergleichen.


Quote:
Originally Posted by SandMann016 View Post
von c# würde ich abraten^^ billige kopie von Java
dehalb nimm gleich C/C++ ist einfach ma der hammer^^
C# ist keine billige Kopie von Java.
Java und C# sind beide eigene Sprachen.
Empfehlen kann ich C# deswegen trotzdem nicht, ist einfach nicht meins. ;)
09/04/2010 14:59 XxFratziXx#27
java ist aber mehrfach einsetzbar und leuft auf allen systemen aber es ist bekannt...
und autoit ist eher für noobs was (sorry ^^)

€dit:

ja c# ist eine wissenschaft für sich, kann aber gleichviel wie c++ und co...
microsoft (entwickler von c#) hat mehrere sprachen vereint...

c++, java im hauptteil... allerdings wurden kleine teile von anderen sprachen miteingewickelt....

man kann sagen c# ist eine erweiterung von c++ :D

€dit²:

dann mach mal einen virustotaltest mit einem autoit progamm...
3/42 mindestens^^

habs mit hallo welt probiert
auch virusalarm
09/04/2010 15:14 Shadow992#28
Quote:
Originally Posted by WORLD-KILLER View Post
java ist aber mehrfach einsetzbar und leuft auf allen systemen aber es ist bekannt...
und autoit ist eher für noobs was (sorry ^^)

€dit:

ja c# ist eine wissenschaft für sich, kann aber gleichviel wie c++ und co...
microsoft (entwickler von c#) hat mehrere sprachen vereint...

c++, java im hauptteil... allerdings wurden kleine teile von anderen sprachen miteingewickelt....

man kann sagen c# ist eine erweiterung von c++ :D

€dit²:

dann mach mal einen virustotaltest mit einem autoit progamm...
3/42 mindestens^^

habs mit hallo welt probiert
auch virusalarm
Da du entweder zu faul bist alles durchzulesen und auch noch zu verstehen oder du einfach keine Ahnung hast von was du redest, scheinen mir weitere Diskussionen unnütz.

P.S.
Probier bei Autoit doch einfach mal ohne UPX zu packen, dann haste auch keine vermeindliche Viren drinnen. Außerdem wenn dein Virensystem bei gepackten Programmen einen Virus anzeigt, hast du ein verdammt Schlechtes.
09/04/2010 15:20 XxFratziXx#29
avira soll schlecht sein? erzähl das dem richter
09/04/2010 19:01 lolkop#30
ich glaub du hast keine ahnung wie virenprogramme funktionieren.

wirklich gut programmierte viren werden von den meisten virenprogrammen sowieso nicht erkannt und bei mehr als 50% aller harmlosen tools springen trotzdem bis zu 20 antivirentools an.

das liegt darann das nur nach bekannten sachen gescannt wird. so gibts es zb viele antiviren tools die allein das nicht vorhanden sein eines guis als gefährdung einstufen....

wer sich heutezutage noch auf antiviren verlässt ist wohl selbst schuld.