NASM Fehlinterpretation

  • Sonstige

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von rwCapt.

    NASM Fehlinterpretation

    Guten Tag zusammen,

    mir ist beim Arbeiten mit NASM etwas komisches aufgefallen. Ich schreibe da gerade ein Programm in Assembler, allerdings ist diese "Assembler-Datei" vollständig, bedarf also keiner Verlinkung, sondern lediglich die Übersetzung in ihre Zahlencodes.
    Bislang klappte das auch ohne Probleme. Ich mache mir, gerade in der Resource-Section der EXE, die Strukturen (istruc) zunutze. Ich habe einmal zwei Bilder für euch:

    Der Code in der *.asm-Datei zum übersetzen:



    Der Output, übersetzt durch NASM mit "nasm -f bin file.asm -o file.exe":


    Zur Orientierung habe ich mal das "Seite einrichten" jeweils mit ins Bild genommen. Der NASM interpretiert scheinbar mein "D", "l", "g", 0 samt der Struktur darüber als ein und dasselbe und macht daraus "MS Shell Dlg" (natürlich als wide-string). Kann es sein, dass hinter der Übersetzung eine AI arbeitet, die nach speziellen Ausdrücken Ausschau hält? Anders kann ich mir das nicht erklären.

    Weiß jemand, ob man sowas ausschalten kann? Ich möchte da ja das stehen haben, was nötig ist, um die Ressource zum Laufen zu kriegen.

    Ich danke vorab für die Antworten. ;)
    Oje, beim Duschen kommen mir die besten Ideen, wie jetzt eben auch.


    Da ist nichts "magisch" dran, sondern das muss so. MS Shell Dlg ergibt sich aus den Bytes der Struktur und des Labels "ItemClass1".
    Thema ist also erledigt. Ghidra interpretiert daraus leider nur was, wenn die Struktur vorher in Visual Studio erstellt und dann zusammen mit anderem Code kompiliert wurde. Wobei das wahrscheinlich an den pdb-Daten liegt, die bei meiner Assembler-Datei ja nicht dabei ist.