DBPIA-NURIMEDIA

Size: px
Start display at page:

Download "DBPIA-NURIMEDIA"

Transcription

1 452 정보과학회논문지 : 소프트웨어및응용제 35 권제 7 호 (2008.7) 프로그램의구조와상수값을이용하는바이너리실행파일의차이점분석 (Analyzing Differences of Binary Executable Files using Program Structure and Constant Values) 박희완 최석우 서선애 한태숙 (Heewan Park) (Seokwoo Choi) (Sunae Seo) (Taisook Han) 요약바이너리코드의차이점분석은보안패치와같은매우유사한두프로그램사이의차이점을구별해주는방법이다. 이전의연구에서는분석을위하여프로그램의구조또는명령어의세부사항만을각각이용하였다. 프로그램의구조를이용하는차이점분석방법은제어흐름의변화는잘탐지해낼수있지만, 버퍼크기변화와같은상수값의변화는잘찾아낼수없다. 명령어기반의차이점분석방법은세부적인값의변화는발견할수있으나명령어재배치와같은컴파일러에의해생성되는불필요한차이점을결과로낸다는단점이있다. 이연구에서는프로그램구조를이용한비교분석방법에상수값의변화를함께추적할수있는방법을제안하고바이너리차이점분석도구를구현하였다. 구현된도구는윈도보안업데이트를이용하여평가하였다. 실험결과제안된방법은구조적인차이점분석과같이빠른속도로구조적인변화를찾아낼뿐아니라상수값의변화까지추적할수있다는것을보였다. 키워드 : 정적분석, 역공학, 이진코드분석, 프로그램차이점분석 Abstract Binary diffing is a method to find differences in similar binary executables such as two different versions of security patches. Previous diffing methods using flow information can detect control flow changes, but they cannot track constant value changes. Diffing methods using assembly instructions can detect constant value changes, but they give false positives which are due to compiling methods such as instruction reordering. We present a binary diffing method and its implementation named SCV which utilizes both structure and value information. SCV summarizes structure and constant value information from disassembled code, and matches the summaries to find differences. By analyzing a Microsoft Windows security patches, we showed that SCV found necessary differences caused by constant value changes which the state-of-the-art binary diffing tool BinDiff failed to find. Key words : static analysis, reverse engineering, binary code analysis, program difference analysis 본연구는지식경제부및정보통신연구진흥원의대학 IT연구센터지원사업의연구결과로수행되었음 (IITA-2008-C ) 비회원 : 한국과학기술원전산학전공 hwpark@compiler.kaist.ac.kr 학생회원 : 한국과학기술원전산학전공 swchoi@compiler.kaist.ac.kr 비회원 : 한국과학기술원전산학전공박사후연구원 saseo@compiler.kaist.ac.kr 종신회원 : 한국과학기술원전산학전공교수 han@cs.kaist.ac.kr 논문접수 : 2007년 11월 19일심사완료 : 2008년 5월 30일 Copyright@2008 한국정보과학회ː개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지 : 소프트웨어및응용제35권제7호 (2008.7) 1. 서론최근들어두개의유사한바이너리실행파일의차이점을분석하는도구가많이사용되고있다. 바이너리실행파일의차이점을분석하는목적은악성코드 (malware) 분석 [1], 운영체제보안패치 (security patch) 분석, 그리고프로그램도용 (code theft detection) 탐지등이있다. 악성코드의분석은악성코드에의해감염된파일과정상적인파일을비교하여악성코드의특징을발견하여악성코드를탐지하고감염된파일을치료하는데이용하기위한것이다. 운영체제보안패치의경우대부분의경우패치를통해수정한내용이공개된다. 그러나수정내용의공지없이패치만이루어지는

2 프로그램의구조와상수값을이용하는바이너리실행파일의차이점분석 453 경우가많다. 또한좀더구체적인변경내용을분석하여운영체제회사에서지원하지않는운영체제의버전에대한상용패치를구현해야할경우가존재한다. 이런경우에두바이너리실행파일의차이점을분석해야할필요가있다. 코드도용탐지를위해서도실행파일의차이점분석이이용된다. GPL(GNU Public License) 와같은오픈소스 (open source) 프로그램은소스코드를자유롭게사용할수있지만해당소스코드를이용한저작물에대해서도소스코드를공개할것을요구한다. 많은경우오픈소스코드를이용해서프로그램을만들지만소스를공개하지않는다. 바이너리코드의비교는이런경우에도코드의도용을탐지할수있는근거자료를얻는데사용될수있다 [2,3]. 바이너리실행파일의차이점을분석하는것은단지기계어명령어수준에서차이점을보여주는것이아니다. 이방법은기계어명령어의차이점을분석하여소스코드에서의변화된부분을발견하려는목적을가지고있다. 소스코드는컴파일과정을통해서분석에유용한함수또는변수의이름이나타입과같은정보들을잃게된다. 따라서기계어코드로부터소스코드의차이점을역으로찾아가는과정은소스코드가컴파일되었을때에도기계어코드에여전히남아있는제한된정보를이용하여분석을수행해야하기때문에분석의정확성이떨어지게된다. 하지만바이너리파일의차이점분석도구는보안업데이트와같은작은변화만있는매우유사한코드사이에서분석을하게되며, 대부분같은운영체제와같은컴파일러를가정하고있기때문에분석의정확성을높일수가있다. 기존의바이너리실행파일차이점분석방법은크게두가지로나눌수있다. 첫째는바이너리코드의명령어단위에서비교를시작하여차이점을요약해가며전체프로그램단위까지분석하는상향식분석 (bottom-up analysis) 방법이있다. 둘째는바이너리코드전체를함수단위로나누고함수단위에서비교를시작하여명령어단위까지차이점을세분화하여분석하는하향식 (top-down analysis) 방법이다. 상향식분석방법은기계어명령의차이점과같은세밀한분석을할수있다. 반면소스코드에서는변화가없으나컴파일단계에서다른컴파일러를사용한다거나최적화기법을다르게적용함을통하여발생할수있는기계어코드에서만나타나는불필요한차이점을찾아내는문제점이있다. 예를들면컴파일러나최적화기법등을통해서명령어순서변환 (instruction reordering) 이나레지스터할당 (register allocation) 에의한차이가생기는경우에상향식분석방법은코드에변화가있다는불필요한결과를제공한다. 하향식분석방법은소스코드가컴파일되더라도바이너리실행파일에서프로그램구조는원래의것과큰차이가없다는것을이용하는방법이다. 두그래프사이의구조를직접비교할수도있지만시간이많이걸린다는단점이있기때문에일반적으로는프로그램구조정보를요약하여비교하게된다. 먼저함수단위로구조정보를요약하고, 두프로그램사이에원래같은함수라고여겨지는함수사이에매칭 (matching) 이이루어진다. 함수단위의매칭이끝나면, 기본블록 (basic block) 사이의매칭이이루어지고, 마지막으로명령어단위의차이까지분석하게된다. 이방법의단점은프로그램의구조정보만을이용하기때문에상수값 (constant value) 의변화와같은구조가변하지않는차이점은발견할수가없다는것이다. 또한, 구조요약정보만을이용하기때문에서로다른함수가같은요약정보를가지는부정확한분석결과를내는경우가생긴다. 본연구에서는프로그램구조정보와상수값을요약하여차이점을분석하는바이너리코드비교방법을제안하고, 제안된방법을실제바이너리코드비교에적용할수있도록구현한도구를소개한다. 본연구에서제안하는바이너리코드비교방법은기존에제안된프로그램구조정보의비교뿐아니라, 코드내의상수값의변화도추적할수있으므로, 기존의방법보다좀더세밀한분석을할수있다. 우리는제안된방법을기반으로 SCV라는바이너리코드비교분석도구를개발하였다. 이도구를실제 Microsoft Windows 원격실행취약점에대한보안패치 1) 에적용하여봄으로써개발된도구의실용성및기존연구방법과의차별성을보이고자한다. 논문의구성은다음과같다. 제2장에서는기존의연구에대해서설명한다. 제3장에서는본논문에서제안하는상수값과구조에기반을둔바이너리코드비교방법에대해설명한다. 제4장에서는개발된도구인 SCV를소개하고, 실제 MS 윈도보안패치에적용한결과를제시한다. 제5장에서는내용을요약하고앞으로할일에대해기술한다. 2. 관련연구 2.1 명령어기반비교방법 T. Sabin은그래프일치 (graph isomorphism) 를이용해서바이너리실행파일을비교하는알고리즘을제안하였다 [4]. 이방법은먼저디스어셈블러를이용하여바이너리실행파일의코드와데이타를분리하고, 코드를함수단위로분리한다. 함수는각명령어를노드 1) 보안패치 KB938827과 KB931906이다.

