연구보고서 작성 취약점분석을위한퍼징 (Fuzzing) 부경대학교 CERT-IS 김연재, 최종학, 신명재 이인회, 이재호, 최자운, 박지환 * 본문서는대학정보보호동아리연합회 (

Size: px
Start display at page:

Download "연구보고서 작성 취약점분석을위한퍼징 (Fuzzing) 부경대학교 CERT-IS 김연재, 최종학, 신명재 이인회, 이재호, 최자운, 박지환 * 본문서는대학정보보호동아리연합회 ("

Transcription

1 연구보고서 작성 취약점분석을위한퍼징 (Fuzzing) 부경대학교 CERT-IS 김연재, 최종학, 신명재 이인회, 이재호, 최자운, 박지환 * 본문서는대학정보보호동아리연합회 ( 의지원을얻어작성된문서입니다. Page 1

2 Table of Content 1. 서론 Fuzzing 이란? 연구의배경및목적 Web Fuzzing 웹퍼징이란무엇인가? 공격의유형 a. XSS (Cross Site Script) b. Injection SQL, parameter c. Directory Traversal d. 서버인증우회 유형별퍼징방법 a. XSS, Injection SQL, parameter b. Directory Traversal c. 서버인증우회 Network Protocol Fuzzing 네트워크프로토콜퍼징이란무엇인가? 네이트온프로토콜 a. Notification Server 인증 b. 쪽지전송 c. Session Server 인증 d. 대화 퍼징방법 a. 메시지조작 b. fuzznateon.py 구현 File Format Fuzzing 파일퍼징이란무엇인가? 퍼징방법 a. FileFuzzer 설계 b. FileFuzzer 구현 c. Info.fdb 분석 Memory Fuzzing 메모리퍼징이란무엇인가?...26 Page 2

3 5.2. 메모리구조 a. Microsoft Windows 메모리모델 퍼징방법 a. 메모리퍼징을위한방법들 b. 메모리퍼징도구 결론 연구결과 기대효과및의견 Reference...34 Page 3

4 1. 서론 1.1. Fuzzing 이란? 영단어 fuzzing 을사전에서찾으면다음과같다. n., (pl. ~) U 잔털, 솜털, ( 섬유등의 ) 보풀 the fuzz on a peach 복숭아의잔털 구어 고수머리 ; 상고머리 흐림 사진등 미 속어 마약 vi., vt. 보풀이나다 [ 나게하다 ], 부드럽게되다 [ 만들다 ], 훨훨날아흩어지다, 어물거리다, 애매하게하다 ; 미 속어 술취하다 Wisconsin-Madison 대학의연구프로젝트에서처음사용되었으며, 정보보안에서의퍼징은사전에정의되어있지않다. 영단어 fuzzing 으로부터애플리케이션에입력된데이터가보풀을일으키어어떠한특정상태를만든다는의미로해석할수있다. 그래서일반적으로비정상적인데이터를애플리케이션에전달하여에러를유도하는방법을퍼징이라말한다. 비슷한의미의용어로 Blackbox Testing, Taint Analysis, BVA(Boundary Value Analysis) 등이있다. 이중 에서퍼징을가장잘설명하는용어는 Taint Analysis 이다. 이분석방법은오염된데이터가애플리케이 션에입력되어서애플리케이션에서의처리단계별로데이터들을오염시킨다는개념이다. Page 4

5 그림 1: 퍼징의역사 1.2. 연구의배경및목적 웹과스마트폰의보급이활발해지면서수많은웹 / 응용애플리케이션들이범람하게되었고사용자들은어떠한의심도없이애플리케이션들을사용하고있다. 그래서네트워크 / 시스템해킹이주를이루던과거와는달리, 최근의정보보안은웹 / 응용애플리케이션의취약점을파고드는공격이대세가되었다. 그러나많은애플리케이션개발자들은자신이만든프로그램에어떠한취약점이있는지를완전히파악하지못하고있어서사용자들은여러위험에노출되었거나이미피해를입고있다. 다음의 [ 그림 2] 는트위터와국내보안커뮤니티인버그트럭과보안인, 그리고개발자커뮤니티인 all of software 에서 퍼징을이용하여보안취약점을점검해본적이있으신가요? 라는질문으로설문을한결 과이다. Page 5

6 그림 2: 퍼징에대한설문결과 ( 설문결과에서퍼징을이용하여취약점을점검해본적이없다고응답한비율이전체의 79% 를차지하 고있다. 퍼징은소스검증과더불어취약점을찾는강력한기법중의하나이지만, 아직국내에서는많이 이용되는것같지는않다. 개발자입장에서는퍼징을이용하여개발중인애플리케이션의취약점을미리찾아예방하는게아주중요하다. 이로소제품의신뢰도를잃지않을수있기때문이다. 그리고퍼징에대하여연구함으로써시스템의메모리구조와각종파일들의포맷구조, 애플리케이션의구동과정등을상세히알수있다. 그래서우리는웹, 네트워크, 파일포맷, 메모리에대한퍼징을연구하고가능하면직접퍼징툴을만들어서취약점을점검하는것을목표로삼았다. Page 6

7 2. Web Fuzzing 2.1. 웹퍼징이란무엇인가? 퍼징은공격대상시스템의보안취약점을탐지하기위하여목표애플리케이션에대한다양한입력값을전송하는결함주입에근거한다. 이기술을사용할때목표애플리케이션의입력값검증을우회하며동시에보안취약점을탐지할수있도록입력값을변경하는것이중요하다. 퍼징기술은 SQL injection, Cross Site Scripting(XSS) 등과같은보안취약점의유형을탐지한다 공격의유형 2.2.a. XSS (Cross Site Script) XSS는다른사용자의정보를추출하기위해사용되는공격기법이다. 간단히예를들면게시판이나검색부분, 즉사용자의입력을받아들이는부분에스크립트코드를필터링하지않음으로써공격자가스크립트코드를실행할수있게되는것이다. 그림 3: XSS 공격기법 [ 그림 3] 은실제 XSS 취약점을이용하여다른사용자의쿠키값을훔쳐그사용자로로그인하는과정을 순차적으로표현한것이다. Page 7

8 2.2.b. Injection SQL, parameter SQL Injection은웹페이지를통해입력된파라미터값을이용하여쿼리를재구성하는방법이다. 많은웹페이지들은사용자나프로그램이생성한파라미터값을이용해쿼리를만들고실행하는데, 이때정상적인값이아닌파라미터값이입력될때비정상적인쿼리가실행되며, 따라서원하지않는결과가나올수있다. String param1 = request.getparameter ("user_id"); String param2 = request.getparameter ("user_pass"); rs = stmt.excutequery ("SELECT count(*) FROM user_t WHERE userid = '"+param1+"' AND userpw = '"+param2+"'"); rs.next (); if (rs.getint (1) == 1) { // 로그인성공 } else { // 로그인실패 } 예제 1: SQL Injection에취약한로그인인증코드 [ 예제 1] 에서입력된데이터가 ' or 1=1 'or 1=1 이라면, 1=1 은무조건참이므로 SQL 문은항상참이 다. 2.2.c. Directory Traversal 경로를거슬러올라가서관리자가유저에게보일생각이없는파일이나디렉터리를열람하거나실행 시키는공격이다. [ 그림 4] 처럼 httpd.conf 파일에서 Indexes 옵션을제거하지않고디렉토리리스팅을허용할경우, 사 용자에게노출되서는안될파일들이노출된다. Page 8

9 그림 4: Directory Traversal 2.2.d. 서버인증우회 인증설정중에 Limit 속성으로메소드를제한할수있는데, 일반적으로 GET 메소드와 POST 메소드만을설정한다. 이럴경우인증이 GET, POST 메소드만적용이되므로그이외의메소드를사용하면인증을우회할수있게된다. 메소드종류 OPTIONS - 서버에서어떤메소드를지원하는지볼수있다. HEAD - 웹서버의 HEADER을보여준다. PUT - 지정된 URL에전달된자료를저장한다. DELETE - 지정된리소스를삭제한다. TRACE - 클라이언트가송신한 request를그대로리턴한다. Page 9

10 그림 5: GET -> OPTIONS 메소드로로그인인증우회 2.3. 유형별퍼징방법 2.3.a. XSS, Injection SQL, parameter (1) 해당서버의 80 번포트에접속하여 form 태그를 parsing 하여전송할파라미터의이름 (Parameter_name) 과목적지페이지 (DEST), 전송방법 (GET/POST) 을찾아낸다. <FORM method=[get/post] action=[dest]> <input type=text name=[parameter_name]> </FORM> 예제 2: 페이지내의 FORM 태그 (2) GET 방식의경우는아래와같은형식으로패킷을생성한뒤목적지페이지를 GET 방식으로요청한 다. 각파라미터의값은 sql 이나 >XSS 와같은에러가발생할만한데이터를넣는다. GET DEST?[Parameter_name]= sql /HTTP/1.1 HOST : DEST 예제 3: GET 방식요청 Page 10

11 (3) POST 방식은미리생성한아래와같은형식으로패킷을생성하며, [BODY] 부분의길이를구하여 Content-Length 에명시하고 POST 방식을써서웹서버에 DEST 페이지를요청한다. 각파라미터의값은 GET 방식처럼 sql 이나 >XSS 와같은에러가발생할만한데이터를넣는다. <HEADER> POST DEST HOST : DEST Content-Length : 00 <BODY> [Parmeter_name]= sql... 예제 4: POST 방식요청 (4) 요청후전송되어온패킷을분석하여 HTTP 헤더가 200 OK 를포함하면적절한에러핸들링이된 것이고 400, 403, 500 에러를포함하면취약점이있다고판단한다. 혹은응답받은페이지내에 XSS 와같은삽입한데이터가포함되면 XSS 취약점이있다고판단한다. 2.3.b. Directory Traversal 요청홈페이지에서보내온데이터를분석하여 [ 표 1] 의문자열을포함하면취약점이있다고판단한다. 혹은 Google 에서해당홈페이지의 URL 을 intitle 옵션으로 [ 표 1] 의문자열을검색하여판단할수있다. 웹서버 IIS Tomcat Apache 기타 디렉토리노출패턴 Parent Directory, Directory Listing Directory Listing Index of/ 표 1: 웹서버별디렉토리노출패턴 Page 11

12 2.3.c. 서버인증우회 (1) POST, GET 이외의메소드 (PUT, OPTIONS, HEAD 등 ) 로해당페이지를요청해본다. (2) 요청후전송되어온패킷을분석하여 HTTP 헤더가 200 OK 를포함하면해당메소드로요청시인 증우회가가능할것으로판단한다. Page 12

13 3. Network Protocol Fuzzing 3.1. 네트워크프로토콜퍼징이란무엇인가? 네트워크프로토콜퍼징은서버의데몬을대상으로하여조작된패킷을전송하는것을말한다. 서버의데몬은소켓을통하여클라이언트와통신을하는어플리케이션이다. 클라이언트에서서버로보낸메시지는데몬에서받아서파싱을한후, 연산처리가된다. 그리고필요에따라서데몬은다시클라이언트에게메시지를보내기도한다. 클라이언트 서버데몬 GET / HTTP%n%n%n%n1.1 파싱 연산 응답 그림 6: 클라이언트와서버데몬 데몬역시사람이만든어플리케이션인데다, 클라이언트로부터받은메시지를파싱하는과정, 즉사용 자의입력이라는과정을거치므로취약점이존재할수있다. 그렇기때문에네트워크프로토콜퍼저는 클라이언트의입장에서메시지를조작하여소켓을통해서버로전송한다 네이트온프로토콜 3.2.a. Notification Server 인증 네이트온은 Update Server, Dispatch Server, Notification Server 와 Session Server 이렇게 4개의서버를통해 TCP 통신이이루어진다. Update Server 는네이트온메신저가실행될때처음접속되는서버로, 메신저의버전확인과업데이트를처리한다. Dispatch Server 는네이트온의서버에과부하가걸리는것을방지하기위해사용자들을분산시키는역할을한다. 실제로네이트온에접속하기위해서는 Notification Server( 이하 NS) 를통해야한다. NS 를통해인증을받기위해서는먼저 ssh 티켓을받아야한다. t/login.do?id=[id]&pwd=[passwd] 으로접속하면응답메시지로받을수있다. Page 13

14 메시지 LSIN [ 트렌젝션번호 ] [id] [ticket] [ 기타정보들 ]\r\n GLST [ 트렌젝션번호 ] [ 그룹번호 ]\r\n LIST [ 트렌젝션번호 ]\r\n INFY [ 트렌젝션번호 ] [ 친구 id] [ 친구상태 ]\r\n PING [ 트렌젝션번호 ]\r\n 설명사용자인증그룹리스트요청친구리스트요청접속중인친구알림연결상태확인 표 2: 인증에필요한메시지들 [ 표 2] 는인증을위해서버와클라이언트간에주고받는메시지들이다. 이들메시지는 TCP 소켓으로 통신이이루어진다. LSIN 은실제사용자인증을위한메시지이다. 파라미터로트렌젝션번호, 사용자계정의 ID, 방금전 받은 ssh 티켓, 인코딩방식정보, 클라이언트의빌드넘버, 문자열인코딩방식정보등이넘겨진다. 인 증이제대로이루어지면아래와같은응답메시지를받을수있다. LSIN [ 트렌젝션번호 ] [ 클라이언트 ID] [ 실명 ] [ 대화명 ] [ 휴대폰번호 ] [unknown] [SMS 인증코드 ] [ 미니홈 ID] [unknown] [unknown] [unknown] [unknown] [ 사용자계정 ID] [ ] [unknown] [ 통서비스사용여부 ] [unknown] [ 국가 ] [unknown] [unknown] [unknown]\r\n 예제 5: NS에접속하기위한 LSIN 메시지 GLST 는그룹리스트를요청하는메시지이고, LIST 는친구리스트를요청하는메시지이다. 사실상그 룹리스트는필요없고, 유저리스트를받아야실제로인증이이루어진다. 인증이이루어지면, INFY 응답 메시지를받을수있다. 인증이완료되면서버는클라이언트에게 10 초주기로 PING 메시지를보낸다. 서버가 PING 메시지를 8 번보내는동안클라이언트에서응답이없으면, 서버가강제로소켓을닫아서연결이끊어지게되어있 다. Page 14

15 3.2.b. 쪽지전송 메시지 CMSG [ 트렌젝션번호 ] N [ 쪽지의길이 ]\r\n [ 친구의계정 ID]\r\n IMSG\r\n title:[ 쪽지의제목 ]\r\n from:[ 사용자의계정 ID]\r\n ref:[ 친구의계정 ID]\r\n data:[ 현재연도, 날짜, 시간 ]\r\n session_id:\r\n uuid:\r\n contenttype:\r\n length:[ 쪽지내용의길이 ]\r\n font-name:\r\n font-style:\r\n font-size:\r\n font-color:\r\n ref-uuid:\r\n cookie:\r\n event:nw\r\n \r\n [ 쪽지의내용 ]\r\n 설명 쪽지전송 표 3: 쪽지전송에필요한 CMSG 메시지 쪽지를전송하기위해서는 [ 표 3] 과같이 CMSG 메시지 NS 소켓으로보낸다. 쪽지의전송이성공적으 로이루어지면, 아래와같은응답메시지를받을수있다. CMSG [ 트렌젝션번호 ]\r\n 예제 6: 쪽지전송이성공적일때의응답메시지 Page 15

16 3.2.c. Session Server 인증그룹 / 유저리스트를받아오거나쪽지를보내는것은 NS에서처리되지만, 대화와파일전송은 Session Server( 이하 SS) 에서통신이이루어진다. SS에접속하려면 NS에서 RESS 메시지를전송해 야한다. RESS [ 트렌젝션번호 ]\r\n 예제 7: NS 에접속하기위한 RESS 메시지 [ 예제 7] 과같이 RESS 메시지를 NS 로보내면서버로부터 RESS 메시지를응답받는다. 메시지 RESS [ 트렌젝션번호 ] [ip] [port] [ticket]\r\n 설명 사용자인증 표 4: 서버로부터응답받은 RESS 메시지 서버로부터응답받은 RESS 메시지에는 [ 표 4] 처럼 SS 의 IP 와 Port, 대화에필요한티켓이있다. 3.2.d. 대화 SS 는사용자와사용자사이에세션을연결해주는역할을한다. 다른사용자와대화 (Chatting) 를하기 위해서는이 SS 에접속하고상대방을초대해서세션을연결해야한다. 메시지 ENTR [ 트렌젝션번호 ] [account] [nickname] [ticket] [ 기타정보들 ]\r\n CTOC [ 트렌젝션번호 ] [target] [unknown] [payload 길이 ]\r\n INVT [account] [ip] [port] [ticket]\r\n MESG [ 트렌젝션번호 ] [state] [ 메시지 ]\r\n QUIT [ 트렌젝션번호 ]\r\n 설명대화세션입장데이터전송대화세션초청메시지전달대화세션종료 표 5: 대화에필요한메시지들 Page 16

17 먼저, 사용자는 ENTR 메시지로대화세션에입장을해야한다. 이때필요한것이 RESS 메시지로부터받은티켓이다. 대화세션에입장했으면상대방을초청하기위해서 CTOC 메시지로상대방에게 INVT 데이터를전송한다. CTOC 메시지는상대방에게데이터를전송하는메시지로데이터의길이를알아야한다. INVT 는메시지가아니라데이터이다. 그래서트렌잭션번호는필요없다. INVT 데이터에도 RESS 메시지로부터받은티켓이필요하다. 상대방과대화세션이연결되면 MESG 메시지로메시지를전달할수있고, QUIT 메시지로대화세션을 닫을수도있다 퍼징방법 3.3.a. 메시지조작 메시지의조작, 즉패킷의조작은여러가지방법으로이루어진다. (1) 단순히메시지의순서를무작위로섞거나 null 문자를삽입하거나 % 인코딩을이용하기도한다. 이러한방법은흔히 TCP 나 UDP 윗단의애플리케이션계층의프로토콜을퍼징할때이용된다. 실상, 대부분의서버데몬들은어플리케이션층에서동작하므로이러한방법들만으로도퍼징의효과를볼수있다. TCP, UDP 소켓을이용하여퍼징을할때는퍼징의대상으로삼을서버의프로토콜에대한이해정도가가장중요하다. 프로토콜의이해가없으면퍼징은무의미하기때문이다. 예를들어서서버의데몬은 MESG 라는메시지만을파싱하여연산처리를한다고가정을한다면, 퍼저가아무리수많은종류의패킷을보내더라도 MESG 라는단어가포함되어있지않아서데몬은이패킷을무시할수있기때문이다. (2) 더깊이들어가기위해서는로우소켓을이용하여 TCP, UDP 헤더를직접조작하거나 IP 계층까지도조작하여퍼징을해야한다. 로우소켓을이용하는방법은 TCP, UDP 소켓을이용하는방법보다더까다롭고네트워크장치를직접다루기때문에 OS의권한문제도해결해야하지만, 어플리케이션계층의프로토콜이아닌패킷그자체를직접퍼징하기때문에더좋은결과를낼수있다. 하지만이방법은프로토콜퍼징이라기보다는네트워크자체에대한퍼징으로간주해야한다. 3.3.b. fuzznateon.py 구현 #!/usr/bin/python # -*- coding:utf-8 -*- import sys Page 17

18 import urllib import getpass from protofuzz import * ns_host = " " ns_port = 5004 print "==================================================================" print "" print "[+] Fuzzing NateOn" print "[+] This script was written by 6l4ck3y3 (@6l4ck3y3)" print "" account = raw_input ("[+] account: ") passwd = getpass.getpass ("[+] passwd: ") target = raw_input ("[+] target: ") print "" print "==================================================================" print "" # Authentication for NS u = urllib.urlopen (" + account + "&pwd=" + passwd) ns_ticket = u.read ().split ('\r\n')[1] ns = protofuzz (ns_host, ns_port) ns.sendmsg ("LSIN 0 " + account + " " + ns_ticket + " SSL") ns.sendmsg ("LIST 0") # Authentication for SS ns.sendmsg ("RESS 0") recv = ns.getmsg ().split ('\r\n')[0].split (' ') ss_host = recv[2] ss_port = recv[3] ss_ticket = recv[4] ss = protofuzz (ss_host, int (ss_port)) # Chat ss.sendmsg ("ENTR 0 " + account + " %00 %00 " + ss_ticket + " UTF8 P") ns.fuzzmsg ("CTOC 0 " + target + " A 4096\r\nINVT " + account + " " + ss_host + " " + ss_port + " " + ss_ticket) Page 18

19 ss.close () ns.close () 예제 8: fuzznateon.py [ 예제 8] 은분석한네이트온프로토콜을바탕으로 whitespace 나 \r\n 등을기준으로메시지내용을 쪼개어서각데이터에에러가발생할만한쓰레기데이터를삽입하는방법을이용하는예다. 그림 7: CTOC + INVT 에대한퍼징수행 [ 예제 8] 에서는 CTOC 메시지와 INVT 데이터조합에대해서만퍼징을시도하지만, 통신에이용되는모 든메시지에대해서 fuzzmsg() 메소드를적용할수있다. Page 19

20 그림 8: 퍼징중에소켓에러발생 Fuzzer 를돌리면서서버로부터에러코드가반환되거나소켓에러가발생하면퍼징이성공하였다고판 단한다. 그러나그것이바로취약점이라고단정할수는없다. 네이트온의경우는메시지가부정확하다 고서버가판단하면자동으로소켓을닫아버리기때문에그런경우에도소켓에러가발생한다. Page 20

21 4. File Format Fuzzing 4.1. 파일퍼징이란무엇인가? 문서편집기, 동영상재생기, 압축프로그램, 토렌트클라이언트등등의많은애플리케이션들은파일을읽고파싱하고메모리에읽어들여서처리한다. 각파일들은자체의포맷을가지고있고애플리케이션은그포맷에맞추어서파싱을한다. 이런과정에서애플리케이션은취약점을가질수있다. 포맷만봐서는정상적인파일이지만, 그내부에에러를발생할만한쓰레기코드가숨을수있다. 파일퍼징은이러한취약점을유발할수있는쓰레기코드가존재할수있는지를검사하는작업이다 퍼징방법 4.2.a. FileFuzzer 설계 그림 9: FileFuzzer Prototype [ 그림 9] 와같이 FileFuzzer 는여러개의프로세스를만들고그자식프로세스들은 User_dll.dll 의몇 가지의함수로파일을변경하면서타겟프로세스를디버거로동작함으로써예외상황의발생을감지하 고예외가발생하였을경우그때의파일과정보를저장한다. Page 21

22 4.2.b. FileFuzzer 구현 int main( int argc, char **argv ) { if( argc < 2 ) return 0; FILE *fs; fs = fopen( argv[1], "r" ); char buf[ 64 ]; fgets( buf, 1024, fs ); printf( buf ); } fclose( fs ); return 0; 예제 9: test.exe 퍼징프로그램을테스트하기위해 [ 예제 9] 와같은프로그램을설계한다. 물론의도적으로 buf 의크기 는 64byte 로, 읽어들이는크기는 1024byte 로설정하여버퍼오버플로우가일어날수있도록한다. 그림 10: test.exe 파일이정상적이라면 [ 그림 10] 처럼동작을할것이다. extern "C" declspec(dllexport) int ChangeFile() { /* at this time you can change file for attack */ /* return value is used for time to die */ Page 22

23 /* if return 0, fuzzer is end other is wait return value and die */ HANDLE hattackfile; DWORD dwwrited; char data[] = " "; hattackfile = CreateFileA( attackfilepath, GENERIC_READ GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL FILE_FLAG_WRITE_THROUGH, NULL ); } SetFilePointer( hattackfile, 0, 0, FILE_END ); WriteFile( hattackfile, data, sizeof(data)-1, &dwwrited, NULL ); CloseHandle( hattackfile ); if( count-- ) return (2000); return 0; 예제 10: Default_dll.dll 그리고 [ 예제 10] 과같이 dll 에함수를 export 한다. 반환되는값은프로그램을실행시키고얼마나대기 할것인가를나타낸다. 따라서 2 초동안대기하고그시간안에예외가발생하지않는다면정상실행으 로판단하고종료시킨다. count 는초기값이 5 로정해져있고저값으로인해서 5 번만반복하고종료한다. 그림 11: FileFuzzer 실행화면 Page 23

24 [ 그림 11] 처럼퍼저가실행되면 info.fdb 라는파일이생성되고 info.fdb 에간단한정보가기록된다. typedef struct _SAVE_INFO{ char dllinfo[ MAX_PATH ]; unsigned int info_size; } SAVE_INFO, *PSAVE_INFO; typedef struct _DEFAULT_INFO{ unsigned int result; unsigned int file_size; } DEFAULT_INFO, *PDEFAULT_INFO; typedef struct _CUSTOM_INFO{ int cbsize; } CUSTOM_INFO, *PCUSTOM_INFO; 표 6: info.fdb 의구조 info.fdb 의구조는 [ 표 6] 과같다. CUSTOM_INFO 값은 dll 에서제공해야지만, 제공하지않을것이기때 문에그크기는항상 0 으로정해져있다고볼수있다. 4.2.c. Info.fdb 분석 그림 12: HexEditor 이용해서본 info.fdb 의내용의일부 [ 그림 12] 는 Filefuzzer 가수행되고생성된 info.fdb 의데이터이다. 0x104 에서 dll 이름이끝나고, 그다음값인 info_size의값이항상 8byte 라는것을확인할수있다. 그다음은 DEFAULT_INFO 구조체이고, 첫번째값인 result 는 0xC 로서메모리접근위반으로프로그램이죽었다는것을알수있다. 그리고그때의파일크기는 0x B ( = 75d ) 이고, 이파일은 DEFAULT_INFO 구조체가끝나고 CUSTOM_INFO.cbSize 다음에위치해있다. 따라서 75byte 만큼의크기라는것을알수있다. Page 24

25 "Hello World!!" 예제 11: 에러를발생할만한데이터 따라서 [ 예제 11] 의데이터로파일을만들어준후실행을해보면 [ 그림 13] 과같은결과를볼수있다. 그림 13: 에러발생확인 Page 25

26 5. Memory Fuzzing 5.1. 메모리퍼징이란무엇인가? 프로토콜이나파일포맷과달리좀더기본적인소스코드에초점을맞춘작업이며, 보통소스검증과병행되는작업이다. Taint Analysis라고도불리우고, 데이터통신보다타겟프로그램의메모리에존재하는변이되어생성되는데이터들에초점을맞추어작업을진행해나가야한다 메모리구조 5.2.a. Microsoft Windows 메모리모델 그림 14: Windows 메모리맵 Windows 95 이래로 32-bit 플랫폼에서는총 4GB 의주소메모리를제공하고있다. 이 4GB 의메모리는 Kernel 영역과 User 영역으로나뉘어져있으며일반적으로 3:1 의비율로 3GB 는 User 영역, 1GB 는 Page 26

27 Kernel 영역으로나누어진다. 이에대한자세한설정은 boot.ini 에서설정이가능하다. 이러한메모리에는각각의권한이존재하는데, Windows 에서는다음과같은권한을제공한다. PAGE_EXECUTE PAGE_EXECUTE_READ PAGE_EXECUTE_READWRITE PAGE_NOACCESS PAGE_READONLY PAGE_READWRITE PAGE_GUARD 5.3. 퍼징방법 5.3.a. 메모리퍼징을위한방법들 메모리의퍼징을위해서크게두가지의방법론이존재한다. 변조된반복문의삽입 (Mutation Loop Insertion) 그림 15: Method: Mutation Loop Insertion Page 27

28 스냅샷과변조된영역의복구 (Snapshot Restoration Mutation) 그림 16: Method: Snapshot Restoration Mutation 메모리에서의퍼징을위해서다음과같은단계가필요하다. 디버거 (debugger) 변수들의초기화 프로세스를디버거에붙임 후킹을설정 Entry point에서의메모리상태를저장 프로세스에존재하는함수인자값들의메모리접근을모니터하고주소를저장 프로그램이종료지점에도달했을경우저장된상태로되돌림 virtual_alloc() 을이용하여 fuzz 문자열이나버퍼의공간을할당한다. 함수인자값들을 fuzz data로변경한다. 스택을관찰한다. 기다린다... [ 그림 17] 은 Fuzzing Routine 을개략적으로나타낸그림이다. Page 28

29 그림 17: Fuzzing Routine 5.3.b. 메모리퍼징도구 (1) Linux 의 /dev/urandom 을이용하여임의랜덤값으로퍼징을수행할수있다. (2) python 을이용한프레임워크인 PyDbg 로퍼징을수행할수있다. #!c:\python25\python.exe from pydbg import * from pydbg.defines import * import time import random snapshot_hook = 0x restore_hook = 0x snapshot_taken = False hit_count = 0 Page 29

30 address = 0 def set_entry(pydbg): return 1 def handle_bp(pydbg): global snapshot_hook, restore_hook global snapshot_taken, hit_count, address if pydbg.first_breakpoint: return DBG_CONTINUE print "ws2_32.recv() called from thread % (pydbg.dbg.dwthreadid, \ pydbg.exception_address) context_dump = dbg.dump_context(stack_depth=4, print_dots=false) print context_dump if pydbg.exception_address == snapshot_hook: hit_count += 1 print "hit the snapshot address" start = time.time() print "taking snapshot..." pydbg.process_snapshot() end = time.time() - start print "snapshot took: %.03f seconds\n" % end if hit_count >= 1: if address: print "freeing last chunk" print "%08x" % address pydbg.virtual_free(address, 1000, MEM_DECOMMIT) print "allocating memory for mutated data" address = pydbg.virtual_alloc( None, 1000, MEM_COMMIT, PAGE_READWRITE) print "Allocated 1000 bytes at: %08x" % address return DBG_CONTINUE def handle_av (pydbg, dbg, context): Page 30

31 ''' As we are mucking around with process state and calling potentially unknown subroutines, it is likely that we may cause an access violation. We register this handler to provide some useful information about the cause. ''' crash_bin = utils.crash_binning.crash_binning() crash_bin.record_crash(dbg) print crash_bin.crash_synopsis() dbg.terminate_process() if name == ' main ': dbg = pydbg() dbg.set_callback(exception_breakpoint,handle_bp) dbg.set_callback(exception_access_violation, handle_av) found_target = False for (pid, proc_name) in dbg.enumerate_processes(): #print proc_name.lower() if proc_name.lower() == "nateonmain.exe": found_target = True print "[+] Found Target:\"%s" %proc_name.lower() break if found_target: dbg.attach(pid) print "[+] Attached to :" + str(pid) dbg.bp_set(snapshot_hook) dbg.bp_set(restore_hook) print "[+] Hooks set, entering debug loop..." dbg.debug_event_loop() else: print "Target not found\n" 예제 12: PyDbg (3) 보안연구자들은 2007 년에드라이버의많은취약점들을발견했다. 그중하나가 IOCTL 드라이버 Page 31

32 핸들러의취약점이다. 이문제는디바이스드라이버의 IOCTL 핸들러내부에충분하지못한주소공간검 사에의해발생한다. 이러한취약점들을퍼징을통해서점검할수있다. 현재까지 ioctlizer, Win32 IOCTL fuzzer 들이공개되었다. HANDLE WINAPI CreateFileW( LPCTSTRlpFileName, DWORD dwdesiredaccess, // GENERIC_READ(0x ) or GENERIC_WRITE(0x ) DWORD dwsharemode, // Set to 0 LPSECURITY_ATTRIBUTES lpsecurityattributes, // Set to NULL DWORD dwcreationdisposition, // OPEN_EXISTING(0x3) DWORD dwflagandattrinutes, // Set to 0 HANDLE htemplatefile // Set to NULL ); 예제 13: CreateFileW 와입력될파라미터들 BOOL WINAPI DeviceIoControl ( HANDLE hdevice, // CreateFileW 에서구한 Handle DWORD dwiocontrolcode, // IOCTL code LPVOID lpinbuffer, // buffer DWORD ninbuffersize, LPVOID lpoutbuffer, DWORD noutbuffersize, LPDWORD lpbytereturned, LPOVERLAPPED lpoverlapped // Set to NULL ); 예제 14: DeviceIoControl 과입력될파라미터들 CreateFileW 를이용하여 kernel32.dll 의핸들을구하고, DeviceIoControl 를이용하여핸들을 IOCTL 아 래로보낸다. 해당작업을수행할디바이스에게 Device Driver 제어코드를직접전송한다. Page 32

33 6. 결론 6.1. 연구결과 퍼징은두가지형태로수행될수있다. 첫째는무작위랜덤으로값을애플리케이션에입력하는방법이다. 가장확실한방법이지만, 그만큼비효율적인방법이기도하다. 두번째는포맷에맞는데이터를부분씩수정하여애플리케이션에입력하는방법이다. 이방법은앞의방법보다효율적이지만, 놓칠수있는패턴이존재할수있고, 우선적으로포맷에대한분석이수행되어야한다. 애플리케이션에에러가발생할만한데이터가입력되면데이터처리중에에러가발생한다. 애플리케이션은시스템에에러메시지를보낼것이고, Fuzzer는이에러메시지를얻어서퍼징의성공여부를판단한다. 퍼징의자세한결과를확인하기위해서는시스템의메모리를덤핑하여서분석해볼수있다. 만약애플리케이션이서버와클라이언트로구성된다면, 클라이언트측에 Fuzzer를, 서버측에 Analyser 를두어서퍼징을수행하는환경을구축할수도있을것이다 기대효과및의견 서론에서밝혔듯이국내에서의퍼징의활용도는저조한편이었다. 그래서인지퍼징에대한자료가국내에너무부족하였다. 대부분의자료들은영문문서이고, 공개된퍼징툴들역시외국에서개발된것들이대부분이었다. 그래서이문서가퍼징 (Fuzzing) 에처음입문하는이들에게자그마한도움이되기를바란다. 그리고원래우리동아리가퍼징을주제로프로젝트를시작한것이아니었다. 처음에는 CUDA를이용한병렬화와암호공격 이주제였다. 그러나 CUDA를이용하기위한환경을구축할수없어서난관에봉착하였고 KUCIS 측에지원이가능한가에대하여문의를하였지만, 하드웨어에대한지원이어려운형편이었다. 그래서늦게나마 취약점을찾기위한 fuzzing 기술의구현 이라는주제로변경하게되었다. 앞으로는하드웨어에대한지원이확충되어서이후다른동아리에서도작업환경때문에프로젝트주제가변경되는일이없어졌으면한다. Page 33

34 7. Reference Windows Internals 5th Edithon - Russinovich, Solomon Gray hat Python -Justin Seitz Fuzzing, Brute Force Vulnerability Discovery - Michael Sutton, Adam Greene, Pedram Amini Attacking Antivirus - Feng Xue, 번역 Vangelis 열혈강의웹헵킹과방어 - 최경철 Taint analysis for vulnerability discovery - passket Fuzzing for software vulnerability discovery - Toby Clarke Building Secure Software using Fuzzing and Static Code Analysis - Anna-Maija Juuso In Memory Fuzzing :: - jrichards Automated Penetration Testing with White-Box Fuzzing :: - John Neystadt MSDN Library :: Page 34

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

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

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

More information

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E > 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 소켓 (Socket) (1/2) Socket 이란? 서버와클라이언트가서로특정한규약을사용하여데이터를전송하기위한방식 서버와클라이언트는소켓연결을기다렸다가소켓이연결되면서로데이터를전송 현재네트워크상에서의모든통신의근간은 Socket 이라할수있음 Page 2 1 소켓 (Socket) (2/2)

More information

Observational Determinism for Concurrent Program Security

Observational Determinism for  Concurrent Program Security 웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture4-1 Vulnerability Analysis #4-1 Agenda 웹취약점점검 웹사이트취약점점검 HTTP and Web Vulnerability HTTP Protocol 웹브라우저와웹서버사이에하이퍼텍스트 (Hyper Text) 문서송수신하는데사용하는프로토콜 Default Port

More information

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

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

More information

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

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

슬라이드 1

슬라이드 1 파일 I/O 와디렉터리컨트롤 1 목차 기본적인파일처리 파일검색 파일열기 & 닫기 파일읽기 & 쓰기 삭제, 복사, 이동 (?) 파일의시간정보얻기 파일특성정보얻기 파일포인터 directory 생성 & 삭제 경로설정 경로얻기 2 파일생성 / 열기 HANDLE CreateFile ( LPCTSTR lpfilename, DWORD dwdesiredaccess, 파일이름

More information

Chapter #01 Subject

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

More information

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

BMP 파일 처리

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

More information

0. 들어가기 전

0. 들어가기 전 컴퓨터네트워크 14 장. 웹 (WWW) (3) - HTTP 1 이번시간의학습목표 HTTP 의요청 / 응답메시지의구조와동작원리이해 2 요청과응답 (1) HTTP (HyperText Transfer Protocol) 웹브라우저는 URL 을이용원하는자원표현 HTTP 메소드 (method) 를이용하여데이터를요청 (GET) 하거나, 회신 (POST) 요청과응답 요청

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

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

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 Template

PowerPoint Template 설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet

More information

제목 레이아웃

제목 레이아웃 웹해킹이라고무시하는것들보소 2017.07.10 RUBIYA805[AT]GMAIL[DOT]COM SQL Injection 끝나지않은위협 2017.07.10 RUBIYA805[AT]GMAIL[DOT]COM Who am I 정도원 aka rubiya Penetration tester Web application bughuter Pwned 20+ wargame @kr_rubiya

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

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름 EDB 분석보고서 (016.01) 016.01.01~016.01.31 Exploit-DB(http://exploit-db.com) 에공개된취약점별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 016 년 1 월에공개된 Exploit-DB 의분석결과, SQL Injection 공격에대한취약점보고개수가가장많았습니다. 분석된 SQL Injection

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버

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

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

Microsoft PowerPoint - 04-UDP Programming.ppt

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

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow

More information

Microsoft PowerPoint 웹 연동 기술.pptx

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

More information

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

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 03 장 도메인네임시스템과주소 패밀리 (IPv4-IPv6 서비스 ) 1 목차 제 3 장도메인네임시스템과주소패밀리 3.1 도메인네임주소를숫자주소로매핑하기 3.2 IP 버전에무관한주소-범용코드의작성 3.3 숫자주소에서도메인네임주소획득하기 2 getaddrinfo() 를활용한주소 범용 (Generic) 코드 주소범용 (Generic) 코드란? 주소버전

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

untitled

untitled Oracle DBMS 로그인의접근제어우회 취약점분석 2006. 2. 9 인터넷침해사고대응지원센터 (KISC) 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다. 개요 o 2005년이후 Oracle Critical Patch Update(CPU) 는 Oracle사제품대상으로다수의보안패치및보안패치와관련된일반패치를발표하는주요수단임

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

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

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

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

More information

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

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

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

PowerPoint Presentation

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

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

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

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

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

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

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

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

More information

11장 포인터

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

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

(SW3704) Gingerbread Source Build & Working Guide

(SW3704) Gingerbread Source Build & Working Guide (Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

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

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용 Oracle hacking 작성자 : 임동현 (ddongsbrk@naver.com) 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용 Skill List 1. Oracle For Pentest 1. Find TNS Listener (Default 1521 port) (with nmap or amap) 2. Get the

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

vi 사용법

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

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

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W Research & Technique Apache Tomcat RCE 취약점 (CVE-2019-0232) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE-2019-0232 취약점은 Windows 시스템의 Apache Tomcat 서버에서 enablecmdlinearguments

More information

chap 5: Trees

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

More information

<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

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

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

More information

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode] TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 TCP Server Program Procedure TCP Server socket() bind() 소켓생성 소켓번호와소켓주소의결합 listen() accept() read() 서비스처리, write()

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

SMB_ICMP_UDP(huichang).PDF

SMB_ICMP_UDP(huichang).PDF SMB(Server Message Block) UDP(User Datagram Protocol) ICMP(Internet Control Message Protocol) SMB (Server Message Block) SMB? : Microsoft IBM, Intel,. Unix NFS. SMB client/server. Client server request

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

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

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라. 기술문서 14. 11. 10. 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 dokymania@naver.com I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라. Exploit 5 마. 피해 6 III. 결론 6 가. 권고사항 6 I. 소개 가. 역자 본문서는

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

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

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

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 HTML5 웹프로그래밍입문 부록. 웹서버구축하기 1 목차 A.1 웹서버시스템 A.2 PHP 사용하기 A.3 데이터베이스연결하기 2 A.1 웹서버시스템 3 웹서버의구축 웹서버컴퓨터구축 웹서버소프트웨어설치및실행 아파치 (Apache) 웹서버가대표적 서버실행프로그램 HTML5 폼을전달받아처리 PHP, JSP, Python 등 데이터베이스시스템 서버측에데이터를저장및효율적관리

More information

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770> 개 요 홈페이지 해킹 현황 및 사례 홈페이지 개발시 보안 취약점 및 대책 주요 애플리케이션 보안 대책 결 론 참고자료 [부록1] 개발 언어별 로그인 인증 프로세스 예제 [부록2] 대규모 홈페이지 변조 예방을 위한 권고(안) [부록3] 개인정보의 기술적 관리적 보호조치 기준(안) [부록4] 웹 보안관련 주요 사이트 리스트 7000 6,478 6000 5000

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

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

일반적인 네트워크의 구성은 다음과 같다

일반적인 네트워크의 구성은 다음과 같다 W5200 Errata Sheet Document History Ver 1.0.0 (Feb. 23, 2012) First release (erratum 1) Ver 1.0.1 (Mar. 28, 2012) Add a solution for erratum 1, 2 Ver 1.0.2 (Apr. 03, 2012) Add a solution for erratum 3

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

Windows 8에서 BioStar 1 설치하기

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

More information

03_queue

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

More information

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc 분석보고서 이동현 (dhclub20@naver.com) SK Infosec Co., Inc MSS 사업본부침해대응팀모의해킹파트 Table of Contents 1. 개요... 3 1.1. 배경... 3 1.2. 목적... 3 2. 공격분석... 4 2.1. Cookie Injection... 4 2.2. Cookie Injection의발생원인... 5 2.3.

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

Install stm32cubemx and st-link utility

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 WEB SERVER PORTING 1 Jo, Heeseung 웹서버포팅 HBE-SM5-S4210 를임베디드웹서버로사용할수있도록웹서버를올리는작업 임베디드서버에널리쓰이는웹서버들중 GoAhead 라는웹서버를포팅 CGI 프로그램을이용하여웹에서 HBE-SM5-S4210 의 LED, 7- Segment, TextLCD 를제어실습 2 Goahead webserver 소스를다운받거나제공된

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

EDB 분석보고서 (04.06) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

EDB 분석보고서 (04.06) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time- EDB 분석보고서 (04.06) 04.06.0~04.06.0 Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 04년 06월에공개된 Exploit-DB의분석결과, SQL 공격에대한보고개수가가장많았습니다. 이와같은결과로부터여전히 SQL 이웹에서가장많이사용되는임을확인할수있습니다.

More information

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation 1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP

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

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

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

<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

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

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 소켓 2 1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.

More information

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx 과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch20. XMLHttpRequest 2014년 1학기 Professor Seung-Hoon Choi 20 XMLHttpRequest XMLHttpRequest 객체 자바스크립트로 Ajax를이용할때사용하는객체 간단하게 xhr 이라고도부름 서버

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

슬라이드 1

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

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

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

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

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

hd1300_k_v1r2_Final_.PDF

hd1300_k_v1r2_Final_.PDF Starter's Kit for HelloDevice 1300 Version 11 1 2 1 2 3 31 32 33 34 35 36 4 41 42 43 5 51 52 6 61 62 Appendix A (cross-over) IP 3 Starter's Kit for HelloDevice 1300 1 HelloDevice 1300 Starter's Kit HelloDevice

More information