[풀이] memcpy

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

Moderator: amesianx

Post Reply
hackhack
Posts: 14
Joined: Mon Sep 26, 2016 1:12 am

[풀이] memcpy

Post by hackhack » Mon Oct 03, 2016 7:04 pm

소스코드를 분석해 보면, 메모리를 8~16, 16~32, 32~64, 64~128, ..., 2048~4096 의 범위만큼 입력받은 만큼 할당하고, 각각 메모리에 memcpy 하는것을 알 수 있습니다. 그런데 어째서인지 그냥 입력하다보면 종료가 되는데, 그 이유는, fast_memcpy 함수에서, movdqa 명령어를 사용하서 16바이트씩 복사를 하는데, 이 명령어는 접근하는 메모리의 주소가 16바이트로 정렬되어 있어야 하기 때문입니다. 대상 메모리의 주소가 16바이트로 정렬되지 않아서, 오류를 내고 프로그램이 그냥 종료되는 것입니다. 그래서, 메모리를 할당할 때 크기를 적당히 조절해서 16바이트로 정렬되게 하면 됩니다.

어떻게 하냐구요? 그냥 때려 맞추면 됩니다.
설명한 대로 일단 해보세요! 그리고 안되면 댓글을 다세요.

User avatar
SinJiRu
Posts: 84
Joined: Wed Oct 14, 2015 2:54 pm

Re: [풀이] memcpy

Post by SinJiRu » Fri Oct 07, 2016 12:22 pm

pwnable.kr

문제였군요~ . 감사합니다~

Post Reply

Who is online

Users browsing this forum: No registered users and 18 guests