Skip to content

ZeroLP/RIPGhoster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RIPGhoster

Ghosts(spoofs) a x86 return address.

This demonstrates how a return address can be ghosted/spoofed in x86 when a function checks whether the return address resides with-in the function's module address space. It firstly allocates bytes at the near-end of the module address space(0x1000 bytes away from the end), NOPs out the instructions for our caller stub function instructions to be written over, and then it writes the instructions of the caller stub function. It then allocates a JMPTable somewhere in the memory allocated by the CLR/CoreCLR that is GC fixed and jmp/calls into our caller stub function allocated earlier to call the original function.

For a simpler execution tree view: Call CallFoo(int a1) -> JMPTable(push eax, ret) -> CallFoo(int a1) -> Foo(a1)

Execution in scene

About

Ghosts(spoofs) an x86 return address.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published