1.setcontext是什么?
如上所示的代码段,从setcontext+53开始,这段汇编可用来实现对寄存器的赋值操作,但要控制好rdi与rcx。
-
rdi用来确定从什么地方取值赋给寄存器。
-
rcx先push再ret,实际上是对rip的控制,这里要确保rcx指向内存可读,不然会报错。
2.利用:
利用pwntools带的SigreturnFrame(),可以方便的构造出setcontext执行时对应的调用区域,实现对寄存器的控制,从而实现函数调用或orw调用。
1.setcontext是什么?
如上所示的代码段,从setcontext+53开始,这段汇编可用来实现对寄存器的赋值操作,但要控制好rdi与rcx。
rdi用来确定从什么地方取值赋给寄存器。
rcx先push再ret,实际上是对rip的控制,这里要确保rcx指向内存可读,不然会报错。
2.利用:
利用pwntools带的SigreturnFrame(),可以方便的构造出setcontext执行时对应的调用区域,实现对寄存器的控制,从而实现函数调用或orw调用。