프로그래밍

 3198, 1/160 회원가입  로그인  
   Error123
   버퍼 오버플로우-왕기초편12pdf

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6557 [복사]


에서
#include “dumpcode.h”
int main(int argc, char *argv[])
{
char target[4] = “DOG”;
char buffer[20] = {0, }; // 0으로 초기화
if(argc < 2)
{
printf(“argument error\n”);
exit(-1);
}
// dumpcode로 메모리 덤프
dumpcode(buffer, 24);
printf(“[*] BEFORE : the value of target is %s\n\n”, target);
// 첫 번째 인자로 전달된 문자열을 buffer로 복사
// 여기서 buffer overflow 발생!
strcpy(buffer, argv[1]);
// dumpcode로 메모리 덤프
dumpcode(buffer, 24);
printf(“[*] AFTER : the value of target is %s\n”, target);
}

이 메인 함수를 실행시키는데

./ex2 aaaaaaaaa 이런식으로 하더라구요
인자가 2개인데 왜 저렇게 하나만 넣는거죠 ?

  Hit : 4782     Date : 2016/07/24 09:02



    
cd80 ./ex2 aaaaaaaa 하면 argv[0] = "./ex2", argv[1] = "aaaaaaaa" 해서 두개가 들어갑니다 2016/07/25  
somass ./ex2 aaaaaaaa 하면 argv[0] = "./ex2", argv[1] = "aaaaaaaa" 해서 두개가 들어갑니다아 2022/09/16