루트킷.doc

Size: px
Start display at page:

Download "루트킷.doc"

Transcription

1 RootKit Univ.Chosun HackerLogin : Jeong Kyung Ho moltak@gmail.com

2 Contents 1. 루트킷이란? 2. Windows Architecture 3. Driver Development Kit 4. 루트킷제작에사용되는기술 A. Hooking B. Filter Driver C. DKOM 5. 결론 6. 참고자료

3 1. 루트킷이란? 루트킷에대해이야기하기전에먼저루트킷에대해알아보도록하자. A. 루트킷은커널모드 1 와유저모드에서동작한다. B. 유저모드보다는커널모드에서의비중이더크다. C. 많은루트킷들이커널모드에서동작하도록만들어져있다. D. 유저모드보단커널모드에서탐지가더어렵고커널모드는탐지가되더라도회피를하거나, 탐지프로그램을죽이는것이가능하다. E. 대부분의루트킷들은커널모드와유저모드에서동시에동작하도록되어있다. F. 루트킷의핵심키워드 꼭꼭숨어라 : 탐지되지않는 G. 대부분의기술과트릭은코드와데이터를시스템에서숨기기위해존재 많은루트킷들이커널모드에서동작하도록만들어져있다. 라고했는데그아래에서는 대부분의루트킷들은커널모드와유저모드에서동시에동작하도록되어있다 이라고쓴이유가무엇일까? 사실커널모드에서하기힘든일을유저모드에서는쉽게할수있다. 파일을만들거나어떤 API 코드를실행하거나, 그러한것은커널모드에서하기에는조금복잡하기도하고디버깅할때나예외가발생했을때수정하기도힘들다. 그래서루트킷은커널모드에서동작하도록만들어져있지만유저모드에서도동작하도록만들어져있다. 커널모드, 유저모드가서로상호작용을하면서탐지가쉽게되는유저모드를커널모드에서감춰주고커널모드에서사용하기어려운기능들은유저모드에서작성을함으로써코드가간결하며강력한루트킷을만들게되는것이다. 또한, 루트킷의핵심키워드는 탐지되지않는 이다. 루트킷의대부분의기술과트릭들은코드와데이터를시스템에서숨기기위해존재한다고해도틀린말이아니다. 물론해당컴퓨터를조종하기위한코드나어떤정보를얻기위해작성한코드도있겠지만가장중요한것은사용자나관리자에게루트킷이깔려있는지알수없게해야한다는것이다. 자신이설치가되고작동이되더라도시스템관리자가보기에는설치되기전과설치된후가변한것이없어야한다. 1 커널모드 : Windows Architecture 는 Kernel Mode, User Mode 를갖고있다.

4 2. Windows Architecture 윈도우는커널모드와유저모드를갖고있다. 유저모드는 Ring Level 3, 커널모드는 Ring Level 0 이며이는 CPU에서레벨에따라명령어를실행하게하거나못하게한다. 만약 Ring Level 3인유저모드에서 Ring Level 0의명령어를실행하려한다면 CPU에서예외를발생시킨다는것이다. 운영체제는유저모드를신뢰하지않는다. 항상감시의눈초리를보내다가수상한행동을할때해당프로세스를 Kill 한다. < 그림 1> 소프트웨어코드와메모리각각에어떤링이할당되는지끊임없이관리하는것은 CPU가담당해야하는역할이다. Ring Level( 이하링 ) 간의접근제한을수행하는것또한 CPU의역할이다. 일반적으로모든소프트웨어프로그램은링번호를할당받으며자신이할당받은링번호보다낮은번호의링영역에는접근할수없다. 예를들면, 링3 프로그램은링0 프로그램에접근할수없는것이다. 만약그런일이발생한다면 CPU는즉시예외를발생시킨다. 대부분의경우에는운영체제에의해서접근이차단되며그런접근시도는프로그램이중지되는결과를낳게된다. < 그림 1> 은인텔 x86 프로세서의링구조를표현한것으로유저모드와커널모드프로 그램이링구조안의어디에서실행되는지를나타내고있다. 권한에따라메모리에접근할 수있는권한이구별되듯이실행되는명령또한구별될수있다. 즉명령중에는링 0 에서

5 만사용할수있는명령이있다. 그런명령들을이용하면 CPU 의동작을변경시키거나하드 웨어에직접적으로접근할수있다. 루트킷이링 0 에서동작하면얻게되는장점이많다. 하드웨어나다른소프트웨어가실행 되고있는환경을조작할수있기때문이다. 3. Driver Development Kit 커널모드에서프로그래밍을하려면 DDK(Driver Development Kit) 가꼭필요하다. DDK 는하드웨어개발자들이윈도우용드라이버를개발하는데필요한도구들을모은것이다. 유저모드에서는 Win32API로프로그래밍을하거나 MFC로프로그래밍을하게된다. 많은라이브러리들은대부분이유저모드프로그래밍을위해나왔다고해도과언이아니게아주많은유저모드라이브러리가있다. 하지만커널모드프로그래밍을해야하는 DDK는그종류가몇가지가되지않는다. 가장많이사용되는라이브러리로 WDM(Windows Driver Model) 이있지만어렵고복잡해서사용하기가힘들다. 최근에나온차세대통합드라이버모델 (WDF) 이나왔지만그난해함은여전하다. 커널모드에서프로그래밍을하게된다면자주보는그림이있다. 옆에있는 BlueScreen인데이는 Win98시절에많이볼수있었던화면일것이다. 이화면은커널모드에서동작하는애플리케이션에예외가발생했을때나온다. 이화면이나오면시스템이강제종료되기때문에어디서예외가발생했는지어떻게수정해야하는지찾기가힘들다. 이예외를처리하려면디버깅컴퓨터와디버기컴퓨터가필요하다.