3 454 정보과학회논문지 : 소프트웨어및응용제 35 권제 7 호 (2008.7) (node) 로, 제어흐름을에지 (edge) 로하는그래프형태로표시된다. 두프로그램으로부터각각한개씩함수를선택하여두그래프사이의일치를계산하게된다. 함수에는진입지점 (entry point) 이한개이상존재하므로진입지점으로부터시작하여각노드의일치를비교한다. 노드의일치, 즉명령어의일치는기계어명령어코드 (opcode) 의비교를통해서이루어진다. 명령어코드는완전히일치하는의미를가진경우 (semantically equivalent), 의미가유사한경우, 완전히다른경우의세가지구분으로일치를계산한다. 두함수사이의비교는두개의큐 (queue) 를이용하는너비우선검색 (breathfirst-search) 방식을사용한다. 이방법은명령어의순서까지고려하는비교를하기때문에의미가같지만명령어의순서만바뀌었을때변경된부분으로인식하는단점이있다. 그리고함수대함수의비교를하는방법은제시되어있지만어떤함수들을선택하여비교를시작할지에대해서는제시하고있지않다. DarunGrim[5]( 이하다른그림 ) 은 eeye Digital Security에서개발한바이너리실행파일비교프로그램이다. 다른그림은기본블록부터비교를시작하고함수단위매칭으로비교를끝내는상향식분석방법을사용한다. 기본블록의비교는분기문 (branch instruction) 을제외한명령어코드의값의순서 (sequence) 에의해이루어진다. 따라서컴파일러에의한명령어선택과명령어순서에의해변경된부분까지차이점을지적하기때문에사용자가관심없어하는차이점을보여주는단점이있다. 2.2 구조정보를이용하는비교방법 T. Dullien은실행파일을코드의구조정보를바탕으로비교하는방법을제안하였다 [6]. 구조적인정보란각함수내의제어흐름그래프와함수호출에대한요약정보를의미한다. 이방법은명령어기반의비교방법보다빠른비교가가능하다는장점이있다. 또한명령어기반의비교방법이소스코드는같지만컴파일러에의한명령어재배치 (instruction reordering) 나레지스터할당 (register allocation) 에의해바이너리실행파일이변경된경우두파일이다르다는결과를나타내던단점을개선하였다. Dullien의연구에서는실행파일이패치등에의해변형될때변형된부분만찾기위하여바이너리파일을함수단위로분리하여비교한다. 구분된각함수는각각의어셈블리코드를고려하지않고제어흐름만을이용하여요약한후그래프동치관계를계산하여두바이너리를비교한다. T. Dullien과 R. Rolles는그래프제어흐름그래프기반비교기법을일반화하여 selector와 property 개념을도입하였다 [7]. Property를사용하여매칭대상범위 를좁히고, selector를사용하여매칭대상을선택한다. Property와 selector를어떻게정하느냐에따라서매칭알고리즘의속도와정확도에차이가생긴다. T. Dullien과 R. Rolles의연구는 BinDiff[8] 라는상용도구에구현되었다. 본연구에서제안하는바이너리비교방법론은구조적인비교부분에있어서이들의연구를바탕으로개발되었다. 3. 바이너리코드비교를위한알고리즘이장에서는바이너리코드차이점분석을위해우리가제안한방법을소개한다. 제안된바이너리코드차이점분석은기본적으로구조적인비교를바탕으로하고, 명령어수준의차이점까지비교해줄수있는상수단위비교를포함한다. 구조적인비교는프로그램을구성하는함수단위구조를우선비교하고, 함수의매칭이끝나면함수를구성하는기본블록단위의비교를수행한다. 함수매칭및기본블록매칭을위해서는각각을표현하는요약이필요하다. 함수나기본블록의비교를위해서사용되는요약이너무성글게될경우중요하지만작은변화를감지할수없게된다. 예를들면 KB ) 보안패치의경우구조적인정보가완전히일치하지만상수값은다르기때문에구조적인비교만을이용하는 BinDiff를통해서는패치후의실행파일에서어떤차이도발견할수없다 절에서이보안패치의비교에관해서자세히설명한다. 이런코드의차이점까지도감지해내기위해서우리는상수정보를각함수나기본블록의요약에포함하도록한다. 바이너리코드의구조적인정보를추출하기위해서우리는상용디스어셈블러인 IDAPro[9] 를사용한다. IDAPro는바이너리실행파일을디스어셈블하며, 어셈블리코드를함수단위로구분해주고, 함수간의호출관계및제어흐름그래프를생성한다. 이논문에서는 를프로그램으로, 를함수로, 를기본블록을나타내는기호로사용한다. 3.1 바이너리구조정보의요약 함수요약하기구조적인바이너리코드의차이점비교를위해서제일먼저함수정보를추출한다. 함수의정보를어떻게추출하느냐에따라매칭의정확도가결정된다. 매칭을빠르고효율적으로수행하기위해서함수를요약한정보를사용한다. 함수 에대하여, 함수의요약정보 는세정수의튜플 로나타나는데각각의정수는다음과같다. 2)

