A computing device configured for shadow stack management, the computing device comprising: a binary translation module configured to execute a translated call routine of a translated binary, wherein the translated call routine corresponds to a native call instruction of a native binary; a call module configured to: push a native return address onto a native stack of the computing device in response to execution of the translated call routine; add a constant offset to a stack pointer of the computing device in response to pushing of the native return address onto the native stack; execute a native call instruction to a translated call target in response to addition of the constant offset to the stack pointer, the translated call target corresponds to a native call target of the native call instruction; subtract the constant offset from the stack pointer in response to execution of the native call instruction; and a return module configured to: pop the native return address from the native stack of the computing device in response to subtraction of the constant offset from the stack pointer; add the constant offset to the stack pointer in response to popping of the native return address from the native stack; execute a native return instruction in response to addition of the constant offset to the stack pointer in response to the popping of the native return address from the native stack; and subtract the constant offset from the stack pointer in response to execution of the native return instruction; a memory management module configured to map a plurality of virtual memory pages of the shadow stack onto a first physical memory page; and a processor configured to push a translated return address onto a shadow stack of the computing device in response to execution of the native call instruction, and to pop the translated return address from the shadow stack in response to execution of the native return instruction, wherein the constant offset represents an associated distance in memory between the native stack and the shadow stack; and wherein the return module is further configured to validate the translated return address in response to execution of the native return instruction. a binary translation module configured to execute a translated call routine of a translated binary, wherein the translated call routine corresponds to a native call instruction of a native binary; a call module configured to: push a native return address onto a native stack of the computing device in response to execution of the translated call routine; add a constant offset to a stack pointer of the computing device in response to pushing of the native return address onto the native stack; execute a native call instruction to a translated call target in response to addition of the constant offset to the stack pointer, the translated call target corresponds to a native call target of the native call instruction; subtract the constant offset from the stack pointer in response to execution of the native call instruction; and push a native return address onto a native stack of the computing device in response to execution of the translated call routine; add a constant offset to a stack pointer of the computing device in response to pushing of the native return address onto the native stack; execute a native call instruction to a translated call target in response to addition of the constant offset to the stack pointer, the translated call target corresponds to a native call target of the native call instruction; subtract the constant offset from the stack pointer in response to execution of the native call instruction; and a return module configured to: pop the native return address from the native stack of the computing device in response to subtraction of the constant offset from the stack pointer; add the constant offset to the stack pointer in response to popping of the native return address from the native stack; execute a native return instruction in response to addition of the constant offset to the stack pointer in response to the popping of the native return address from the native stack; and subtract the constant offset from the stack pointer in response to execution of the native return instruction; pop the native return address from the native stack of the computing device in response to subtraction of the constant offset from the stack pointer; add the constant offset to the stack pointer in response to popping of the native return address from the native stack; execute a native return instruction in response to addition of the constant offset to the stack pointer in response to the popping of the native return address from the native stack; and subtract the constant offset from the stack pointer in response to execution of the native return instruction; a memory management module configured to map a plurality of virtual memory pages of the shadow stack onto a first physical memory page; and a processor configured to push a translated return address onto a shadow stack of the computing device in response to execution of the native call instruction, and to pop the translated return address from the shadow stack in response to execution of the native return instruction, wherein the constant offset represents an associated distance in memory between the native stack and the shadow stack; and wherein the return module is further configured to validate the translated return address in response to execution of the native return instruction.