본문 바로가기

꿀팁!

return to csu 잘되어있는 곳

http://st4nw.tistory.com/101


libc_csu_init 부분을 이용하는 기술로

 위의 블로그에서 써져있는 것처럼 gadget1 부분에서 r15, r14, r13에 1, 2, 3번째 인자를 넣고 , r12에는 함수의 주소를, rbx에는 0을 넣어주면(gadget1부분과 gadget2부분 사이에 cmp부분이 걸리므로 [rbp를 rbx에 넣은값+1]로 설정해줘야 한다.)

gadget2에서 mov으로 레지스터가 세팅되고 call (r12 + rbx * 8)->rbx를 0으로 넣어줬으니 r12의 함수가 호출 된다.