6 디버깅컴퓨터와디버기컴퓨터를연결한후 WinDbg 를이용해디버기컴퓨터에접속하 면커널모드애플리케이션에서발생하는메시지를읽을수있으며예 ᅌᅬ 가발생한시점에 서디버기컴퓨터를멈춘후디버깅을할수있다. 4. 루트킷제작에사용되는기술 A. HooKing 1 DLL Injection i. Windows Hooking Function 마이크로소프트는다른프로세스로전달되는윈도우메시지를후킹할수있는함수를정의해놓았다. 다른프로세스의주소공간영역안으로루트킷 DLL을로드시킬수있는방법을제공하고있는것이다. 애플리케이션은동작중에운영체제로부터다양한이벤트메시지를받는다. 애플리케이션의활성화된윈도우창에서사용자가키를입력했거나버튼이나마우스를클릭하면그이벤트에해당하는메시지가해당애플리케이션으로전송된다. 위의 SetWindowsHookEx 함수가윈도우후킹함수이다.

7 첫번째인자는후킹을수행할메시지타입. 두번째인자는이벤트메시지가발생되었을때메시지를보낼후킹함수의주소. 세번째인자는후킹함수를포함하고있는 dll의가상메모리주소. 네번째인자는후킹을수행할스레드이며네번째인자가 0이면현재윈도우데스크탑의모든스레드에대해후킹이가능하다. 옆의 UnHookWindowsHookEx는후킹을해제하는함수이다. Windows에서 Hook 함수를사용하여 DLL을 Inject 하게되면, 내부적으로는 Hook Procedure 만이아니라, Hook Procedure 가들어있는 DLL코드전체가프로그램의코드영역에 Mapping 되기때문에, DLL 코드가실행되는영역이결국 DLL을호출한프로그램의내부영역이된다. 내부메시지를 Hook 하거나, Window Procedure에 Hook을걸어필요한작업을진행하면될것이고 SetWindowHookEx를이용하여함수를실행하면된다.

8 #pragma data_seg( ".Hearobdata" ) HINSTANCE hmodule = NULL; HHOOK hkeyhook = NULL; HWND g_hwnd = NULL; #pragma data_seg() 이그림은 Global 변수들을 Shared로지정하여 DLL을사용하는모든프로그램에대해 DLL 이로드되는시간동안 DLL간의공유가능한영역을지정한것이다. 위에보이는것처럼데이터 seg의이름을주고이안에변수들을지정했을때이 DLL을로드하는프로세스는이데이터 seg를공유하게된다. 데이터 seg 를공유시켜원하는프로세스에서정보를얻고원하는 app 에얻어 온데이터를뿌려주게된다.

9 ii. VirtualAllocEx & CreateRemoteThread DLL을특정프로세스주소영역으로로드시킬수있는다른방법은해당프로세스의리모트스레드 (Remote Thread) 를만드는것이다. 이미존재하는프로세스상에서 Thread를외부에서생성하여, 이 Thread가 DLL 코드를실행하도록동작하는방법이다. 첫번째인자는스레드를삽입할프로세스의핸들을나타낸다. 프로세스의핸들을구하려면대상프로세스의 PID를이용하여 OpenProcess 함수를호출하면된다. OpenProcess 함수는프로그래머가원하는프로세스의핸들을리턴시켜준다. 두번째, 일곱번째인자는 NULL, 세번째여섯번째인자는 0으로설정한다. 네번째인자는인젝션대상프로세스주소공간내에서의 LoadLibrary 함수의주소설정. 다섯번째인자는 LoadLibrary에전달되는인자의메모리주소를설정하여야한다. 보통 Kernel32.dll 에서 LoadLibraryA 함수를얻어오고얻어온주소로 DLL 을 로드시킨다. LoadLibraryA 함수를이용해서원하는 DLL 을로드시키는것이

