notes/school/os-sec/uebung/02/02_1.md
Valentin Brandl d5d225e53f
All checks were successful
the build was successful
Add ossec solution
2018-11-12 14:40:59 +01:00

1.3 KiB

Aufgabe 1

    • Fragment 1: fastcall, da die parameter durch die register eax, edx und ecx übergeben werden, return value in eax
    • Fragment 2: cdecl, da die parameter in right-to-left order auf dem stack liegen, return value in eax, kein stack cleanup
    • Fragment 3: stdcall, parameter in right-to-left order auf dem stack, return value in eax, callee cleanup
    • Fragment 1: EAX = a, edx = b, ecx = c

Annahme: Angabe der Parameterreihenfolge nach dem call, also im neuen stackframe * Fragment 2: ebp+0x8 = a, ebp+0x0c = b, ebp+0x10 = c * Fragment 3: ebp+0x8 = a, ebp+0x0c = b, ebp+0x10 = c

Annahme: Angabe der Parameterreihenfolge vor dem call, also im alten stackframe * Fragment 2: esp = a, esp+0x4 = b, esp+0x8 = c * Fragment 3: esp = a, esp+0x4 = b, esp+0x8 = c

    • Fragment 1: Caller cleanup bzw da nur 3 Parameter verwendet werden, kein stack cleanup nötig, da alle parameter über register übergeben werden
    • Fragment 2: Caller cleanup
    • Fragment 3: Callee cleanup
  1. Fragment 1:

    MOV eax, 3
    MOV edx, 2
    MOV ecx, 1
    CALL f
    

    Fragement 2:

    PUSH 1
    PUSH 2
    PUSH 3
    CALL f
    ADD ESP, 12
    

    Fragment 3:

    PUSH 1
    PUSH 2
    PUSH 3
    CALL f