Profifrage: 64 bit Pointer auslesen, aber wie ?

  • hey leute, ich habe eine frage. z.Z. nutze ich die nomadmemory.au3 um 4 byte pointer auszulesen.
    wenn ich jetzt eine 64 bit applikation habe, ist der pointer ja 8 bytes lang (long long int), d.h. ich komme mit der nomadmemory UDF wohl nicht wirklich weiter(?), da die user32 anspricht, oder ? zuerst hab ich gedacht ich lese einfach 8 byte aus, drehe selbige um und habe den pointer. allerdings kann ich ja unter umständen gar nicht die adresse des pointers ansprechen mit einem 32 bit programm, oder doch ? was passiert denn wenn ich z.B. die adresse eines 64 bit programms anspreche, wenn der pointer z.B. auf 0x0044444444444444 zeigt und ich von dort aus irgendwas auslesen möchte ? - ich hoffe ihr versteht mein problem ? evtl. denke ich mir auch was falsches zurecht???!!! wer kann helfen ? danke schon mal im voraus!

    3 Mal editiert, zuletzt von WhiteLion (15. Mai 2011 um 18:12)

  • ich kann dir kein beispiel geben, wenn ich keine keine funktion habe die 64bit pointern läuft (deshalb frag ich ja danach).
    du kannst jedes x-beliebige auslesen mit der nomadmemory udf als beispiel nehmen was du finden kannst.
    es geht nichts ums manipulieren, sondern ums auslesen von 8 bit pointern. ich behaupte mal, das jemand der sich damit beschäftigt weiss was ich gemeint habt. (nicht böse gemeint).

  • Wo willst du denn was auslesen?!

    Seine Anspielung bezog sich auf das manipulieren von Spielen...
    Ich kenne die "Pointer-Gesucht-Fragen" nur von Menschen, die sowas machen.
    Also soll das kein Vorurteil sein !!

    Man muss eben immer vorsichtig sein.

  • ich kann dir kein beispiel geben, wenn ich keine keine funktion habe die 64bit pointern läuft (deshalb frag ich ja danach).
    du kannst jedes x-beliebige auslesen mit der nomadmemory udf als beispiel nehmen was du finden kannst.
    es geht nichts ums manipulieren, sondern ums auslesen von 8 bit pointern. ich behaupte mal, das jemand der sich damit beschäftigt weiss was ich gemeint habt. (nicht böse gemeint).

    Ich behaupte mal das ich um lengen mehr erfahrung und wissen darin habe als du.
    Kannst dich ja mal bei der ESL erkundigen.
    Um welches Programm gehts den überhaupt?


  • Aber wenn er es für Spiele benutzt, braucht er doch kein 64-bit. Alle Spiele für 64 bit gibt es auch in 32 bit versionen.

    Ja klar.
    Ich kann wohl schlecht seine Gedanken lesen, warum er gerade 64-Bit nehmen sollte...

  • da ich immer relativ große projekte realisiere, würde ich gerne meine möglichkeiten kennen, da ich meine zeit nicht umsonst in diese projekte investieren möchte. (nämlich das ganze mit autoit zu realisieren.)
    im genauen fall geht es um ein tool was für beliebige programme konfigurierbar und somit flexibel gehalten werden soll. es soll in zukunft seine daten per ini einlesen. in der ini stehen dann infos hier eine beispiel:

    das tool ist 70% fertig und bevor ich noch mehr mühe / zeit reinstecke, brauche ich halt einfach die oben angefragte information wie ich mit 8 byte pointern umgehen kann. könnt ihr also helfen oder geht es nur ums abklopfen ob ich ein badboy bin ??

    ich sammle daten aus dem speicher, an die ich leider nicht anders als über diesen umweg rankomme. um genau zu sein sind es so viele, dass ich extra dieses tool scheiben muss..... ich arbeite für ein großes finanzdienstleistungsunternehmen ... wie auch immer ... irgendwie muss man sich hier immer rechtferigen, wenns um speicherkrams geht. ich hoffe es kann mal jemand helfen.

  • probiers einfach aus lad dir die cheat engine und schau dirs genauer an

  • ah rumprobieren?
    Ich befürte du weißt nichtmal was und wo du auslesen willst=`?
    von da her kommt es mir rigenwie so vor als ob du gar keine hilfe willst!

  • Matthias_199 welchen teil hast du nicht verstanden!?
    nochmal: ich möchte wissen unter welchen voraussetzungen ich 8 byte pointer auslesen/adressieren kann!
    muß ich statt DllOpen('kernel32.dll')] dann DllOpen('kernel64.dll')] nehmen ?
    ich hab leider kein Win64
    im 32 bit bereich kannst du keine 8 byte pointer adressieren, wenn du gar nicht weisst was das problem ist, dann hast du wohl einfach keine ahnung vor der speicher adressierung ..etc.
    @PokerFace 
    der ist ein freund, den ich um das crossposting gebeten habe, da keiner helfen kann. aber wie du siehst bekommt der auch keine antwort!


    EDIT: also der kernel heißt bei allen win varianten kernel32.dll ... und wird in abhänigkeit der kompilierung in 64bit oder 32bit form genutzt.
    würde theoretisch heißen, dann man das auslesen des pointers per long long int / 8 byte erreicht + 64bit kompilierung.
    ich schreibs für alles die es zukünftig brauchen hier runter, wenn ich es getestet habe.

    Einmal editiert, zuletzt von WhiteLion (16. Mai 2011 um 12:08)

  • @Matthias_199 lass deine Kinderreien bei dir !
    WhiteLion, ich verstehe nicht wieso du unter 64 bit etwas auslesen willst wenn du es nur unter 32 Bit testen kannst, und damit doch die 32 Bit Variante reicht ?

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • @Matthias es fast schon süß das gerade sowas von dir kommt!
    WhiteLion
    Mir ist dein problem schon klar das unter 64 bit eine adresse nicht 4Byte sondern 8Byte groß ist
    Desweiteren wießt du nicht oder weiß ich nicht ob in der Kernel64.dll wirklich die funcs sind! bzw die dll calls
    bzw obs eine Kernel64.dll gibt, hab ich nie nachgeschaut!
    Um noch weiter zu gehen wie willst du teste ausführen.
    Jedoch fällt mir absolut nicht ein wo ich 8byte adressen habe...
    Finde ich nichtmal im IE 64bit welche also 8 byte adressen wenn ich das mal überfliege.
    Und das du nicht testen willst spricht bänder für sich dan lass es halt das wird mir hier zu blöd

    Einmal editiert, zuletzt von Matthias_199 (16. Mai 2011 um 14:40)

  • ich will schon testen, aber nicht ohne etwas grundwissen (was ich mir von dem thread versprach). so ohne alles einfach mal drauflos testen ist nicht mein ding, ich möchte wissen was ich tue und wenn das tool fertig ist, was zumindest in der theorie so programmiert ist, dass es 64 bit adressieren kann, dann installiere ich mir auch win64 und probiere um fehler zu bereinigen.

  • Ich versteh dein Problem nicht.
    Ich hatte noch nie Probleme mit x64 Anwendungen und deren Pointer 8|


    hast du denn schon mal einen pointer von 64bit anwendungen ausgelesen, also wirklich einen 8 byte langen pointer ?
    wenn ja, würde mich interessieren: 1. welches war die 64bit anwendung? 2. hast du ein codebeispiel mit dem du das bewerkstelligt hast ?