4 프로그램의구조와상수값을이용하는바이너리실행파일의차이점분석 455 그림 1 IDAPro로분석한한함수의제어흐름그래프 : 함수에포함된기본블록 (basic block) 의개수 : 함수에포함된기본블록간의연결선 (link) 의개수 : 함수에포함된함수호출 (function call) 의개수튜플내정수를가리키기위해서우리는 와같은표기법을사용한다. 예를들어 이라면, 이고 이다. 그림 1은 IDAPro 를이용해서구조가분석된함수의제어흐름그래프이다. 그림 1의바이너리코드는 5개의기본블록과 4개의블록간연결선, 그리고 2개의함수호출을가지고있다. 그림에나타난함수의 값은 (5,4,2) 이다 기본블록요약하기함수단위매칭이이루어지면, 매칭이이루어진각함수쌍들의명령어비교를수행해야한다. 이때, 비교는명령어단위로이루어지는것이아니고, 함수내의기본블록단위로수행된다. 각함수의기본블록들은제어흐름그래프를따라서표현되므로, 각기본블록의정보를적절히추출하면블록단위매칭이이루어질수있다. 기본블록매칭을위해서우리는두가지요약정보를사용한다. 첫번째는블록내의함수호출개수와함수내에서블록의위치를포함하는요약정보이고, 두번째는블록내의명령어종류를나타내는요약정보이 다. 기본블록 에대해서, 첫번째요약정보는 으로나타내고세개의정수로된튜플 로정의된다. 각정수의의미는다음과같다. : 함수의시작지점 (entry point) 에서기본블록에도달할때까지의최단거리를이루는블록의개수 : 기본블록에서함수의종료지점 (exit point) 에도달할때까지의최단거리를이루는블록의개수 : 기본블록에서의함수호출개수 정도의블록정보만을가지고도많은매칭을이룰수있지만, 이것만가지고정확한기본블록매칭이이루어지지않는경우가있다. 그런경우블록내명령어들을좀더자세히살펴야하는데그것을위해서우리가사용하는것은두번째블록요약정보인핑거프린트이다. 핑거프린트정의를위해서우리는 SPP(Small Primes Product) 알고리즘을사용한다. 정의 3.1 모든명령어집합 ; 모든소수들의집합 ; 각명령어를단하나의유일한소수에매핑하는함수 가주어졌을때, 명령어를위한 SPP 값은다음과같다. 위에정의된 SPP 를바탕으로기본블록의핑거프린트가정의된다. 어떤블록 이 의명령어들로만구성되어있다면, 기본블록의핑거프린트는 이라표시되고, 다음과같이정의된다. SPP 를이용해서블록비교를위한핑거프린트로사용하는이유는블록내명령어비교를쉽고빠르게수행할수있기때문이다. 주어진두개의기본블록에대해서, 만일두값이일치한다면기본블록은같은명령어들로구성되어있음을알수있고, 매칭이완성되게된다. SPP 알고리즘의결과로나온핑거프린트값은소수들의곱으로이루어져있기때문에소인수분해를통해서언제든지원본명령어집합을구할수있다는장점이있고, 명령어순서에상관없이명령어조합만동일하면항상같은핑거프린트값을가진다. 또한, 여러명령어들로이루어진기본블록을숫자하나로요약해서표현할수있기때문에기본블록과기본블록사이의비교를숫자의비교로바꿔치기함으로, 비교속도가빠르다는장점이있다. 3.2 상수정보의요약구조적비교의단점은함수와기본블록을제어흐름정보만을이용해서요약하기때문에버퍼사이즈의변

5 456 정보과학회논문지 : 소프트웨어및응용제 35 권제 7 호 (2008.7) 화와같은상수정보에대한변화를추적할수없다는것이다. 따라서우리는구조적인비교방법에추가적으로상수정보를이용하여바이너리실행파일의차이점을찾을수있게하고있다. 상수정보는함수또는기본블록에나타나나는상수값의빈도 (frequency) 를이용하여나타낸다. 함수또는기본블록의상수정보를요약하기위해서우리는 라는표기법을사용한다. 여기서 는상수값, 는블록내에서 가나타나는개수이다. 예를들어어떤함수 에서상수 가 2번쓰이고상수 가 1번쓰였다. {(0 800,2), (0 100,1)} 이된다. 3.3 바이너리비교알고리즘 함수의매칭알고리즘함수의기본매칭은제 장에서소개한함수로부터추출된함수요약정보를가지고시작한다. 함수의매칭은매핑함수 를정의함으로써이루어진다. 두함수 에대하여, 그들의요약인 와 의값이각프로그램내의함수요약들중에유일하게정의되고, 또 로일치한다면 3) 함수의매칭이이루어지게된다. 정의 3.2 주어진두프로그램이각각 개의함수로구성되어있고, 그함수들의집합이 과 이라할때, 두집합사이의매핑 는다음과같이정의된다. def = 이다. 만일운이좋아서한함수의요약정보가다른바이너리코드에서의함수요약정보와정확하게일치하고, 오직하나만존재한다면두함수사이에서매칭이일어난다. 그러나요약정보가같은함수들이여러개일경우가발생할수있다. 또한블록이나링크가추가되거나함수호출이추가되어요약정보가변경되었을경우에는요약정보값을통하여동일한함수를찾을수없는경우도발생한다. 함수가포함하고있는기본블록의개수가적을수록같은요약정보를가질가능성이많아진다. 예를들면, 다른함수호출을포함하지않는기본블록한개만으로이루어진함수일경우함수요약정보는기본블록한개로밖에표현될수없고, 이러한종류의함수들은 3) 는 인것과같다. 모두같은요약정보를가지게된다. 이런경우에는매칭대상함수를선택하는것은단순하게요약정보만으로해결할수없다. 이때는이미매칭이일어난함수를기준으로함수호출그래프에서의호출관계정보를이용하여매칭을시도하게된다. 이매칭에대해서는향상된매칭알고리즘이라는이름으로다음에더자세히설명이된다. 함수의기본매칭단계에서가장중요한것은가능한많은함수매칭을가능하게만들어서그후의알고리즘의복잡도 (complexity) 를줄이는것이다. 함수요약정보를사용한매칭기법이충분히많은매칭을성공시키지못한다면후의과정이어려워진다. 예를들어, 두개의바이너리프로그램 와 가있고, 각각은, 의함수들로구성되어있다고하자. 두프로그램의함수들이다음과같이서로같은함수요약값을가지고있다고하자. 두바이너리코드에서각각 4개의함수요약정보를추출하였고, 과 은각코드에서유일한요약값 (14,20,5) 를가지고, 과 도 (75,94,30) 의요약값을유일하게가지므로, 으로매칭을할수있다. 그러나 는모두 (5,6,5) 의값을가지므로이들간에는복수개의매칭이존재한다. 이경우, 어떤매칭이맞는것인지주어진매칭알고리즘으로는판단할수없기때문에, 좀더향상된매칭방법이필요하다. 좀더향상된함수매칭을위해서, 우리는함수들의요약값뿐만아니라, 함수들간의호출관계를고려한다. 어떤함수에대해서함수요약값이같은함수들이두개이상이더라도, 두함수가항상같은호출, 피호출관계를가질가능성은매우낮다. 따라서함수의호출관계를이용해서매칭이완성되지않은함수들끼리매칭을진행해주면더많은함수의매칭을찾을수있게된다. 다음은이미정의된기본매칭알고리즘을확장한향상된매칭알고리즘이다. 기본매칭알고리즘에서매칭함수 를미리계산해서제공한다고가정하면, 향상된매칭은아래와같이재귀적인매칭함수재정의를통해서완성된다.

