[VB.NET] blackmagic.dll (Offset Eingabeformat) [HILFE]

04/05/2015 00:23 xGlumanda#1
Hallo Leute,
undzwar habe ich da mal eine kurze Frage.

Ich wollte anfangen von dem Spiel TERA gewissen Daten auszulesen, also musst ich mich erstmal in die Libs einlesen etc. etc. (Und dass die ursprünglich in C# geschrieben wurde verbesserts nicht unbedingt ^^)


Nunja also ich habe jetzt also meine Funktionen fertig von der Lib, nun frage ich mich wie ich Multiple Offsets eingebe.

Falls ich das alles recht verstanden habe, habe ich doch jetzt unten die Base-Address und 5 Offsets gefunden die zusammen den Pointer für die "eigentliche" Addresse sind, oder?

Hier ist das Bild der Addresse von CheatEnginge.

BILD URL:
[Only registered and activated users can see links. Click Here To Register...]


Momentan habe ich es folgendermaßen:
Code:
Dim money As UInteger = BMagic.ReadUInt(BMagic.ReadUInt(BMagic.ReadUInt(BMagic.ReadUInt(BMagic.ReadUInt(BMagic.ReadUInt(&H18D16C + CInt("awesomium.dll" + "0018D16C")) + &H5C8) + &H6A0) + &H368) + &H5EC) + &H6B8)
Nur kommt dort als Ausgabe nur:
0

Folgender Code funktioniert auch nicht:

Code:
Dim moneyAs UInteger = BMagic.ReadUInt(BMagic.ReadUInt(BMagic.ReadUInt(BMagic.ReadUInt(BMagic.ReadUInt(BMagic.ReadUInt(&H18D16C + CInt(Base)) + &H5C8) + &H6A0) + &H368) + &H5EC) + &H6B8)
Also wird dieses Eingabeformat wohl falsch sein.


Es braucht mir keiner kommen mit "mimimi lern die Basics erstmal".

Ich programmiere schon lange genug, nur bin ich jetzt mal wieder an einem neuen Thema (Welcher ich auch erstmal lernen muss)...

Und mir macht es mehr spaß unnütze auslese Bots für Games (Die ich zurzeit spiele) zu schreiben :)

Hoffe mir kann jemand weiterhelfen.

Falls jemand noch weiteren Source, oder sonstige Infos braucht um mir helfen zu können stehe ich gerne bereit :)


MFG xGlumanda
04/05/2015 01:35 YatoDev#2
Dim money As UInteger = BMagic.ReadUInt(&H18D16C + "awesomium.dll" + &H18D16C + &H5C8 + &H6A0 + &H368 + &H5EC + &H6B8)

und für "awesomium.dll" musst du noch die base adress bekommen.

PS: Ich weis nicht ob man offsets so addiert aber das ist mal wahrscheinlicher als so wie du es gemacht hast^^
04/05/2015 01:44 tolio#3
Quote:
Originally Posted by xGlumanda View Post
Code:
CInt("awesomium.dll" + "0018D16C")
"Option Strict Off"-Hype

wenn du das behebst wirds gehen, angenommen die adressen sind richtig.

desweiteren, graymagic ist wesentlich mehr zu empfehlen, dort gibt es eine generische Read<T> funktion die jeden datentyp liest, der richtige datentyp für pointer ist IntPtr auch wenn uint auch funktioniert.
04/05/2015 16:24 Mostey#4
Quote:
Originally Posted by tolio View Post
der richtige datentyp für pointer ist IntPtr auch wenn uint auch funktioniert.
Spätestens wenn er auf 64 Bit Systemen mehr wie 4 GB RAM adressieren will, wird er merken, dass er mit uint und int nicht mehr weit kommt. :D

