2018/12

***공유메모리생성_ shmget()*** 공유메모리는 단어 뜻에서 알 수 있듯이 하나의 프로세스에서가 아니라 여러 프로세스가 함께 사용하는 메모리를 말한다. 이 공유 메모리를 이용하면 프로세스끼리 통신을 할 수 있으며, 같은 데이터를 공유할 수 있다. 이렇게 같은 메모리 영역을 공유하기 위해서는 공유메모리를 생성한 후 프로세스의 자신의 영역에 첨부를 한 후에 마치 자신의 메모리를 사용하듯 사용한다. #include #include int shmget(key_t key, int size, int shmflg); key_t key : 공유 메모리를 구별하는 식별 번호 int size : 공유 메모리 크기 int shmflg : 동작 옵션 IPC_CREATE : key에 해당하는 공유 메모리가 없다면 새로 ..
레지스터는 처리중인 데이터나 처리 결과를 임시 보관하는 CPU 내의 기억장치로, 대게 연산 장치나 제어 장치에 포함되어 있다. EAX 레지스터 입출력과 대부분 산술 연산에 사용됩니다! [ex -> 곱셈,나눗셈,변환 명령 등,,] win 32 API 함수들은 모두 리턴 값을 EAX에 저장한 후 리턴한다고 한다. EBX 레지스터 DS 세그먼트에 대한 포인터를 저장합니다 (DS 세그먼트 안의 데이터를 가리킴) ESI + DSI와 결함, 인덱스에 사용된다고 합니다. 또한 메모리의 주소 지정을 확장하기 위해 인덱스로 사용 가능한 유일한 범용 레지스터 입니다. ECX 레지스터 문자열 처리나 루프가 반복되는 횟수를 제어합니다(루프를 위한 카운터) EDX 레지스터 입출력 연산에 사용,EAX와 함께 사용됩니다. (I/O..
본 글은 정보보안 개론과 실습(시스템 해킹과 보안) 편에 나온 내용을 쓴것입니다 저작권 문제시 삭제 하겠습니다. 연산 장치란?ALU 라고 불리죠 Arithmetic and Logic Unit의 약자입니다 학교에서 하드웨어 수업을 들어봤다면 한번쯤 들어봤을 단어죠 ㅋㅋ 구성요소는내부장치와 관련 레지스터가 있네요내부장치에는 가산기(Adder), 보수기(Complementer), 시프터(Shifter)가 있습니다각각의 역할을 알아볼까요가산기(Adder) - 덧셈 연산 수행보수기(Complementer) - 뺄셈 연산 수행, 1의 보수나 2의 보수 방식을 이용시프터(Shifter) - 비트를 오른쪽이나 왼쪽으로 이동하여 나눗셈과 곱셈 연산 수행 관련 레지스터에는 누산기(Accumulator), 데이터 레지스터(..
#include #include #include #include main(){ char buf2[10]; /*char형 변수 buf2라는 이름에 10바이트의 크기 배열 선언*/ char buf[10]; /*char형 변수 buf10라는 이름에 10바이트의 크기 배열 선언*/ printf("It can be overflow : "); fgets(buf,40,stdin); /*fget([char *str],[int size],[FILE *Stream]) 형식*/ /*40바이트 만큼의 입력을받고 buf변수에 집어넣음*/ if ( strncmp(buf2, "go", 2) == 0 ) /*buf2의 문자열이 "go"라면 if문 안을 실행한다.*/ { printf("Good Skill!\n"); setreuid( ..
IsaacKim
'2018/12 글 목록