6 프로그램의구조와상수값을이용하는바이너리실행파일의차이점분석 457 위의정의에서 는함수 의정의역, 의기호는함수호출관계를의미한다. 예를들어, 는함수 에서함수 로의호출이존재함을말한다. 향상된매칭알고리즘은이미기본매칭알고리즘으로매칭이끝난집합에서부터시작된다. 매칭이된기본블록에서향상된매칭알고리즘을반복하여적용하면서매칭집합을계속증가시킨다. 만일더이상추가적인매칭이발생하지않는다면향상된매칭알고리즘의수행이완료된상태이다. 향상된매칭알고리즘은함수의호출관계를함께보기때문에기존의매칭알고리즘이구별하지못했던함수를추가적으로매칭시킬수있다. 그러나함수의호출관계까지도일치하는경우이방법을통해서모든함수를구별해낼수는없다. 이런경우에는다음단계매칭인핑거프린트매칭과상수정보매칭을추가적으로이용하여구별해내야한다. 앞서소개된두바이너리프로그램 와 에대해서향상된매칭알고리즘을적용해보자. 이를위해서는우선함수호출관계를알아야한다. 각각의함수들에대해서다음과같은함수호출관계가있다고가정하면, 우리는다음과같이최종적으로매칭을완성할수있다 기본블록의매칭알고리즘기본블록의매칭알고리즘은제 장에서소개된기본블록의요약값 와 를바탕으로이루어진다. 만일한블록의요약정보가다른바이너리프로그램내의한블록의요약값과일치하고, 그요약값이하나만존재한다면두블록사이에서매칭이완성된다. 정의 3.3 주어진두함수가각각 개의기본블록으로구성되어있고, 그블록들의집합이 과 이라할때, 두집합사이의매핑 는다음과같이정의된다. 4) 는 4) 쌍으로된정수들이서로다르다는것은다음과같이정의된다 : 는 과같다. 인것과같다. 함수매칭과의차이점은블록의매칭에서는두종류의요약값을바탕으로매칭을수행한다는점이다. 이정의에서우리는두블록이매칭된다함은두블록의 값이같거나혹은 값이같은것을말한다. 이렇게두가지정보를바탕으로매칭을수행하기때문에하나를이용하는것보다많은매칭을얻게된다. 하지만, 주어진블록매칭알고리즘으로도해결하지못하는경우가있다. 기본블록에대한요약값이유일하지않을경우가그렇다. 이럴때는이미매칭이일어난기본블록을기준으로제어흐름그래프에서의흐름관계정보를이용하여매칭을다시시도한다. 이같은블록매칭을위한향상된매칭알고리즘은함수의향상된매칭알고리즘과같다. 단지함수의경우함수호출관계를바탕으로추가매칭을수행하고, 블록의경우제어흐름그래프상의제어흐름관계를이용한다는차이점이있다. 다음은이미정의된블록의기본매칭에서확장한향상된매칭알고리즘이다. 기본매칭함수 를미리계산해서제공한다고가정하면, 향상된매칭은아래와같이재귀적인매칭함수재정의를통해서완성된다. 위의정의에서 의기호는제어흐름이있음을의미한다. 예를들어, 는기본블록 에서 로의제어흐름이존재함을말한다. 3.4 일치율계산 구조적일치율계산함수및기본블록의매칭이끝났을때완전히일치하는경우도있고, 향상된매칭알고리즘을적용한경우일부가일치하는경우가있다. 이정보를나타내기위해서일치율을계산한다. 일치율은코사인측정법 (cosine measure) 을사용한다. 함수의요약값은각각 라고하고각각을 3차원벡터로생각할때함수일치율은다음과같이정의한다.

7 458 정보과학회논문지 : 소프트웨어및응용제 35 권제 7 호 (2008.7) 그림 2 SCV 시스템구조도 구조적일치율 일치율은두벡터사이의코사인각도를의미하고두벡터의원소가전부양수이기때문에값의범위는 0.0 이상 1.0 이하이다 상수일치율계산구조적매칭값이같더라도버퍼크기와같은상수값만변한경우구조적비교만을통해서는변화된값을찾을수가없다. 따라서이논문에서는상수일치율을계산함으로상향식바이너리실행파일비교방법의장점을함께포함하려고한다. 제 3.2 절에서정의된바와같이계산된두함수의상수요약값이다음과같이, 라고하자. 이때두함수에대한상수일치율은다음과같이정의한다. 상수일치율 = 단, 이다. 이식에서상수일치율은문서를비교할때에사용되는일종의다이스유사계수 (dice similarity measure) 이다. 분자는양함수에서의일치하는상수의총개수를의미하며, 분모는각함수의상수의개수의합을의미한다. 엄밀하게정의하면다음과같다. 4. 평가 4.1 구현바이너리실행파일비교분석도구 SCV의구조는그림 2와같다. SCV의전단부는기존의바이너리비교도구인다른그림이나 BinDiff와마찬가지로 IDAPro 디스어셈블러를사용하였다. IDAPro는바이너리실행파일을분석하여어셈블리코드, 함수정보, 기본블록정보등을생성한다. 이이정보를이용하기위해서우리는 IDA2SQLite 플러그인을구현하였다. IDA2SQLite 플러그인은 IDAPro에서생성된정보를 SQLite 5) DB 형태로저장한다. DB Extractor는 DB에저장된정보를이용하여제어흐름그래프를구성하고, 이그래프와어셈블리코드를분석하여함수요약, 기본블록요약, 상수값정보요약을수행한다. 바이너리코드매칭엔진은요약된정보를이용하여함수단위매칭, 기본블록단위매칭그리고상수값매칭을수행한다. 매칭결과는매칭된함수들과함수일치율, 함수내의매칭된블록들과블록일치율의테이블로저장된다. 시각화엔진은함수단위의비교테이블을일치율과함께나타내주고, 함수를선택했을때제어흐름그래프와기본블록의매치에대해나타내준다. 제어흐름그래프는 DOT 언어 [10] 로변환된후 GraphViz 라이브러리 [11] 를이용하여 SVG로변환된다 [12]. SVG는웹 5)

