본문 바로가기

2016/11

쉽고 간단한 C언어 강좌 -3) 첫 프로그램 이번 시간엔,지난 번에 설치했던 Visual Studio를 이용하여간단한 C언어 프로그램을 만들어보겠습니다.(설치 방법을 모르시는 분은 >> Visual Sutdio 2015 설치하기) 새로운 프로그램(프로젝트)을 만들 것이므로'New Project' 'Visual C++> Win32 Console Application' 선택이 부분은 그냥 암기 'Next> Empty project' 체크 후 'Finish'(체크하지 않을 경우, 빈 프로젝트가 아니라예시로 작성된 더러운 파일이 포함된 프로젝트가 생성됩니다.삭제가 귀찮으니 꼭 체크) 프로젝트가 생성되었습니다.오른쪽에 Solution Explorer를 보면 생성된 프로젝트의 전체 구조를 간략히 확인할 수 있는데요.여기서, Source Files를 오른 클릭.. 더보기
쉽고 간단한 C언어 강좌 -2) 컴파일러 설치(Visual Studio 2015) 먼저, 지난 포스팅 설명이 너무 간단해서 부가 설명하겠습니다. C언어는 프로그래밍 언어이며 프로그램에서 이뤄지는 모든 것은 프로그래머가 그렇게 동작이 되도록 프로그래밍 언어로 작성한 것입니다. 메모장 프로그램을 예로 들면 이런 아이콘을 더블클릭하여 실행하였을 때 이런 창이 뜨게하는 것, 그리고 창 안의 '파일, 편집, 서식' 이런 단추들 역시 프로그래머가 프로그래밍 언어를 통해 "실행되었을 때 창을 띄워라!" "창 안에 단추를 만들어 '파일'이라고 이름붙여라!" 라고 컴퓨터에게 명령을 내린 것입니다. 프로그램은 프로그래머가 컴퓨터에게 전하는 명령문의 집합체라 할 수 있고 그 명령문은 C언어를 이용하여 작성 가능합니다. (이해가 안되면 지금 한 말 싹다 무시해도 됩니다) 우리가 C언어로 작성한, 글로 이루.. 더보기
쉽고 간단한 C언어 강좌 -1) 설명 보호되어 있는 글입니다. 더보기
쉽고 간단한 C언어 강좌 -0) 소개 보호되어 있는 글입니다. 더보기
JAVA] 배열, 콜렉션 보호되어 있는 글입니다. 더보기
strtoull unsigned long strtoul(const char *restrict, char **endptr, int base); :숫자 문자열을 unsigned long 형 숫자로 변환. (숫자가 아닌 문자를 만날 경우, 그 위치 반환) restrict: 변환할 문자열endptr: 숫자로 변환되지 못한 문자열의 시작위치.base: 문자열로 된 숫자가 몇진수 이냐? #include int main( void) { char *str; char *ptr; unsigned long value; str = "2007forum.falinux.com"; value = strtoul( str, &ptr, 10); // 10진수로 변환 printf( "%s strtoul =%u str=%s\n", str, value, pt.. 더보기
alloca 보호되어 있는 글입니다. 더보기
서비스 프로세스 0. 정의 1. 실행구조 -서비스 제어기(제어판>서비스)가 SCM(Service Control Manager)에게 요청하여 서비스 프로세스를 관리하는 구조. 출처: reversecore.com -모든 서비스는 SCM(service.exe)의 자식프로세스로 실행됨. 2. 디버깅 방법 -서비스 프로그램을 디버거로 실행할 경우에 서비스 메인함수(ScvMain)가 실행되지 않는다. > SCM이 실행한 서비스를 attach 하여 디버깅 하거나, EIP 강제 변경으로 디버깅을 진행해야 함. 1) EIP 강제 변경 서비스 프로세스 Main 함수의 StartServiceCtrlDispatcher()의 인자값을 확인하여 SvcMain 함수의 시작주소를 알아내고, EIP를 변경하여 ScvMain() 디버깅. BOOL WI.. 더보기
system 함수로 환경변수 실행 보호되어 있는 글입니다. 더보기