Searchers Top views
-
C_지식_정리
[C 언어] 무작위로 숫자 생성하기 (난수 생성기)
숫자를 랜덤으로 뽑아서 출력하게 하는 코드이다. 난수 생성기 #include #include //srand, rand를 사용하기 위한 헤더파일 #include // time을 사용하기 위한 헤더파일 int main() { srand(time(NULL)); // 난수 초기화 for (int i = 0; i 0 ~ 4사이의 랜덤한 숫자 ex) (ran..
-
Reversing
[리버스 엔지니어링] 80x86 CPU의 레지스터 종류와 뜻
레지스터(Register) 처리 중인 데이터나 처리 결과를 임시적으로 보관하는 CPU안의 기억장치이다. 레지스터에는 종류가 있고 종류마다 각각 기능이 따로 분류 되어있는데, 범용 레지스터, 세그먼트 레지스터, 포인터 레지스터, 인덱스 레지스터, 플래그 레지스터로 나뉘어 진다. 레지스터들 중에 앞에 E가 붙는것들이 있는데 이때 E는 Extended(확장된)을 의미한다. 범용 레지스터(General Register) -연산 장치가 수행한 계산 결과의 임시 저장, 산술 및 논리 연산, 주소 색인등에 사용되는 레지스터이다. EAX(Extended Accumulator Register) 함수의 리턴 값 저장이나 산술 연산(+, -, *, /)에 이용된다. Win32 API 함수들은 모두 리턴값을 EAX에 저장한 ..
-
C_지식_정리
[C 언어] 반복문을 원할때 빠져나가게 할 수 있는 break, continue
break break가 있는 그 자리에서 바로 반복문을 빠져 나오게 하는 함수이다. 웬만해서 조건식과 함께 쓰이며 원하는 곳에서 반복을 빠져 나오게 할 수 있다. continue continue가 있는 그 자리에서 continue 코드 밑에 있는 코드들은 무시하고 반복을 진행하게 된다. 조건을 주어서 원하는 결과값만 출력하게 할 수 있다. break와 continue의 차이점은 break는 반복을 완전히 빠져 나가는 것이고, continue는 반복을 진행하되 이후의 코드는 무시를 하고 진행을 하게 된다. break ex) #include int main() { for (int i = 0; i < 30; i++) // 0~29 (30)번 반복 { printf("%d\n", i); if (i == 15) /..
-
Linux
[Linux] 리눅스환경(Ubuntu)에서 C언어 코딩하기
실습 환경: VMware, Ubuntu 19.10ver 먼저 리눅스 터미널을 열어서 관리자 모드로 진입한 후, gcc 컴파일러를 설치 해야한다. sudo su apt-get update apt-get install gcc 설치가 끝나면 vi 에디터를 이용해 코딩을 하면 된다 vi [파일명].c 이 화면에서 i키를 누르게 되면 밑부분에 파일이름에 -- INSERT --로 바뀌게 된다. 그렇게 되면 이제 코딩을 시작하면 된다. sample.c #include int main() { printf("Linux에서 gcc컴파일러를 이용해 C언어 코딩하기\n"); printf("Luden0 Blog\n"); return 0; } 작성을 다 하고나면, ESC를 눌러서 -- INSERT --모드를 해제한다. 그리고 :..