Self-modifying code unter Windows



  • Hi,
    ich hab das Problem das der folgende Code mein Programm zum abstürzen bringt

    cmp esi, eax
    sprung:
    jbe Ende
    mov edi, offset sprung
    mov byte ptr [edi], 7Dh
    

    das jbe soll überschrieben werden, doch sobald ich die letzte Zeile Code ausführe, stürzt es ab. Der Code ist soweit glaub ich richtig. Kennt ihr nen Lösungsweg, sodass ich im Codesegment schreiben kann?



  • Unter MSVC:

    #pragma section( ".modi" , read, write, execute )
    #pragma code_seg(".modi")
    
    int main()
    {
        __asm
        {
            cmp esi, eax
            sprung:
            jbe Ende
            mov edi, offset sprung
            mov byte ptr [edi], 7Dh
        }
    }
    

Log in to reply