8 프로그램의구조와상수값을이용하는바이너리실행파일의차이점분석 459 표 1 바이너리실행파일비교를위한패치샘플 KB (MS 보안공지 MS07-046) KB (MS 보안공지 MS07-051) 내용 GDI 의취약점으로인한원격코드실행문제점 Microsoft Agent의취약점으로인한원격코드실행문제점 비교대상 GDI32.dll agentdpv.dll 버전 / / 크기 (KB) 275 / / 52 그림 3 SCV 시스템을이용하여 GDI32.dll 을비교한실행화면 브라우저상에서볼수있는데, 어도비의 SVG Viewe r 6) 에의해표현된다. 4.2 실험구현된시스템을평가하기위하여 MS 윈도운영체제보안패치인 KB ) 과 KB938827을사용하였다. 표 1은비교를위한대상에대해설명하고있다. 두보안패치를우리의도구인 SCV를통해분석하였고바이너리파일비교분석도구중잘알려진 Zynamics사의 BinDiff와비교한다 KB 패치이취약점은이메일로첨부된이미지를열때디코딩 6) 7) 과정에서원격코드를실행할수있는권한을획득할수있도록한다. 그림 3은이취약점을보완한코드인 GetEvent 함수의변화를보여주고있다. 그림에표현된정보는함수매치테이블 (Matched Function Table), 블록매치테이블 (Matched Block Table), 명령어테이블 (Instruction Table) 그리고제어흐름그래프이다. 그림의왼편에있는다섯개의테이블은각각함수매치테이블, 매치가되지않은함수테이블 (Unmatched Function Table), 블록매치테이블, 매치가되지않은블록테이블 (Unmatched Block Table), 그리고명령어테이블이다. 그림의오른편은함수매치테이블에서선택된함수쌍의제어흐름그래프를비교해서보여준다. 제어흐름그래프에서코드가다른부분은다른색으로표현된다. 예를들어, 그림 3의 Get-

9 460 정보과학회논문지 : 소프트웨어및응용제 35 권제 7 호 (2008.7) 그림 4 SCV 시스템을이용하여 agentdpv.dll 를비교한실행화면 Event 함수의제어흐름그래프의경우, 두개의파란색블록이패치되어 9개의붉은색블록으로변경되었다. MS는이함수의취약점보완을위해서여러개의조건체크문을추가하였다. 각블록을구성하는명령어들은명령어테이블을통해서확인할수있는데, 어떤조건체크문이추가되었는지는이명령어테이블을참조하면알수있다 KB 패치이취약점은 MS Agent의취약점으로인한원격코드가실행되는문제점이다. 이취약점의경우, 패치전후의파일크기가동일하며, 구조적인변경사항이전혀없고, 단지상수값만변경된것이특징이다. 따라서 BinDiff 는이패치를감지하지못하고, 변경사항이없는것으로판단한다. 그러나그림 4에서보는바와같이 SCV는상수값의변화를비교하기때문에, 이패치로부터네개의함수가변경된것을찾아낸다. 그림의왼쪽위에있는함수매치테이블에서 Structure 열의일치율은모두 1이지만, Value 열에서는네쌍의함수가 1 보다작은값을가진것을알수있다. 그림의오른쪽은특히네함수쌍중에서세번째함 수의제어흐름그래프를비교한것이다. 양쪽의제어흐름그래프에서상수값이변경된블록은육각형노드로표현되어있다. 5. 결론및향후연구본연구에서는보안패치와같은유사한형태의바이너리실행파일사이의비교방법을제안하고구현하였다. 우리는프로그램의구조정보를요약하고그정보를이용하여함수와기본블록사이의차이점을분석하여구조적인매칭을수행한다. 또한구조적인방법의한계를보완하기위하여상수값빈도수를이용하여요약하고비교하는방법을사용하였다. 이방법은기존에제안된프로그램구조정보의비교뿐아니라, 코드내의상수값의변화도추적할수있으므로, 기존의구조적비교방법을통하여찾아낼수없었던버퍼크기의변화와같은핵심적인정보까지찾아낼수있다. 또한, 명령어기반의비교방법의단점인명령어의재배치나레지스터할당의변화와같은불필요한정보를찾아내지않는다는장점이있다. 우리는제안된방법을기반으로 SCV라는바이너리코드비교분석도구를개발하였다.

10 프로그램의구조와상수값을이용하는바이너리실행파일의차이점분석 461 이도구를실제 MS 윈도우즈원격실행취약점에대한보안패치에적용하여개발된도구의실용성및기존연구방법과의차별성을증명하였다. 이방법은 IDAPro에전단부를의존하고있기때문에악성코드에서많이사용되고있는패킹 (packing) 이나난독화 (obfuscation)[13] 된코드에대해서는잘적용할수없다는단점이있다. 이를보완하기위하여언패커 (unpacker) 와역난독화 (deobfuscation) 도구가개발될필요가있다. 이런확장을통하여운영체제패치뿐아니라악성코드변종의분석에효과적으로사용될수있을것이다. 참고문헌 [1] Using SABRE BinDiff v1.6 for Malware analysis. ff_malware.pdf last accessed [2] Using SABRE BinDiff for Code theft detection. pdf last accessed [3] Choi, S. and Park, H. and Lim, H and Han, T, "A Static Birthmark of Binary Executables Based on API Call Structure," LECTURE NOTES IN COM- PUTER SCIENCE, Vol.4846, p.2, [4] Sabin, T Comparing binaries with graph isomorphisms. unpublished. [5] eeye Digital Security. eeye Diffing Suite. research. eeye.com/html/tools/rt html last accessed [6] Flake, H Structural comparison of executable objects. Proceedings of DIMVA 2004:Detection of Intrusions and Malware and Vulnerability Assessment. [ 7 ] Dullien, T. and Rolles, R Graph-based comparison of executable objects. Symposium sur la securite des technologies de l information et des communications. [8] Zynamics BinDiff index.php?page=bindiff last accessed [9] Hex-Rays. The IDA Pro disassembler and debugger. last accessed [10] Koutsofios, E. and North, S.C Drawing graphs with dot. AT&T Bell Laboratories, Murray Hill, NJ. [11] GraphViz. Graph vizualization package. AT&T Research. [12] Ferraiolo, J. and Jun, F. and Jackson, D Scalable vector graphics (SVG) 1.1 specification. W3C Recommendation 14. [13] Linn, C. and Debray, S Obfuscation of executable code to improve resistance to static analysis. 10th ACM Conference of Computer and Communications Security (CCS). 프로그램분석 및분석 박희완 1997 년동국대학교컴퓨터공학과학사 1999 년 KAIST 전산학과석사 년 ~2007 년삼성전자책임연구원 년 ~ 현재 KAIST 전산학과박사과정. 관심분야는프로그래밍언어및컴파일러, 소프트웨어공학 최석우 1998년 KAIST 전산학과학사. 2000년 KAIST 전자전산학과전산학전공석사 2000년~현재 KAIST 전자전산학과전산학전공박사과정. 관심분야는이진프로그램분석, 프로그램포렌식스, 컴파일러 서선애 1998년 KAIST 전산학과학사. 2000년 KAIST 전자전산학과전산학전공석사 2007년 KAIST 전자전산학과전산학전공박사. 2007년~현재 KAIST 전자전산학과박사후연구원. 관심분야는프로그래밍언어, 프로그램분석, 임베디드 한태숙 1976년서울대학교전자공학과학사 년 KAIST 전산학과석사. 1990년 Univ. of North Carolina at Chapel Hill 박사 1991년~현재한국과학기술원전자전산학과교수. 관심분야는프로그래밍언어론, 함수형언어, 임베디드시스템설계

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture1 Malware Analysis #1 Agenda 악성코드정적분석 악성코드분석 악성코드정적분석 정적분석 임의의코드또는응용프로그램을실행하지않고분석 ASCII 문자열 (ex. URL) API 리스트 Packing VT 기타등등 정적분석 : 파일식별 악성으로의심되는파일의형태식별 file

More information

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

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