10 다. 아래에있는코드는 DLL을 Injection 하기위한코드이다. remote thread 를생성하고 LoadLibrary 를호출한뒤, thread 에서 DLL 코드가종료될때까지기다린다. DLL 코드는 remote thread, 즉외부 Process 영역에서동작하며, 필요한작업을한뒤 return 되는데, return 되고난뒤에는만들어놓은 thread 를종료하면된다. int InjectDll() { // Get remote process id dwpid = GetPIDFromName(szProcessName); if (dwpid == -1) return 0; // Open remote process hprocess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwpid); if (hprocess == NULL) return 0; // Get full path of the DLL if (!GetModuleFileName(hInst, szlibpath, MAX_PATH))

11 return 0; strcpy(strrchr(szlibpath, '\\') + 1, szdllname); // Allocate memory in the remote process to store the szlibpath string plibremote = VirtualAllocEx(hProcess, NULL, sizeof(szlibpath), MEM_COMMIT, PAGE_READWRITE); if (plibremote == NULL) return 0; // Copy the szlibpath string to the remote process. if (!WriteProcessMemory(hProcess, plibremote, (void*)szlibpath, sizeof(szlibpath), NULL)) return 0; // Load the DLL into the remote process hthread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA"), plibremote, 0, NULL); // Wait for LoadLibrary() to finish and get return code WaitForSingleObject(hThread, INFINITE); GetExitCodeThread(hThread, &hlibmodule); CloseHandle(hThread); CloseHandle(hProcess); // Free remote memory for szlibpath VirtualFreeEx(hProcess, plibremote, sizeof(szlibpath), MEM_RELEASE);} iii. CreateRemoteThread & WriteProcessMemory 위의 Injection 에서는 DLL 을외부스레드가실행하는것이었지만이방법은

12 원하는데이터를원하는 Process 안에넣어코드를실행하는것이다. 위의방법과마찬가지로원하는 Process의핸들을얻고 Process에공간을할당하고 INJDATA라는원하는데이터가들어있는구조체를만들어 Process안에 WriteProcessMemory를이용하여써넣는다. 그렇게넣어진데이터를외부스레드즉 CreateRemoteThread를이용하여실행시키는것이다. 그림을보면알수있듯이가장아래에 VirtualAlloc 을사용하여 INJDATA 를 써넣는것을볼수있다. INJDATA 의내용은 DLL 의코드이며이전방법과는 다른목표 Process 에서 Injection 할 DLL 의코드를직접실행하는것이다. 위구조체에사용할 DLL 의코드와정보를넣는다. 이정보들은 Remoted 프로 세스의 address 영역에넣어서사용하며, 여기에저장된내용은실행할때나,

13 사용할프로시저나함수의포인터, 내부변수등을저장하게된다. 인젝션하는방법은위의방법과마찬가지로모듈을얻어오는것부터시작하게된다. 하지만우리가필요한함수는 LoadLibraryA 함수가아닌 SetWindowLongA, CallWndProcA 함수이기때문에다른모듈을얻어와야한다. // Get handle of "USER32.DLL" huser32 = GetModuleHandle("user32"); 얻어오는모듈의핸들은바로 user32 이다. 이곳에서원하는함수를얻게된 다. // Open remote process hprocess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID); 원하는프로세스를열고, // Allocate memory in the remote process and write a copy of initialized INJDATA into it size = sizeof(injdata); pdataremote = (PBYTE) VirtualAllocEx(hProcess, 0, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); 실행할코드가들어있는 INJDATA 만큼의공간을할당한다 WriteProcessMemory(hProcess, pdataremote, &DataLocal, size, &dwnumbytescopied) 할당된공간에 INJDATA DataLocal 을써넣는다. 다음은 RemoteThread 를위한공간을할당하고데이터를써넣을차례이다. pgetsaswndremote = (PBYTE) VirtualAllocEx(hProcess, 0, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(hProcess, pgetsaswndremote, &GetSASWnd, size, &dwnumbytescopied)

14 다음은 RemoteThread 를만들고원하는함수를실행시킨다. // Start execution of remote GetSASWnd() hthread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE) pgetsaswndremote, pdataremote, 0, &dwthreadid); 다음은위의방법과마찬가지로 DLL 의실행이끝나길기다린후종료시킨다. // Wait for GetSASWnd() to terminate and get return code (SAS Wnd handle) WaitForSingleObject(hThread, INFINITE); GetExitCodeThread(hThread, (PDWORD) &hsaswnd); 여기까지가 WriteProcessMemory와 CreateRemoteThread를이용한 DLL Injection 부분이다. 사실누락된내용도많지만누락된내용은다양한문서와완성되어공개된프로그램들이많으니그걸보고해도될것같다. 이와같은방법으로작업관리자를막거나프로그래머가원하는어떤키를막는것이가능하다.

15 B. FilterDriver i. 필터드라이버란? 위에서설명했던것과같이윈도우에는 KernelMode가있다. 그모드에서하는 Hooking을할수있는방법중하나가 FilterDriver 이다. 먼저필터드라이버를간단하게설명하자면 WDM(Windows Driver Model) 은계층드라이버아키텍처를갖는다. 여러개의계층으로이루어진드라이버사이에새로운드라이버를끼워넣을수있다. 거의모든하드웨어장치는그것을지원하기위한드라이버체인이존재한다. 가장낮은계층의드라이버는하드웨어장치와버스를직접처리하고, 가장높은계층은데이터를구조화한다. 무슨말인가하면윈도우의드라이버는여러개의층으로되어있으며, 층사이에 원하는드라이버를끼워넣을수있다. 그리고드라이버들은체인으로묶여있고그 체인이있음으로해서제어를쉽게하고개발자의수고를덜수있다. 이그림을필터드라이버를형상화한그림이다. i8042prt라는드라이버가가장상위에있으며그체인으로밑에여러개의드라이버들이묶여있는것이보인다. 가장아래에있는낮은계층의드라이버는하드웨어장치와버스를직접처리하며, 가장높은계층은데이터를구조화한다. 필터드라이버를더세부적으로나눌수있다.

16 Function Device Object 를기준으로위에있는것들을 Upper Filter Driver 이며아래에있는것들은 Lower Filter Driver 라한다. Class Filter Driver 는같은종류의디바이스를망라하는드라이버라할수있다. 예를들면 Keyboard 는그타입이여러가지가있는데 PS/2 라던지 USB 같은것을말한다. 이렇게묶여있을경우에는어떤종류던지간에제어가가능하다. Device Filter Driver 는특정 Device 에만설치가되는필터드라이버를말한다. 예 를들어 USB 로 Printer 를사용하고있을때이프린터드라이버에만설치가되는 것이 Device Filter Driver 이다. 드라이버가디바이스에종속된다고생각하면쉽다. Bus Filter Driver 는 USB 같은특정버스드라이버에대해필터링하는드라이버 이다. ii. IRP 윈도우프로그래밍은메시지구동방식이라는것을알고있을것이다. 윈도우프로그램은사용자가특정작업 ( 마우스클릭, 키보드입력, 메뉴선택등 ) 을하게되면그것에해당하는윈도우메시지라는것이발생하며윈도우에서는해당메시지를현재활성화되어있는프로그램의메시지큐에집어넣게된다. 그럼프로그램은메시지큐에서메시지를가져와서적절한처리를하게되는것이다. 드라이버역시이와비슷한동작을한다. 드라이버는로딩이성공적으로이루어지면할당된메모리에대기하고있다가자신이컨트롤하고있는디바이스에

17 특정한요청이왔을때윈도우에서보내주는요청정보를토대로적절한동작을하게된다. 이때윈도우프로그램이특정메시지를처리하기위해해당메시지값과그에관련된정보들이들어있는 MSG라고하는구조체를파라미터로받아처리하듯드라이버역시이와같은특정요청에관련된정보들을함수의파라미터로받게된다. 이러한정보들을담은정의된구조체가바로 IRP 이다. 필터드라이버와하드웨어가통신을할때 I/O Manager 에서는 IRP 를만들게된다. 이 IRP는여러가지정보를담고있으며해당드라이버의위에서아래로아래에서위로정보가이동하게된다. 이때필터드라이버는그정보가내려올때필터링하는방법과정보가올라올때필터링하는방법중하는방법중선택하여프로그래밍할수있다. 위에서말했던것처럼필터드라이버는 IRP라는메시지와비슷한방식으로동작한다고말했었다. 아래에있는그림들은프로그래밍시에사용되는 IRP 이다. 처리루틴에서는자신이원하는 IRP가들어왔을때루틴이동작하게된다. 이 IRP들을통해 APP와통신을하거나, 다른드라이버로부터받은요청을처리하거나통신을하거나할수있게된다.

18 // major funciton 설정 for( i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++ ) { pdrvobj->majorfunction[ i ] = IrpSkip; } pdrvobj->majorfunction[ IRP_MJ_READ ] = KeyReadRoutine; pdrvobj->driverunload = DriverUnload; IRP 에정의되어있는 MajorFuction 의개수는 27 개이고이중에프로그래머가원 하지않는 IRP 가발생했을때 IrpSkip 을하여해당 IRP 를다음드라이버에게보 내는작업을하게된다.

19 위코드가그러한동작을하는코드이다. 그리고내가원하는 IRP_MJ_READ 처리 루틴은따로만들어서이러한 IRP 가발생했을때 KeyReadRoutione 이라는루 틴이동작하는것이다. 위코드가 IRP_MJ_READ 라는 IRP 가발생했을때동작하는루틴이다. 이챕터는 KernelMode 에서 Keyboard Hooking을위해쓰여진글이지만이글을보고는절대로만들수가없다. 사실 Keyboard Filter 드라이버를만들기위해서는많은지식과정보가필요하며따로 KernelMode 프로그래밍에대한공부도해야하기때문이다. DDK 를사용하여프로그래밍하기때문에선수학습이많이요구된다. 필터드라이버는아주방대한영역이고본문서에서다루기에는그범위가초과되는바이정도로만마치도록하겠다. 혹시이글을보고 Keyboard Filter Driver 에관심이생긴다면 Devpia 드라이버마을을방문해보기바란다. C. DKOM(Direct Kenel Object Manipulation) 커널은실행중인프로세스나드라이버, 포트들의정보를커널객체에저장하여작성하며커널객체는프로세스리스트와드라이버리스트를이중연결리스트를이용하여관리한다. 이중연결리스트값을수정하면프로세스와드라이버를숨길수있다. 커널은 EPROCESS 객체를생성하여프로세스를관리하는데 EPROCESS 객체의멤버 중 ActiveProcessLinks 는연결리스트구조체이다. 이멤버를사용하여프로세스들은 서로연결되어있다.

20 그림처럼숨길프로세스는자기를가리키게하고앞뒤의프로세스의연결리스트를조 작하는것만으로도간단히숨길수있다. EPROCESS 구조체를 WinDBG를이용해서본그림이며 LIST_ENTRY에 FLINK와 BLINK의값들이들어있다. 위의값을받아와서조작함으로써원하는결과를얻을수있다. 위기능은원하는프로세스를숨기는기능을하는데혼자서는동작할수가없다. 왜냐하면자신이숨길프로세스가뭔지모르기때문이다. 위의코드가동작하는이유는자신의 APP를숨기기위해서인데숨길 APP는 UserMode 에서돌아가는 RootKit 이기때문이다. APP에서드라이버를로딩하며드라이버에게자신의프로세스이름을알려줄수있어야한다. APP가로딩이된후자신의 PID를알아내어드라이버에게전달하면효과적으로숨길수있다. while( bprocessfound ) { bprocessfound = Process32Next( hsnapshot, &ProcessEntry32 ); tempprocessname = ProcessEntry32.szExeFile; processname = tempprocessname;

21 if(!strcmp( tempprocessname, processname ) ) { CloseHandle( hsnapshot ); char *ndatacopy = new char[ sizeof( int ) + 1 ]; sprintf( ndatacopy, "%d", ProcessEntry32.th32ProcessID ); ndata = new BYTE[ 5 ]; for( int i = 0; i < 5; i ++ ) { ndata[ i ] = ( BYTE )ndatacopy[ i ]; } return ndata; } } 위와같은코드로원하는프로세스의 ID 를얻을수있다. 그정보를로드한드라이버 에게전달하면드라이버파일이효과적으로프로세스를숨기는것을확인할수있을 것이다. 5. 결론 DLL Injection 이나자료에나오진않았지만 SSDT 후킹은이제는유행이되어버렸다. 인터넷에서검색만하면엄청나게쏟아져나오는자료에본문서가아니더라도원하기만하면쉽게자료를찾아볼수있을것이다. 포털사이트에가서 DDL Injection을쳐보기만해도알수있을것이다. 하지만그렇다고해도이런기술들이쉽다는것이아니다. 이기술들은수많은고수들이날을새가며끼니를잊어가며파헤쳐서얻은취약점들이고이런것을공부한다는것은고수들만큼은아니더라도많은선행학습이있어야한다. DDL Injection 하나하려고해도아니 API를이용해전역후킹을해보려해도 C와 API 그리고 DLL에대해서이해를하고있어야하며이는스크립트키드들이나이제막프로그래밍을시작한사람들이하기에는좀어려운기술들이다. 요즘보안상황을보자면보안툴과해킹툴이서로비슷한기능을많이사용하고있다는 것을알게될것이다. 보안툴은해킹툴을없애기위해 SSDT, DKOM, DLL Injection 을 사용하고해킹툴은말할것도없다. 점차둘간의벽이사라지고있는것이다. 둘은비슷

22 한기술을사용하고비슷한기능을갖기때문에누가먼저시스템에둥지를트느냐가승부에관건이되어가고있다. 루트킷이먼저올라왔다면보안소프트웨어를못올라오게막고보안소프트웨어는또그반대가되어가고. 나중에올라온쪽은먼저올라온것을탐지하거나 Kill 하기가점점어려워지고있는상황이다. 왜냐하면둘다 Ring Level 0에서동작을하기때문이다. 예전에는 UserMode에서동작하는툴들이대부분이었을지도모른다. 하지만지금은아니다. 물론 DLL Injection도강력한기술이다. 탐지하기가쉬운것도아니고찾았다고해도수정하기가어렵다. 하지만그것이 Kernel Mode로넘어간다면더욱어려워진다. DKOM같은경우는직접커널오브젝트를수정하여버리며 SSDT도비슷한기능을하고있다. 그래서보안툴도비슷한기술을기반으로제작하여루트킷에대항하고있다. 점점해킹툴과보안툴간에격차가없어지는것이다. 루트킷을만들던도중에 VMM(Virtual Machine Mnitor) 이라는것을보게되었다. 많이들사용하는 VM_WARE 라고생각하면쉬울것이다. 예전부터사용되던기술인데리소스를효과적으로사용하기위해개발되었던기술이다. 알겠지만 VM_WARE는하드웨어와운영체제사이에위치하며하드웨어에대한리소스를가상화하는기술이다. 갑자기이걸왜말하냐하냐면가상화를사용하는루트킷이있기때문이다. 가상화는이미흔한이야기가되어있다. 엔터프라이즈급에서는이미많이사용하고있으며은행은말할것도없고학교들도점차사용을하기시작했다. 하지만현재대부분의보안제품으로는이기술을사용하는루트킷은탐지하기가거의불가능하다. 루트킷이 VM을만들어거기서동작하게된다면윈도우아키텍쳐상 KernelMode 보다권한이더높다. 그렇다면탐지가아주어려워지게되는것이다. 실제로도몇개의루트킷이이기술을사용하고있다. CPU에서제공하는가상화기능을이용하는것은단지루트킷의은닉기술중의하나뿐이며가상화외에도루트킷의은닉기술은상당히많다. 문제는이중알려지지않은은닉기술인데이는존재의유무조차모르고있다고한다. 그런데전통적인 (?) 기술을사용하는루트킷조차제대로탐지를못하고있는실정이라한다. 루트킷을안전하고완벽하게제거하는기술영역도지속적인연구가계속필요하다.

23 6. 참고자료 DevPia(Driver 마을 ) HybTech MSDN 윈도우를위한차세대통합드라이버개발모델 (WDF) 윈도우커널조작의미학 (RootKit) Os를관통하는프로그래밍의원리 드라이버개발자를위한윈도우파일시스템

목차 1. 트로이목마 (Trojan) 웜 (Worm) 루트킷 (RootKit) 실제악성코드샘플분석결과...38

목차 1. 트로이목마 (Trojan) 웜 (Worm) 루트킷 (RootKit) 실제악성코드샘플분석결과...38 시중악성코드의유형과패턴분석및 리버싱툴을이용한샘플코드분석결과보고 작성자 : 배건규 (muckmock@nate.com) 최성훈 (kimjinyoo@hotmail.com) 윤정현 (aljad2000@gmail.com) 조성은 (jose84@nate.com) 최인희 (selene85@hanmail.net) 06 Nov. 2009 목차 1. 트로이목마 (Trojan)...01

More information

Content 1. DLL? 그게뭐야?

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

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

<C1A4C8B8BFF8C6F2B0A15FB1E2BCFAB9AEBCAD5F444B4F4D5FC0CCB5BFBCF62E687770>

<C1A4C8B8BFF8C6F2B0A15FB1E2BCFAB9AEBCAD5F444B4F4D5FC0CCB5BFBCF62E687770> DKOM을이용한은닉기법 이동수 alonglog@is119.jnu.ac.kr 개 요 유저모드에서프로세스나디바이스드라이버등을확인할수없도록만드는기법중하나가커널 Hooking과 DKOM 기법이있다. DKOM 기법은 Hooking과다르게커널개체를직접변경한다. 이는 Hooking보다훨씬강력하고탐지가힘들다. 이문서에서는 DKOM에대해서다룰것이다. DKOM 기법을통해다양한효과를얻을수있다.

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

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

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

DLL Injection

DLL Injection DLL Injection REVERSING CreateRemoteThread() 를중점으로 DLL Injection 에대하여설명 [ Rnfwoa] 김경민 목차 목차 1 개요 1 2 DLL ( Dynamic Link Library ) 2 3 AppInit_DLLs 3 4 원격스레드생성 5 4.1 핸들확보 6 4.2 공간할당 7 4.3 DLL Name 기록 8

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

AhnLab_template

AhnLab_template Injection 기법및분석법 공개버전 2014.04.17 안랩시큐리티대응센터 (ASEC) 분석팀차민석책임연구원 Contents 01 02 03 04 05 06 07 왜 Injection 기법인가? Injection 기법배경지식 DLL Inection 기법 Code Injection 기법유용한도구 Case study 맺음말및과제 01 왜 Injection 기법인가?

More information

1. Execution sequence 첫번째로 GameGuard 의실행순서는다음과같습니다 오전 10:10:03 Type : Create 오전 10:10:03 Parent ID : 0xA 오전 10:10:03 Pro

1. Execution sequence 첫번째로 GameGuard 의실행순서는다음과같습니다 오전 10:10:03 Type : Create 오전 10:10:03 Parent ID : 0xA 오전 10:10:03 Pro #44u61l5f GameGuard 에대한간단한분석. By Dual5651 (http://dualpage.muz.ro) 요약 : 이문서는분석자의입장에서 GameGuard의동작을모니터링한것에대한것입니다. 실제 GameGuard의동작방식과는다소차이가있을수있습니다. 이문서에등장하는모든등록상표에대한저작권은해당저작권자에게있습니다. 1. Execution sequence

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

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

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

[ 마이크로프로세서 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

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

Sharing Memory Between Drivers and Applications

Sharing Memory Between Drivers and Applications 본컬럼에대한모든저작권은 DevGuru에있습니다. 컬럼을타사이트등에기재및링크또는컬럼내용을인용시반드시출처를밝히셔야합니다. 컬럼들을 CD나기타매체로배포하고자할경우 DevGuru에동의를얻으셔야합니다. c DevGuru Corporation. All rights reserved 기타자세한질문사항들은웹게시판이나 support@devguru.co.kr 으로 문의하기바랍니다.

More information

Microsoft Word - [Windows Hook] 6.HideProcess.doc

Microsoft Word - [Windows Hook] 6.HideProcess.doc Hide Process Last Update : 2007 년 6 월 11 일 Written by Jerald Lee Contact Me : lucid78@gmail.com 본문서는 SSDT Hook을이용한프로세스를감추는기술에대해정리한것입니다. 제가알고있는지식이너무짧아가급적이면다음에언제보아도쉽게이해할수있도록쓸려고노력하였습니다. 기존에나와있는여러훌륭한문서들을토대로짜집기의형태로작성되었으며기술하지못한원문저자들에게매우죄송할따름입니다.

More information

슬라이드 1

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

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

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

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

11장 포인터

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

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

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

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

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

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

More information

슬라이드 1

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

More information

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash

More information

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63> SAM4S Printer Driver Installer 달리명시하지않은한, 인쇄또는복사된문서는통제하지않는문서임 목 차 1. 1. WINDOWS DRIVER INSTALLER 설치 설치...... 2 2. 프린터추가...... 5 3. 프린터제거...... 19 4. 프린터추가 / 제거선택...... 21 5. 프로그램추가 / 제거...... 21 SHC- 11-01-

More information

Sharing Memory Between Drivers and Applications

Sharing Memory Between Drivers and Applications 본컬럼에대한모든저작권은 DevGuru에있습니다. 컬럼을타사이트등에기재및링크또는컬럼내용을인용시반드시출처를밝히셔야합니다. 컬럼들을 CD나기타매체로배포하고자할경우 DevGuru에동의를얻으셔야합니다. c DevGuru Corporation. All rights reserved 기타자세한질문사항들은웹게시판이나 support@devguru.co.kr 으로 문의하기바랍니다.

More information

악성코드분석보고서 (Lucci.exe) 작성자 : 김진태 1

악성코드분석보고서 (Lucci.exe) 작성자 : 김진태 1 악성코드분석보고서 (Lucci.exe) 작성자 : 김진태 1 Index 1. 개요... 3 1. 1 악성코드의제작... 3 1. 2 악성코드의전체적인동작... 3 1. 3 악성코드의분석절차... 4 1. 4 악성코드의파일정보... 4 2. 분석... 5 2. 1 정적분석... 5 2. 2 동적분석... 6 2. 3 상세분석... 10 2. 3.1 Lucci.exe...

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

요약문 1. 연구제목 DLL Injection 을이용한 KeyLogger 제작및탐지방법연구 2. 연구목적및필요성인터넷의발달과컴퓨터의성능과보안프로그램성능과기술이발전함에따라악성코드의기술과기교도많이발전하였다. 그리고악성코드의기술도늘어남에따라초보자도쉽게사용이가능해지고본인이모르

요약문 1. 연구제목 DLL Injection 을이용한 KeyLogger 제작및탐지방법연구 2. 연구목적및필요성인터넷의발달과컴퓨터의성능과보안프로그램성능과기술이발전함에따라악성코드의기술과기교도많이발전하였다. 그리고악성코드의기술도늘어남에따라초보자도쉽게사용이가능해지고본인이모르 캡스톤보고서 Dll Injection 을이용한 KeyLogger 제작및탐지방법분석 팀명 : 4 조 Guardian 지도교수 : 양정모교수님 조장 : 조민제 (4년) 신예원 (4년) 이상철 (4년) 유명곤 (4년) 2013.5 중부대학교정보보호학과 요약문 1. 연구제목 DLL Injection 을이용한 KeyLogger 제작및탐지방법연구 2. 연구목적및필요성인터넷의발달과컴퓨터의성능과보안프로그램성능과기술이발전함에따라악성코드의기술과기교도많이발전하였다.

More information

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

개요 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

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

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

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

vRealize Automation용 VMware Remote Console - VMware

vRealize Automation용 VMware Remote Console - VMware vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

최종보고서 SMT (System Monitoring Tool : 시스템자원모니터링툴 ) 팀명 : Point of C++ 팀장 : 한소라 (11학번) 팀원 : 이재익 (09학번) 한우영 (09학번) 김은지 (11학번) 지도교수 : 양정모교수님 - 1 -

최종보고서 SMT (System Monitoring Tool : 시스템자원모니터링툴 ) 팀명 : Point of C++ 팀장 : 한소라 (11학번) 팀원 : 이재익 (09학번) 한우영 (09학번) 김은지 (11학번) 지도교수 : 양정모교수님 - 1 - 최종보고서 SMT (System Monitoring Tool : 시스템자원모니터링툴 ) 팀명 : Point of C++ 팀장 : 한소라 (11학번) 팀원 : 이재익 (09학번) 한우영 (09학번) 김은지 (11학번) 지도교수 : 양정모교수님 - 1 - 목 차 1. 서론 1-1. 개발배경및목적... 3 1-2. 연구내용... 3 1-3. 개발환경... 3 2.

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 - 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

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

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Outline Network Network 구조 Source-to-Destination 간 packet 전달과정 Packet Capturing Packet Capture 의원리 Data Link Layer 의동작 Wired LAN Environment

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

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기 Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

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

1

1 초보자를위한 Kernel based windows rootkit -1 부 - By Beist Security Study Group (http://beist.org) 요약 : 이문서는윈도우 2000/XP/2003 환경에서의커널루트킷에대한개요와윈도우와하드웨어간의커넥션에대해다룹니다. 그리고실습을위해커널레벨에서 CR0 레지스터를변경하여 SSDT 의 read-only

More information

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

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

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

리눅스 프로세스 관리

리눅스 프로세스 관리 프로세스 (Process) Process 프로그램이나명령어를실행하면메모리에적재되어실제로실행되고있는상태를의미 이러한프로세스들은프로세스가시작하면서할당받는프로세스식별번호인 PID(Process ID), 해당프로세스를실행한부모프로세스를나타내는 PPID(Parent Process ID), UID 와 GID 정보를통해해당프로세스가어느사용자에속해있는지, 프로세스가파일에대해갖는권한및프로세스가실행된터미널,

More information

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

<41736D6C6F D20B9AEBCADBEE7BDC42E687770> IDA Remote Debugging 2007. 01. 이강석 / certlab@gmail.com http://www.asmlove.co.kr - 1 - Intro IDA Remote debugging에대해알아봅시다. 이런기능이있다는것을잘모르시는분들을위해문서를만들었습니다. IDA 기능중에분석할파일을원격에서디버깅할수있는기능이있는데먼저그림과함께예를들어설명해보도록하겠습니다.

More information

03_queue

03_queue Queue Data Structures and Algorithms 목차 큐의이해와 ADT 정의 큐의배열기반구현 큐의연결리스트기반구현 큐의활용 덱 (Deque) 의이해와구현 Data Structures and Algorithms 2 큐의이해와 ADT 정의 Data Structures and Algorithms 3 큐 (Stack) 의이해와 ADT 정의 큐는 LIFO(Last-in,

More information

Motor Control Solution

Motor Control Solution Motor Control Solution 마이크로칩에서는 Stepper, Brushed-DC, AC Induction, Switched Reluctance Brushless-DC 등모터종류별특성및동작방식에맞는 MCU가준비되어있어, User가 Motor를이용한 Application을개발하려할때에가장적절한 Solution을제시해줄수있다. 이중 FFT나 PID연산등정밀한모터제어를실행하기위해꼭해주어야하는빠른

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

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - o8.pptx 메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)

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

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

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

THE TITLE

THE TITLE Android System & Launcher Team 8 목차 Android 1) Android Feature 2) Android Architecture 3) Android 개발방법 4) Android Booting Process Dalvik 1) Dalvik VM 2) Dalvik VM Instance Application 1) Application Package

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

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요 . 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

