이제 Wolfman을 잡으러 갑시다!

 

이런 코드네요.

 

일단 이전 문제처럼 환경변수를 사용할 수는 없고

buffer 영역 또한 사용할 수 없다고하네요?

 

근데 이렇게 되면 이전 문제에서 사용한 방법이랑 똑같이 사용해도 될 것 같습니다.

이전 문제에서도 buffer 영역을 사용하지 않고 ret 다음 영역을 사용했기 때문이죠.

물론 댓글에 buffer에도 집어넣을 수 있다고는 말해놨지만, 그게 이전 문제의 의도였나 보네요..ㅎ

 

아무튼 똑같은 방식으로 해결해보겠습니다.

 

더미는 없습니다.(buffer[40] +int[4])

 

A 44개 + \xbf 4개 + C 100개를 넣어봤습니다.

잘 들어가는군요

0xbffffb04

대충 이 주소를 ret에 넣어서 작성해봅시다.

 

넣어서 작성했더니 illegal instruction이 나오네요.

그래서 nop 개수를 바꿨더니 segmentation fault가 나오고... 짜증납니다.

 

그래서 다시 찾아줬습니다.

 

이젠 잘 되네요... 아깐 뭐가 문제였는지...

찾아보니까 gdb로 디버깅하면 어딘가에 한번 복사되어 들어가기 때문에 동적으로 돌아가는 실제 프로세스의 주소와 차이가 있다고 합니다. 아마도 이 문제가 아니었을지 생각해봅니다.

뭐 다시해서 성공했으니까 잘못 푼건 아니겠죠? ㅎㅎ

 

여기까지 포스팅하겠습니다!

+ Recent posts