More information

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

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - 26.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract 2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract - 31 - 소스코드유사도측정도구의성능에관한비교연구 1. 서론 1) Revulytics, Top 20 Countries for Software Piracy and Licence Misuse (2017), March 21, 2017. www.revulytics.com/blog/top-20-countries-software

More information

Chap 6: Graphs

Chap 6: Graphs 5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV

More information

Microsoft PowerPoint Relations.pptx

Microsoft PowerPoint Relations.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2010년봄학기강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

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

Microsoft Word - FunctionCall

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

More information

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

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

More information

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

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

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

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로 3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로성립한다. Theorem 7 두함수 f : X Y 와 g : X Y 에대하여, f = g f(x)

More information

DBPIA-NURIMEDIA

DBPIA-NURIMEDIA 무선 센서 네트워크 환경에서 링크 품질에 기반한 라우팅에 대한 효과적인 싱크홀 공격 탐지 기법 901 무선 센서 네트워크 환경에서 링크 품질에 기반한 라우팅에 대한 효과적인 싱크홀 공격 탐지 기법 (A Effective Sinkhole Attack Detection Mechanism for LQI based Routing in WSN) 최병구 조응준 (Byung

More information

1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속

1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속 1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속 2 1.1 함수를표현하는네가지방법 함수 f : D E 는집합 D 의각원소 x 에집합 E 에속하는단하나의원소 f(x) 를 대응시키는규칙이다.

More information

ISP and CodeVisionAVR C Compiler.hwp

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

More information

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

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

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

More information

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

Microsoft PowerPoint - 30.ppt [호환 모드] 이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST

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

untitled

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

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

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770> 25 강. 수열의극한참거짓 2 두수열 { }, {b n } 의극한에대한 < 보기 > 의설명중옳은것을모두고르면? Ⅰ. < b n 이고 lim = 이면 lim b n =이다. Ⅱ. 두수열 { }, {b n } 이수렴할때 < b n 이면 lim < lim b n 이다. Ⅲ. lim b n =0이면 lim =0또는 lim b n =0이다. Ⅰ 2Ⅱ 3Ⅲ 4Ⅰ,Ⅱ 5Ⅰ,Ⅲ

More information

Sequences with Low Correlation

Sequences with Low Correlation 레일리페이딩채널에서의 DPC 부호의성능분석 * 김준성, * 신민호, * 송홍엽 00 년 7 월 1 일 * 연세대학교전기전자공학과부호및정보이론연구실 발표순서 서론 복호화방법 R-BP 알고리즘 UMP-BP 알고리즘 Normalied-BP 알고리즘 무상관레일리페이딩채널에서의표준화인수 모의실험결과및고찰 결론 Codig ad Iformatio Theory ab /15

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 누구나즐기는 C 언어콘서트 제 1 장프로그래밍소개 이번장에서학습할내용 프로그램의이해 프로그래밍언어 알고리즘 프로그램개발과정 프로그램을작성하기에앞서서중요한개념들을살펴봅니다.. 컴퓨터란? Q) 컴퓨터 (computer) 는무엇인가? A) 컴퓨터는기본적으로계산 (compute) 하는기계 Q) 컴퓨터를이용하여데이터를처리하려면반드시데이터가숫자형태이어야한다. 왜? A)

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

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000 SNU 4190.210 프로그래밍 원리 (Principles of Programming) Part III Prof. Kwangkeun Yi 차례 1 값중심 vs 물건중심프로그래밍 (applicative vs imperative programming) 2 프로그램의이해 : 환경과메모리 (environment & memory) 다음 1 값중심 vs 물건중심프로그래밍

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

Chapter ...

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

More information

17장 클래스와 메소드

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

More information

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

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

More information

집합 집합 오른쪽 l 3. (1) 집합 X 의각원소에대응하는집합 Y 의원소가단하나만인대응을 라할때, 이대응 를 X 에서 Y 로의라고하고이것을기호로 X Y 와같이나타낸다. (2) 정의역과공역정의역 : X Y 에서집합 X, 공역 : X Y 에서집합 Y (3) 의개수 X Y

집합 집합 오른쪽 l 3. (1) 집합 X 의각원소에대응하는집합 Y 의원소가단하나만인대응을 라할때, 이대응 를 X 에서 Y 로의라고하고이것을기호로 X Y 와같이나타낸다. (2) 정의역과공역정의역 : X Y 에서집합 X, 공역 : X Y 에서집합 Y (3) 의개수 X Y 어떤 다음 X 대응 1. 대응 (1) 어떤주어진관계에의하여집합 X 의원소에집합 Y 의원소를짝지어주는것을집합 X 에서집합 Y 로의대응이라고한다. l (2) 집합 X 의원소 에집합 Y 의원소 가짝지어지면 에 가대응한다고하며이것을기호로 와같이나타낸다. 2. 일대일대응 (1) 집합 A 의모든원소와집합 B 의모든원소가하나도빠짐없이꼭한개씩서로대응되는것을집합 A 에서집합

More information

제 12강 함수수열의 평등수렴

제 12강 함수수열의 평등수렴 제 강함수수열의평등수렴 함수의수열과극한 정의 ( 점별수렴 ): 주어진집합 과각각의자연수 에대하여함수 f : 이있다고가정하자. 이때 을집합 에서로가는함수의수열이라고한다. 모든 x 에대하여 f 수열 f ( x) lim f ( x) 가성립할때함수수열 { f } 이집합 에서함수 f 로수렴한다고한다. 또 함수 f 을집합 에서의함수수열 { f } 의극한 ( 함수 ) 이라고한다.

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

인문사회과학기술융합학회

인문사회과학기술융합학회 Vol.5, No.5, October (2015), pp.471-479 http://dx.doi.org/10.14257/ajmahs.2015.10.50 스마트온실을 위한 가상 외부기상측정시스템 개발 한새론 1), 이재수 2), 홍영기 3), 김국환 4), 김성기 5), 김상철 6) Development of Virtual Ambient Weather Measurement

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

02(243-249) CSTV11-22.hwp

