KDHzoot's Github

Code for study, project, etc

자세히보기

컴퓨터랑 친해지기 6

[개발 환경] visual studio 새 프로젝트 생성

아마 VS를 처음 실행시켰다면 다음과 같은 화면이 뜰텐데요 [새 프로젝트 만들기]를 선택해줍니다. 저희는 C언어 공부를 위해서 프로젝트를 생성하는 것이기 때문에 [빈 프로젝트]로 생성해주겠습니다. 선택하고 하단의 [다음] 버튼을 눌러주세요. 원하시는 프로젝트 이름을 적으시고 [만들기]를 눌러주세요 그러면 새로운 창이 크게 뜨는데요 우측 바에서 [소스 파일]을 우클릭하시고 순서대로 [추가] - [새 항목]을 선택해주세요. 새로운 팝업창이 떴습니다. [c++ 헤더파일]을 선택하고 우측 하단의 [추가] 버튼을 눌러주세요 소스 파일에 세로운 파일이 생성된 것을 확인할 수 있습니다. 새로운 프로젝트 생성이 완료되었습니다. 이제 코드 파일에 원하시는 코드를 적고 ctrl + f5를 누르시면 코드가 컴파일 됩니다.

[개발환경] visual studio 2019 설치

먼저 microsoft 사이트에 들어가서 설치 파일을 다운 받습니다. https://visualstudio.microsoft.com/ko/vs/ Visual Studio 2019 | 무료 다운로드 Visual Studio에서 코드 완성, 디버깅, 테스트, Git 관리 및 클라우드 배포를 사용하여 코드를 작성할 수 있습니다. 지금 Community를 무료로 다운로드하세요. visualstudio.microsoft.com 사이트에 들어가면 중앙에 다운로드 탭이 있습니다. 탭을 선택하고 첫번째 있는 Community 버전을 다운받아 주세요. exe 파일이 다운 완료되면 클릭해서 실행시켜주세요. 팝업창은 캡처를 못했지만 예를 눌러서 진행하시면 됩니다. 그 다음은 계속을 눌러주세요. ...다운 중... 설치가 다..

shellcode

35뭔가 특징이 있었는데 기억이 안난다. '/' 인가가 없어서 파일 이름 링크시켜서 0번째 인자로 전달할 때 쓰는 쉘코드였던 것 같다. \x31\xc0\x50\xbe\x2e\x2e\x72\x67\x81\xc6\x01\x01\x01\x01\x56\xbf\x2e\x62\x69\x6e\x47\x57\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80 2524랑 뭐가다른걸까 \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80 24기본적인 쉘코드 \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3..

상수, 문자, 문자열의 구분

숫자값은 상수, 문자값은 문자, 여러개의 문자값은 문자열, 처음 프로그래밍을 할 때, 들어가는 값이 상수인지 문자인지 문자열인지 헷갈릴 수가 있다. 그럴때는 그 값을 둘러싸고 있는 따옴표를 보면된다. 상수는 따옴표가 없다. 숫자 그대로 쓰면 된다. ex) 12, 64 문자는 '(작은 따옴표)'로 둘러쌓여있다. ex) 'K', 'D', 'H' 문자열은 "(큰 따옴표)"로 둘러쌓여있다. ex) "hello", "number" 위의 특징만 안다면 앞으로는 값의 자료형을 바로 알 수 있다. 만약 1char str[10] = "123"cs 이라는 코드가 있다면 str이라는 문자열 안에 123이라는 상수를 대입하는 것이 아니라, 문자 '1', '2', '3'으로 이루어진 문자열 "123"을 대입하는 것이다. 마찬가..

배열의 차원

우리는 1차원 배열부터 시작해서 2차원 3차원으로 확장할 수 있다는 것을 알고있다. 1차원은 상자의 선2차원은 상자의 면3차원은 상자의 사각형(?)이라고 한다면 4차원은 어떻게 생각해야 될까? 당연히 시공간을 상상할수는 없다. 따라서 우리는 배열을 보는 관점을 조금 바꿔야된다. int arr[5][5]; 라는 배열이 있을 때 이 변수는 5*5만큼의 int자료형의 변수가 아니다. 노드 5개를 가지는 노드가 5개 있는 트리이다. 예를 들자면 배열이 int arr[4][2][3]; 로 저장되어 있다면 위의 그림처럼 생각하면 된다. arr[2][0][1]을 하면 다음처럼 값을 찾아간다. 이미지를 가지고 NN에 적용시키다 보면 대부분의 경우 이미지를 4차원 상으로 가지고 논다. 이때 차원을 트리구조로 바꿔서 생각..

코드 블럭으로 보기

대부분의 사람들이 프로그래밍에 입문하여 C언어를 배울 때 자주 헷갈리는 것 같다. 어디서부터 어디까지가 반복되는 부분이고 어디서부터 어디까지가 실행되어야 하는지. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include void snale_matrix() { int matrix[5][5]; int num = 1; int delta = 1; int limit = 5; int i = 0, j = -1; int p, q; while (1) { //가로로 이동하면서 하나씩 할당 for (p = 0; p