Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- C언어
- packet filter
- cbpf
- LOB
- .nret core 배포
- level trigger
- .net core 7
- rfc5508
- Compiler
- BOF
- DOCKER-USER
- mvwin
- 취약점
- 어셈블리어
- REDIS
- wrefresh
- doupdate
- ncurses
- edge trigger
- vtable
- Docker
- epoll
- architecture
- packet flow
- iptables
- wnourefresh
- NAPT
- ioctl
- epoll_wait
- 풀이
Archives
- Today
- Total
Tuuna Computer Science
포인터 배열 본문
@pointer_00401500: ;<= Procedure Start
PUSH EBP
MOV EBP,ESP
AND ESP,0FFFFFFF0h
SUB ESP,020h ;지역변수를 위한 공간 생성
CALL @pointer_00401EC0 ;<= Jump/Call Address Not Resolved
MOV BYTE PTR SS:[ESP+01Fh],0Ah ;10진수 : 10을 넣음
MOV BYTE PTR SS:[ESP+01Eh],014h ;10진수 : 20을 넣음
MOV DWORD PTR SS:[ESP+010h],0 ;임시로 보관하기 위해 메모리를 0으로 초기화 함.
MOV DWORD PTR SS:[ESP+014h],0
MOV DWORD PTR SS:[ESP+018h],0
LEA EAX,DWORD PTR SS:[ESP+01Fh] ;주소를 따온다. (&num) 그리고 EAX레지스터에 넣는다.
MOV DWORD PTR SS:[ESP+010h],EAX ;그리고 메모리에 넣는다. (이는 포인터변수)라 칭할듯
LEA EAX,DWORD PTR SS:[ESP+01Eh] ;주소를 따온다. (&num1) 그리고 EAX레지스터에 넣는다.
MOV DWORD PTR SS:[ESP+014h],EAX ;포인터변수에 넣는다.
MOV EAX,DWORD PTR SS:[ESP+014h] ;메모리끼리는 값을 못 넣으니 EAX에 넣어서
MOVZX EAX,BYTE PTR DS:[EAX] ;그 EAX레지스터에 있는 주소에 있는 값을 EAX에 넣는다.
MOVSX EAX,AL
MOV DWORD PTR SS:[ESP+4],EAX
MOV DWORD PTR SS:[ESP],pointer_00404000
; ASCII "%d" 올리디버거에서 1.10에서 (실행파일이름)이 올리디버거 2.20의 OFFSET과 같다.
;즉, OFFSET을 표시할걸 (실행파일이름)을 적는다. ㅋ
CALL printf ;<= Jump/Call Address Not Resolved
MOV EAX,0
LEAVE
RETN ;<= Procedure End
'Assembly' 카테고리의 다른 글
재귀함수 호출시 스택프레임상황 (0) | 2018.06.12 |
---|---|
C 언어 문자열 관련 함수 (strcpy) 분석 (0) | 2018.06.11 |
배열 포인터 (0) | 2018.06.11 |
[Assembly]어셈블리어 lea, mov 명령어 차이 (0) | 2018.04.28 |
[Assembly] 어셈블리어 명령어(TEST) (0) | 2018.04.24 |
Comments