02(243-249) CSTV11-22.hwp 함수호출규약에 기반한 새로운 소프트웨어 워터마킹 기법 243 함수호출규약에 기반한 새로운 소프트웨어 워터마킹 기법 (A Novel Software Watermarking Scheme Based on Calling Convention) 전 철 정진만 김봉재 (Cheol Jeon) (Jinman Jung) (Bongjae Kim) 장준혁 조유근 홍지만 (Joonhyouk

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 A 반 T2 - 김우빈 (201011321) 임국현 (201011358) 박대규 (201011329) Robot Vacuum Cleaner 1 Motor Sensor RVC Control Cleaner Robot Vaccum Cleaner 2 / Event Format/ Type Front Sensor RVC 앞의장애물의유무를감지한다. True / False,

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

설계란 무엇인가?

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

More information

Artificial Intelligence: Assignment 6 Seung-Hoon Na December 15, Sarsa와 Q-learning Windy Gridworld Windy Gridworld의 원문은 다음 Sutton 교재의 연습문제

Artificial Intelligence: Assignment 6 Seung-Hoon Na December 15, Sarsa와 Q-learning Windy Gridworld Windy Gridworld의 원문은 다음 Sutton 교재의 연습문제 Artificial Intelligence: Assignment 6 Seung-Hoon Na December 15, 2018 1 1.1 Sarsa와 Q-learning Windy Gridworld Windy Gridworld의 원문은 다음 Sutton 교재의 연습문제 6.5에서 찾아볼 수 있다. http://incompleteideas.net/book/bookdraft2017nov5.pdf

More information

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

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

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

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

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

PowerPoint 프레젠테이션

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

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

C++ Programming

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

More information

Microsoft Word - Static analysis of Shellcode.doc

Microsoft Word - Static analysis of Shellcode.doc Static analysis of Shellcode By By Maarten Van Horenbeeck 2008.09.03 2008.09.03 본문서에서는악성코드에서사용하는난독화되어있는쉘코드 를분석하는방법에대한 Maarten Van Horenbeeck 의글을번역 한것이다. Hacking Group OVERTIME OVERTIME force

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

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for 2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon

More information

슬라이드 1

슬라이드 1 CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if

More information

PowerPoint 프레젠테이션

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

More information

Frama-C/JESSIS 사용법 소개

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

More information

제 5강 리만적분

제 5강 리만적분 제 5 강리만적분 리만적분 정의 : 두실수, 가 을만족핚다고가정하자.. 만일 P [, ] 이고 P 가두끝점, 을모두포함하는유핚집합일때, P 을 [, ] 의분핛 (prtitio) 이라고핚다. 주로 P { x x x } 로나타낸다.. 분핛 P { x x x } 의노름을다음과같이정의핚다. P x x x. 3. [, ] 의두분핛 P 와 Q 에대하여만일 P Q이면 Q

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

DIY 챗봇 - LangCon

DIY 챗봇 - LangCon without Chatbot Builder & Deep Learning bage79@gmail.com Chatbot Builder (=Dialogue Manager),. We need different chatbot builders for various chatbot services. Chatbot builders can t call some external

More information

04 Çмú_±â¼ú±â»ç

04 Çмú_±â¼ú±â»ç 42 s p x f p (x) f (x) VOL. 46 NO. 12 2013. 12 43 p j (x) r j n c f max f min v max, j j c j (x) j f (x) v j (x) f (x) v(x) f d (x) f (x) f (x) v(x) v(x) r f 44 r f X(x) Y (x) (x, y) (x, y) f (x, y) VOL.

More information

실험 5

실험 5 실험. OP Amp 의기초회로 Inverting Amplifier OP amp 를이용한아래와같은 inverting amplifier 회로를고려해본다. ( 그림 ) Inverting amplifier 위의회로에서 OP amp의 입력단자는 + 입력단자와동일한그라운드전압, 즉 0V를유지한다. 또한 OP amp 입력단자로흘러들어가는전류는 0 이므로, 저항에흐르는전류는다음과같다.

More information

chap x: G입력

chap x: G입력 재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘

More information

À±½Â¿í Ãâ·Â

À±½Â¿í Ãâ·Â Representation, Encoding and Intermediate View Interpolation Methods for Multi-view Video Using Layered Depth Images The multi-view video is a collection of multiple videos, capturing the same scene at

More information

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표 Vector Differential: 벡터 미분 Yonhee Lee October 7, 08 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표기법을 정의하는 방법이다 보통 스칼라(scalar)에 대한 미분은 일분수 함수 f : < < 또는 다변수 함수(function

More information

감각형 증강현실을 이용한

감각형 증강현실을 이용한 대한산업공학회/한국경영과학회 2012년 춘계공동학술대회 감각형 증강현실을 이용한 전자제품의 디자인 품평 문희철, 박상진, 박형준 * 조선대학교 산업공학과 * 교신저자, hzpark@chosun.ac.kr 002660 ABSTRACT We present the recent status of our research on design evaluation of digital

More information

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할 저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,

More information

Web Scraper in 30 Minutes 강철

Web Scraper in 30 Minutes 강철 Web Scraper in 30 Minutes 강철 발표자 소개 KAIST 전산학과 2015년부터 G사에서 일합니다. 에서 대한민국 정치의 모든 것을 개발하고 있습니다. 목표 웹 스크래퍼를 프레임웍 없이 처음부터 작성해 본다. 목표 웹 스크래퍼를 프레임웍 없이 처음부터 작성해 본다. 스크래퍼/크롤러의 작동 원리를 이해한다. 목표

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

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6),

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6), THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. 2016 Jun.; 276), 504511. http://dx.doi.org/10.5515/kjkiees.2016.27.6.504 ISSN 1226-3133 Print)ISSN 2288-226X Online) Near-Field

More information

RVC Robot Vaccum Cleaner

RVC Robot Vaccum Cleaner RVC Robot Vacuum 200810048 정재근 200811445 이성현 200811414 김연준 200812423 김준식 Statement of purpose Robot Vacuum (RVC) - An RVC automatically cleans and mops household surface. - It goes straight forward while

More information

자연언어처리

자연언어처리 제 7 장파싱 파싱의개요 파싱 (Parsing) 입력문장의구조를분석하는과정 문법 (grammar) 언어에서허용되는문장의구조를정의하는체계 파싱기법 (parsing techniques) 문장의구조를문법에따라분석하는과정 차트파싱 (Chart Parsing) 2 문장의구조와트리 문장 : John ate the apple. Tree Representation List

More information

untitled

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

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

제 3강 역함수의 미분과 로피탈의 정리

제 3강 역함수의 미분과 로피탈의 정리 제 3 강역함수의미분과로피탈의정리 역함수의미분 : 두실수 a b 와폐구갂 [ ab, ] 에서 -이고연속인함수 f 가 ( a, b) 미분가능하다고가정하자. 만일 f '( ) 0 이면역함수 f 은실수 f( ) 에서미분가능하고 ( f )'( f ( )) 이다. f '( ) 에서 증명 : 폐구갂 [ ab, ] 에서 -이고연속인함수 f 는증가함수이거나감소함수이다 (

More information

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

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

More information

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

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

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

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

<B1D4B0DDBCAD202D20C4DAB5E520B1E2B9DD2E687770>

<B1D4B0DDBCAD202D20C4DAB5E520B1E2B9DD2E687770> 서식제호 규격서 규격서 COMMODITY DESCRIPTION 세부품명번호 Item No. 품목및규격 Description 코드기반표준SW 개발 / 검증 / 지원도구 (Code based standard software solutions for development, verification, and support) 단위 수량 Unit Quantity Set

More information

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt 이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

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 PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

행정학석사학위논문 공공기관기관장의전문성이 조직의성과에미치는영향 년 월 서울대학교행정대학원 행정학과행정학전공 유진아

행정학석사학위논문 공공기관기관장의전문성이 조직의성과에미치는영향 년 월 서울대학교행정대학원 행정학과행정학전공 유진아 저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,

More information

C언어 및 실습 C Language and Practice

