일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vtable
- epoll
- 취약점
- architecture
- 어셈블리어
- mvwin
- wrefresh
- .nret core 배포
- Docker
- iptables
- edge trigger
- doupdate
- wnourefresh
- REDIS
- ioctl
- DOCKER-USER
- Compiler
- 풀이
- packet flow
- C언어
- BOF
- LOB
- .net core 7
- ncurses
- level trigger
- NAPT
- packet filter
- rfc5508
- cbpf
- epoll_wait
- Today
- Total
Tuuna Computer Science
LEA EBX, [EBP-4] : 스택기준으로 EBP-4의 주소값을 계산해서 EBX에 넣어라 이를 MOV 명령어로 나타내면 MOV EAX, EBP : EBP의 주소값을 계산해서 EAX에 넣어라 SUB EAX, 4 : 그 주소에서 4를 빼라 => [EBP-4] 이다. 그 이유는 MOV 명령어의 피연산자부분은 반드시 상수여야 하기 때문이다. 주의! MOV EAX, [EBP-4]는 단지 EBP-4의 주소에 들어있는 값을 넣는 것이다. 위들의 주소값을 얻었을 때 그 값을 사용하는 방법은 MOV EAX, [EBX] 이다. [REG, MEMORY] = 그 메모리와 레지스터 주소값에 들어있는 값을 참조
가상메모리란? ->프로그램을 실행할 때 실제 메모리 주소를 사용하지 않고 가상의 메모리 주소를 사용한다. 또한, 가상메모리는 메모리 관리 장치로 인해 물리 주소로 바뀌게 된다. (32bit 운영체제 환경가정) 즉 사용자의 컴퓨터 장착된 실제메모리 주소가 3G라면 가상메모리는 32bit운영체제가 가질 수 있는 최대 메모리 4G에 대한 가상메모리가 생성되고 이는 물리메모리 주소로 변환된다. 또한 덧 붙이자면 디스크 공간도 메모리공간으로써 사용할 수 있다. 메모리구조 : 코드영역, 초기화된 데이터 영역, 비초기화된 데이터 영역, Heap영역, 공유 라이브러리 영역, 스택영역//커널영역 0x00000000 커널 : 0xC0000000~ 0xFFFFFFFF -> 사용자가 프로그램을 실행하여 되는 프로세서는 자신만..
12345678910111213141516171819202122232425262728#include void clearna(void){ while(getchar()!='\n'); // \n이 나올때 까지 읽어들인다 } int main(void){ char perid[7]; char name[10]; fputs("주민번호 앞 6자리 입력: ", stdout); fgets(perid, sizeof(perid), stdin); //fgets함수는 \n을 만날 때 까지 읽어들이는 함수이다. clearna(); //입력버퍼 지우기! /*getchar(); = 이것도 가능 *//*배열의 크기가 7이므로 6자리 입력 + NULL \n이 밀려 버퍼에 남아 있기 때문에 이것만 읽고 넘어가 버리기 때문에 반복문을 통해 이..