Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
en:it-security:64_bit_stack_cheatsheet [2024/08/26 23:07] – removed psycore | en:it-security:64_bit_stack_cheatsheet [2024/08/26 23:09] (current) – created psycore | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | {{tag> | ||
+ | ====== 64-Bit Stack CheatSheet ====== | ||
+ | |||
+ | {{page> | ||
+ | |||
+ | ==== x64 Register ==== | ||
+ | |||
+ | The x64 register is structured as follows ((https:// | ||
+ | |||
+ | ^ 8 bytes (64 bits) ^ 4 bytes (32 bits) ^ 2 bytes (16 bits) ^ 1 byte (8 bits) ^ Designation ^ Application ^ | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | | @lightgreen: | ||
+ | |... | ... | ... | | |... | | ||
+ | | @lightgreen: | ||
+ | |||
+ | === Calling conventions === | ||
+ | |||
+ | A function (caller) calls a sub-function (callee). The registers RBP, RBX, R12 to R15 belong to the caller. If the callee wants to change them, it must save them on the stack with <code asm> | ||
+ | |||
+ | More on this can be found in the Cheat-Sheet((https:// |