97, 1/5 회원가입  로그인  
   turttle2s
   변수 선언시 스택에서의 위치

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_Reversing&no=119 [복사]


char str[100];
char a = 'A';

printf("a = %c\n",a);
strcpy(str, argv[1]);
printf("a = %c\n",a);


BOF 연습하고있는 햇병아리 입니다.
이렇게 str[100]을 먼저 선언하고 a를 선언하면 스택에서 a의 위치가 str주소봐 낮은 곳에 위치하는걸로 알고있습니다. FTZ 서버에서 프로그램 만든 후 gdb로 디스어셈블 했는데 변수 a의 위치가 [ebp - 121] 이고 str의 시작 주소가 [ebp - 120]으로 나오는데 왜 이렇게 되는건지 모르겠습니다. ( 메모리 보호기법은 다 해제했습니다. )

  Hit : 1883     Date : 2018/11/13 01:39



    
gihacker 스택 자라는 방향에 대해서 고려해보시기 바랍니다 2018/11/13  
turttle2s gihacker
먼저 선언한 str에 대해서 공간을 확보해 주는것 같은데.. 헷갈리는게 다른 서버에서 똑같은 소스로 똑같이 컴파일 했는데 여기선 변수 a에 대한 자리를 먼저 주네요. ( [rbp - 0x1] )

64비트에선 다르게 작동하나요?
2018/11/15  
군인 ㄴ 아키텍쳐랑 무관하게 컴파일러의 차이일겁니다. 2018/11/15  
turttle2s ㄴ 그렇군요. 감사합니다 2018/11/15  
somass 아키텍쳐랑 무관하게 컴파일러의 차이일겁니다. 2022/09/16  
97   angr에서 스택 주소 구하기[3]     turttle2s
05/24 1432
96   아스키 범위 밖 페이로드 전송 시, 0xc2가 붙는 현상[7]     turttle2s
05/11 1386
95   angr 질문[2]     turttle2s
04/24 1463
94   리버싱 핵심원리를 공부하다가 막혔습니다.     aaasss445
06/12 1831
93   quickbms 의 원리가 궁금합니다.     sa0814
05/10 1607
92   콜스택에 아무것도 없을 경우에는 어떻게 해야하나요..[2]     mij9929
01/14 1471
91   ollydbg 64bit 실행 불가 왜 이런거죠? ㅠ[4]     4ru4ka
04/24 3449
  변수 선언시 스택에서의 위치[5]     turttle2s
11/13 1882
89   코드엔진 Basic 02에서     healer
04/08 1924
88   win32 api 및 진로..?[2]     user0
02/26 3159
87   메모리 주소 변경 되는 문제에 관해 질문합니다.[2]     jjunici
12/17 3210
86   ida에서 분석할 때,,,[3]     vngkv123
11/30 2073
85   리버싱-디스어셈블리-디버거에 문의좀..     leonardo6
10/13 2298
84   dumpcode 헤더파일 말인데요..[1]     ys200209
07/20 2206
83   리버싱 __security_cookie[3]     healer
07/17 3281
82   단순 리버싱 관련 질문[8]     ewqqw
06/11 2700
81   elf 바이너리 패치 질문...[2]     vngkv123
06/07 3001
80   IDA hexray로 보았을 때...[2]     vngkv123
05/29 2529
79   디스어셈블된 코드들 중에서..[2]     vngkv123
05/14 2622
78   게임 보안 (싸인코드, X-Trap, 게임가드) 분석 법률 궁금합니다![4]     셜록38
03/17 3743
1 [2][3][4][5]

Copyright 1999-2023 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com