More information

- 코드로읽는리눅스디바이스드라이버 강남용

- 코드로읽는리눅스디바이스드라이버 강남용 - 코드로읽는리눅스디바이스드라이버 - 2011.1.3 강남용 (nykang@ssu.ac.kr) 커널스레드 스레드란? 스레드종류 도우미인터페이스 연결리스트 해시리스트 작업큐 통지연쇄 완료인터페이스 kthread 도우미 오류처리지원 ( 원시코드살펴보기 ) 2 스레드란? - 하나의프로그램내에서실행되는함수를의미 - 일반적인프로세서의경우는한순간에하나의함수만실행되지만,

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

Abstract View of System Components

Abstract View of System Components 운영체제실습 - Synchronization - Real-Time Computing and Communications Lab. Hanyang University jtlim@rtcc.hanyang.ac.kr dhchoi@rtcc.hanyang.ac.kr beespjh@gmail.com Introduction 조교소개 이름 : 임정택 Tel : 010-4780

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

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

기술문서 LD_PRELOAD 와공유라이브러리를사용한 libc 함수후킹 정지훈

기술문서 LD_PRELOAD 와공유라이브러리를사용한 libc 함수후킹 정지훈 기술문서 LD_PRELOAD 와공유라이브러리를사용한 libc 함수후킹 정지훈 binoopang@is119.jnu.ac.kr Abstract libc에서제공하는 API를후킹해본다. 물론이방법을사용하면다른라이브러리에서제공하는 API들도후킹할수있다. 여기서제시하는방법은리눅스후킹에서가장기본적인방법이될것이기때문에후킹의워밍업이라고생각하고읽어보자 :D Content 1.

More information

11장 포인터

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

More information

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode] Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환 취약점분석보고서 [Photodex ProShow Producer v5.0.3256] 2012-07-24 RedAlert Team 안상환 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 2. Photodex ProShow Producer Buffer Overflow 취약점분석... 2 2.1. Photodex ProShow Producer Buffer

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

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

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

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

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

MF5900 Series MF Driver Installation Guide

MF5900 Series MF Driver Installation Guide 한국어 MF 드라이버설치설명서 사용자소프트웨어 CD-ROM................................................ 1.................................................................... 1..............................................................................

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

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 - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드] 리눅스 설치 Vmware를 이용한 Fedora Core 8 설치 소프트웨어실습 1 Contents 가상 머신 실습 환경 구축 Fedora Core 8 설치 가상 머신 가상 머신 가상 머신의 개념 VMware의 설치 VMware : 가상 머신 생성 VMware의 특징 실습 환경 구축 실습 환경 구축 Fedora Core 8 설치 가상 머신의 개념 가상 머신 (Virtual

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

JDBC 소개및설치 Database Laboratory

JDBC 소개및설치 Database Laboratory JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information