[pwnable.kr] - memcpy

해킹대회 문제 풀이 연습장소

Moderator: amesianx

Post Reply
KSH
Posts: 24
Joined: Thu Jul 21, 2016 5:39 pm

[pwnable.kr] - memcpy

Post by KSH » Sat Oct 22, 2016 10:24 pm

1.소스코드
1.png
1.png (292.48 KiB) Viewed 505 times
slow_memcpy함수는 memcpy함수와 비슷하게 값을 복사해 줍니다.
2.png
2.png (359 KiB) Viewed 505 times
fast_memcpy함수에서는 movadq와 movntps로 데이터의 값을 복사해줍니다.
movadq와 movntps는 16byte씩 연산한다고 합니다.
3.png
3.png (328.17 KiB) Viewed 505 times
문제에 대한 설명입니다.
4.png
4.png (251.75 KiB) Viewed 505 times
변수를 할당하는 부분입니다.
5.png
5.png (309.08 KiB) Viewed 505 times
e를 4부터 13까지 반복문으로 돌리면서 size에 입력을 받는데 size가 2^(e-1)와 2^e 사이의 값이 아니면 종료합니다.

2.테스트
프로그램을 실행시켰습니다.
7.png
7.png (196.65 KiB) Viewed 505 times
범위에 어긋나는 값을 입력시 종료됩니다.
8-1.png
8-1.png (134.61 KiB) Viewed 505 times
8-2.png
8-2.png (226.06 KiB) Viewed 505 times
범위 안에 있는 값을 입력하였는데 sementation fault가 발생합니다;;
9.png
9.png (461.96 KiB) Viewed 505 times
movntps에서 문제가 생겼습니다. 앞서 말씀드린 것처럼 movntps는16byte로 정렬된 값으로 연산을 합니다.
그래서 dest변수의 값을 확인하기 위해 dest의 값을 출력해주는 printf(dest : "%p\n");을 추가시킨 뒤 프로그램을 실행시켰습니다.
10.png
10.png (208.38 KiB) Viewed 505 times
에러를 피해가기 위해서는 dest의 값이 16(0x10)의 배수가 나와야합니다 (첫째자리가 0이 되야됨 -> 8을 더한다)
11-1.png
11-1.png (251.73 KiB) Viewed 504 times
11-2.png
11-2.png (267.15 KiB) Viewed 504 times
11-3.png
11-3.png (39.41 KiB) Viewed 504 times
깼습니다. 이 소스엔 플래그값이 없네요 pwnable.kr서버에서 인증해야 하나봅니다.
12.png
12.png (171.09 KiB) Viewed 504 times
끝나면 하겠습니다;;

h0n9t3n
Posts: 48
Joined: Tue Oct 13, 2015 11:14 am

Re: [pwnable.kr] - memcpy

Post by h0n9t3n » Mon Oct 24, 2016 11:34 am

오우 산하 일취월장하네 ㅋㅋ

KSH
Posts: 24
Joined: Thu Jul 21, 2016 5:39 pm

Re: [pwnable.kr] - memcpy

Post by KSH » Tue Oct 25, 2016 3:18 pm

더 잘하겠습니다

Post Reply

Who is online

Users browsing this forum: No registered users and 20 guests