C언어 및 실습  C Language and Practice C언어 및 실습 C Language and Practice Chap. 2 : 변수의 영역 동국대학교 멀티미디어공학과 Young-Sik Jeong C 언어메모리구조 지역변수들이저장되는곳. 정확히는지역변수와그에따른환경이같이저장된다. 복귀주소와호출함수의환경이저장된다. 동적기억장소를위한공간. 프로그램이실행되는중간에필요에의해서할당받는메모리영역을통칭한다. 크기가정해져있지않고유동적이다.

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

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

More information

제4장 기본 의미구조 (Basic Semantics)

제4장  기본 의미구조 (Basic Semantics) 제 4 장블록및유효범위 Reading Chap. 5 숙대창병모 1 4.1 변수선언및유효범위 숙대창병모 2 변수선언과유효범위 변수선언 Declaration before Use! 대부분의언어에서변수는사용전에먼저선언해야한다. 변수의유효범위 (scope) 선언된변수가유효한 ( 사용될수있는 ) 프로그램내의범위 / 영역 변수이름뿐아니라함수등다른이름도생각해야한다. 정적유효범위

More information

REP - networkx - 019, JULY 2010 2 어 있고 Windows 계열도 지원하지만, Winodws OS의 경우 많은 버그를 가지고 있기 때문에 현재 Windows 운영 체제와 정상적으로 호환되는 패키지는 NetworkX 이다. 각 패키지의 종류와 각

REP - networkx - 019, JULY 2010 2 어 있고 Windows 계열도 지원하지만, Winodws OS의 경우 많은 버그를 가지고 있기 때문에 현재 Windows 운영 체제와 정상적으로 호환되는 패키지는 NetworkX 이다. 각 패키지의 종류와 각 REP - networkx - 019, JULY 2010 1 NetworkX를 이용한 Python 그래프 가시화 Graph Visualization from Python Using NetworkX 부산대학교 컴퓨터공학과 김선영 E-mail : s.y.kim@pusan.ac.kr Revised on 2010.07.27 ABSTRACT Python은 사용하기 쉬운

More information

Figure 1: 현존하는 정적 분석 기술의 한계와 본 연구의 목표. 이러한 허위경보(false alarm)를 가질 수 밖에 없는데, 오탐율(전체 경보중 허위경보의 비율)이 정확도의 척도가 된다. 유용한 정적 분석기는 충분히 낮은 허위경보율을 가져야 한다. 대형 프로그

Figure 1: 현존하는 정적 분석 기술의 한계와 본 연구의 목표. 이러한 허위경보(false alarm)를 가질 수 밖에 없는데, 오탐율(전체 경보중 허위경보의 비율)이 정확도의 척도가 된다. 유용한 정적 분석기는 충분히 낮은 허위경보율을 가져야 한다. 대형 프로그 고성능 정적 프로그램 분석 기법 오학주 고려대학교 컴퓨터학과 서론 1 1.1 소프트웨어 오류 문제 소프트웨어가 모든 산업의 기반 기술이 되면서 소프트웨어의 오류로 인해 발생하는 사회경제적 비 용이 천문학적으로 증가하고 있다. 한 예로 미국의 투자금융회사인 KCG(Knight Capital Group)은 2012년 8월 1일 하루동안 2년치의 매출액에 해당하는

More information

KCC2011 우수발표논문 휴먼오피니언자동분류시스템구현을위한비결정오피니언형용사구문에대한연구 1) Study on Domain-dependent Keywords Co-occurring with the Adjectives of Non-deterministic Opinion

KCC2011 우수발표논문 휴먼오피니언자동분류시스템구현을위한비결정오피니언형용사구문에대한연구 1) Study on Domain-dependent Keywords Co-occurring with the Adjectives of Non-deterministic Opinion KCC2011 우수발표논문 휴먼오피니언자동분류시스템구현을위한비결정오피니언형용사구문에대한연구 1) Study on Domain-dependent Keywords Co-occurring with the Adjectives of Non-deterministic Opinion 요약 본연구에서는, 웹문서로부터특정상품에대한의견문장을분석하는오피니언마이닝 (Opinion

More information

슬라이드 1

슬라이드 1 Recursion SANGJI University KO Kwangman () 1. 개요 재귀 (recursion) 의정의, 순환 정의하고있는개념자체에대한정의내부에자기자신이포함되어있는경우를의미 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로되어있는경우에적합한방법 예제 ) 팩토리얼값구하기 피보나치수열 이항계수 하노이의탑 이진탐색

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

Chap 6: Graphs

Chap 6: Graphs AOV Network 의표현 임의의 vertex 가 predecessor 를갖는지조사 각 vertex 에대해 immediate predecessor 의수를나타내는 count field 저장 Vertex 와그에부속된모든 edge 들을삭제 AOV network 을인접리스트로표현 count link struct node { int vertex; struct node

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2013. 05. 23 악성코드 분석 보고서 [ Ransomware 악성코드 ] 사용자의 컴퓨터를 강제로 잠그고 돈을 요구하는 형태의 공격이 기승을 부리고 있 습니다. 이러한 형태의 공격에 이용되는 악성코드는 Ransomware로 불리는 악성코 드 입니다. 한번 감염 시 치료절차가 복잡하며, 보고서 작성 시점을 기준으로 지속 적인 피해자가 발생되고

More information

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770> 삼각함수. 삼각함수의덧셈정리 삼각함수의덧셈정리 삼각함수 sin (α + β ), cos (α + β ), tan (α + β ) 등을 α 또는 β 의삼각함수로나 타낼수있다. 각 α 와각 β 에대하여 α >0, β >0이고 0 α - β < β 를만족한다고가정하 자. 다른경우에도같은방법으로증명할수있다. 각 α 와각 β 에대하여 θ = α - β 라고놓자. 위의그림에서원점에서거리가

More information

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

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

More information

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores 프로젝트정리 1주차 : 미로를텍스트파일로만들어출력하는프로그램작성. 2주차 : 텍스트형태의미로를 MC의그래픽기능을이용하여그리는프로그램작성. 3주차 : 미로에서길찾는프로그램작성. Dept. of CS, Sogang Univ. 1 DS를이용한미로길찾기문제 DS를이용한미로길찾기문제는 2주차까지설계한미로의출발점과도착점을연결하는가장짧은경로를탐색해출력하는문제이다. NxM

More information

소성해석

소성해석 3 강유한요소법 3 강목차 3. 미분방정식의근사해법-Ritz법 3. 미분방정식의근사해법 가중오차법 3.3 유한요소법개념 3.4 편미분방정식의유한요소법 . CAD 전처리프로그램 (Preprocessor) DXF, STL 파일 입력데이타 유한요소솔버 (Finite Element Solver) 자연법칙지배방정식유한요소방정식파생변수의계산 질량보존법칙 연속방정식 뉴톤의운동법칙평형방정식대수방정식

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

mytalk

mytalk 한국정보보호학회소프트웨어보안연구회 총괄책임자 취약점분석팀 안준선 ( 항공대 ) 도경구 ( 한양대 ) 도구개발팀도경구 ( 한양대 ) 시큐어코딩팀 오세만 ( 동국대 ) 전체적인 그림 IL Rules Flowgraph Generator Flowgraph Analyzer 흐름그래프 생성기 흐름그래프 분석기 O parser 중간언어 O 파서 RDL

More information