Frage zum Auslesen von Bildschirminhalten



  • JanUlrich:
    Hattest du einen konkreten Grund, deine Frage im Assembler-Forum zu stellen? So weit sehe ich keinen Zusammenhang mit Assembler, ausser vielleicht dem weit verbreiteten Irrglauben auch nur leicht speziellere Hardware-I/O-Operationen seien nur via Assembler moeglich.

    Falls das oder Aehnliches zutrifft, ist dein Thema im Spiele-/Grafikprogrammierung-Forum sicher besser aufgehoben.



  • Nein ich wollte eigentlich nur ASM lernen (zwecks reversing ; was, wie ich gehört habe nur mit ASM kentnissen funktionieren soll) und das geht am besten mit praktischer Anwendung. Deshalb dachte ich, wenn ich schon etwas in ASM proggen will dann auch etwas das bei mir Verwendung findet und deswegen wollte ich eine abgewandelte Version der ImageSearch.dll machen (was in C genauso gehen würde ich aber Assembler lernen will). xD



  • vorsicht masm ist ein makro assembler, daher wäre es fürs reversen fast günstiger sich danach noch decompilierten c code anzuschauen



  • Naja, es wird reichen, wenn du ein Gefuehl fuer Assembler hast und die Grundlagen kennst. Dann waere es sicher hilfreich, wenn du viel mit Debuggern arbeitest. Z.B. an von dir erstellten Asm-Programmen, aber auch an anderen Programmen.

    MASM mag zur produktiven Arbeit vielleicht nett sein, da MASM-Code aber auch gern mal wie Hochsprachencode aussieht, ist dieser Assembler zum Einstieg vielleicht tendenziell weniger geeignet.



  • Jo ich schau mir ja auch oft den Code mit OllyDbg an oder löse CrackMe s.

    Trotzdem will ich etwas mit MASM programmieren.



  • JanUlrich schrieb:

    Ein kleiner Tip für so etwas wäre nett.

    http://www.asmcommunity.net/board/index.php?topic=28368.msg200778#msg200778



  • JanUlrich schrieb:

    Dazu hab ich noch eine weitere Frage. Wie macht ihr es denn wenn ihr einen Integer wert als Dezimalzahl in einer MsgBox ausgeben wollt.
    Also wenn ich in einer Variable den Wert A03h gespeicher habe will ich ne Funktion schreiben die dann eine MSGBox Mit dem inhalt : "2563" erstellt. Ein kleiner Tip für so etwas wäre nett.

    MFG JanUlrich

    Aber auch nur ein kleiner Tip 😉 :
    wenn man den Hexwert in AX mit dem Befehl Div durch eine Zahl dividiert, dann landet der Rest in Dx.
    Aber: DX muss vor jeder Division initialisiert werden (=0).



  • Nobuo T schrieb:

    MASM mag zur produktiven Arbeit vielleicht nett sein, da MASM-Code aber auch gern mal wie Hochsprachencode aussieht, ist dieser Assembler zum Einstieg vielleicht tendenziell weniger geeignet.

    man muss es einfach lieben 😃

    include masm32rt.inc
    .data?
    	sz db 256 dup (?)
    .code
    start: 
    fn MessageBox,0,cat$(ADDR sz,"RGB: 0x",hex$(rv(GetPixel,rv(GetDC,0),300,300))),"Titel", MB_OK   
    invoke ExitProcess,0 
    end start
    


  • Ich schmeiss mich weg! Das nenne ich ein gelungenes Beispiel! Damit haette sich das Thema ja dann wohl erledigt. 👍 😃



  • wieso heißt es hier "fn" und nicht "invoke" 😕



  • no_code schrieb:

    wieso heißt es hier "fn" und nicht "invoke" 😕

    fn ist ein macro, genau wie rv,cat$ und hex$.


Anmelden zum Antworten