Achja: Wer kam hier ursprünglich mit diesen ominösen blackmagic DLLs an? Eine Adresse kann man doch sowieso mit nur einer Funktion (Marshal.ReadIntPtr) auslesen, wenn man im Zielprozess ist (oder alternativ eben die RPM Funktion aus der WinAPI importieren) - wieso also eine extra Library nutzen?
04/05/2015 20:39 xGlumanda#5
FlutterShy danke für deinen Vorschlag, leider geht es auch nicht :/

Wäre nett wenn die oberschlauen(Ohne Sinnigen Post-inhalt) hier einfach aufs X klicken, und die die das Wissen haben (Und auch helfen wollen, wofür ich dankbar bin) mir hier ein example von diesem Befehl für Multiple Offsets schreiben.

also z.b

BMagic.ReadUnicodeString(BASE + OFFSET1 + OFFSET2)

Oder wie auch immer man das format jetzt eingibt :/

Ich bedanke mich schonmal, falls sich jemand findet der dabei helfen kann :)

MFG

xGlumanda
04/06/2015 02:07 tolio#6
Quote:
Originally Posted by Mostey View Post
(oder alternativ eben die RPM Funktion aus der WinAPI importieren) - wieso also eine extra Library nutzen?
blackmagic ist afaik nur nen RPM wrapper, für einfache datentypen mag das sicher nicht viel unterschied machen, aber es gibt da, wenn ich das recht im sinn habe, auch nen paar andere sachen noch, zb string bis zum null char lesen und sowas, aber ist ja auch egal.


Quote:
Originally Posted by xGlumanda View Post
Wäre nett wenn die oberschlauen(Ohne Sinnigen Post-inhalt) hier einfach aufs X klicken, und die die das Wissen haben (Und auch helfen wollen, wofür ich dankbar bin) mir hier ein example von diesem Befehl für Multiple Offsets schreiben.
ich hab doch weiter oben schon geschrieben das dein code grundsätzlich nicht falsch aussieht, nur der von mir zitierte ausdruck muss richtig gemacht werden, wenn du nicht siehst was daran falsch ist würde das bedeuten das du den unterschied zwischen nem string und ner zahl nicht kennst und dann sehe ich schwarz.
04/06/2015 09:08 xGlumanda#7
Quote:
Originally Posted by tolio View Post
ich hab doch weiter oben schon geschrieben das dein code grundsätzlich nicht falsch aussieht, nur der von mir zitierte ausdruck muss richtig gemacht werden, wenn du nicht siehst was daran falsch ist würde das bedeuten das du den unterschied zwischen nem string und ner zahl nicht kennst und dann sehe ich schwarz.
Deswegen mein vermerk, die dessen Posts auch sinnlos sind (Bedeutet dich hat es dann nicht betroffen) falls du dich dennoch angesprochen gefühlt hast entschuldige ich mich hiermit :rolleyes:

Thread kann geclosed werden, mir wurde geholfen :)
04/06/2015 09:45 Mostey#8
Quote:
Originally Posted by tolio View Post
blackmagic ist afaik nur nen RPM wrapper, für einfache datentypen mag das sicher nicht viel unterschied machen, aber es gibt da, wenn ich das recht im sinn habe, auch nen paar andere sachen noch, zb string bis zum null char lesen und sowas, aber ist ja auch egal.
Über die Library findet man ja auch nicht viel, lediglich Tutorials die sich darauf beziehen. Ich kann mich nur erinnern, dass ständig irgendwelche Leute Probleme damit hatten weil nicht darauf geachtet wurde, dass Pointer auf 64 Bit Systemen 8 Byte groß sind und solche Sachen.


Quote:
Originally Posted by xGlumanda View Post
Deswegen mein vermerk, die dessen Posts auch sinnlos sind (Bedeutet dich hat es dann nicht betroffen) falls du dich dennoch angesprochen gefühlt hast entschuldige ich mich hiermit :rolleyes:
Welcher Post ist sinnlos? Meiner? Weil ich selbst eine Frage gestellt habe, die in Bezug zu deiner Library steht?

Für jemanden der in einem Forum kostenlose Hilfe erwartet, wirkst du doch recht unfreundlich.