open api 와 dll injection 을 이용한 자동 검색 사전의 설계 및 구현

11
Open API Open API DLL Injection DLL Injection 와와와 와와와 와와 와와 와와와 와와 와 와와 와와 와와 와와와 와와 와 와와 와와 : 와 와 와 와와와와 : 와 와 와 와와와 : S E R A 졸졸 졸졸 졸졸졸 Design & Implementation of an Automatic Search Dictionary Using Open API & DLL Injection

Upload: winifred-whitley

Post on 02-Jan-2016

77 views

Category:

Documents


1 download

DESCRIPTION

졸업 실험 보고서. Open API 와 DLL Injection 을 이용한 자동 검색 사전의 설계 및 구현. Design & Implementation of an Automatic Search Dictionary Using Open API & DLL Injection. 성명 : 홍 준 기 지도교수 : 조 영 석 연구실 : S E R A. 목적 및 필요성. 기존 사전검색의 불편함 포털 사이트를 통한 사전 검색 여러 차례 Page 이동이 요구 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

Open APIOpen API 와 와 DLL InjectionDLL Injection 을을 이용한 이용한 자동 검색 사전의 설계 및 구현자동 검색 사전의 설계 및 구현

성명 : 홍 준 기지도교수 : 조 영 석

연구실 : S E R A

졸업 실험 보고서

Design & Implementation of an Automatic Search Dictionary Using Open API & DLL Injection

Page 2: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

기존 사전검색의 불편함• 포털 사이트를 통한 사전 검색

• 여러 차례 Page 이동이 요구• HTML page loading 지연 ( 배너 , 광고 등의 추가 정보 로딩이 필요 )

• 임시파일의 생성으로 인한 추가적이 메모리가 소요

• 사전 검색 프로그램• 정적인 검색내용만 출력 ( 다양한 검색 불가 ex. 한글 사전 )

• Web 기반이 아닌 프로그램에서는 사전 내용 설치가 필요 (ex. 한글 사전 )

• 툴바를 이용한 검색• 지원하는 단어의 정보 제한 , HTML 페이지 내부에서만 동작

추가 기능• DLL Injection 을 이용한 API Hooking 기능 ( 마우스 위치 텍스트 감지 )

• 기존 사전검색 기능에 사용자의 편의성을 고려한 기능 추가• Open API 를 통해 확장된 검색과 빠른 접근을 제공• 검색 정보의 보안성 제공

목적 및 필요성목적 및 필요성

Page 3: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

DLL Injection• DLL Injection?

• 실행중인 프로세스로 DLL Code 를 삽입하는 기법• DLL 에서 실행중인 프로세스를 감시하여 메시지를 가로채는 역할

API Hooking• API Hooking?

• DLL 내부에서 모든 프로세스에서 발생하는 Win32 API 함수의 호출을 감지• GDI32.DLL 내부의 TextOutA/W() 계열 API 함수 호출을 감지

• Windows OS Mechanism 을 이용한 설계• Windows application 을 개발 시 다양한 언어와 도구를 통해 제작이 가능• 다른 언어와 도구로 작성된 프로그램에서 작업을 수행하기 위한 방법은 다름• 텍스트 출력의 각 언어별로 방법이 다름

MFC 에서는 CDC::DrawTextDelphi 에서는 TCanas::TextOut

• 내부를 살펴보면 Windows 운영체제에서 제공하는 TextOut() API 함수를 호출

개발 범위 및 목표개발 범위 및 목표

Page 4: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

텍스트 감지• Windows OS 에 따른 처리• ANSI, UNICODE 에 따른 처리

감지 가능 OS 와 Program• OS

• Windows 2000 / XP / Vista

• Windows Server 2003

• Windows 계열에서 동작 가능

• Program• 메모장 , 한글 , 엑셀 , 워드 , 웹 브라우저 등에서 인식 가능• Power Point, 메뉴 바 감지 불가

개발 범위 및 목표 개발 범위 및 목표 (cont’d)(cont’d)

Page 5: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

Open API• Open API?

• Google, Naver, Daum, Yahoo 등 포털 사이트에서 자사의 API 를 외부에 공개한 검색 서비스

• 개발자나 일반 프로그래머가 작게는 운영사이트의 활용성을 도모하고 , 넓게는 창조적이고 다양한 어플리케이션을 개발하도록 지원

• 개발자가 포털 사이트의 방대한 정보에 쉽게 접근 가능(ex. 한 /영 사전검색 , 블로그 / 지식인 / 웹 문서 / 백과사전 검색 등 )

• Open API 의 활용• 기존 Database 에 저장된 사전의 내용을 가져오는 방식과 다르게 Open

API 를 통한 사전 검색의 기능을 제공• 다양한 Open API 사용을 통해 검색의 범위를 확장• 한 /영 키의 오타변환 , 추천 검색 기능을 통해 확장된 검색기능을 제공

개발 범위 및 목표 개발 범위 및 목표 (cont’d)(cont’d)

Page 6: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

Open API

개발 범위 및 목표 개발 범위 및 목표 (cont’d)(cont’d)

Open API 를 통해 제공되는 방대한 데이터에 개발자의 아이디어를 더해 새로운 서비스를 생성

변해가는 웹 사이트와 같이 사용자가 정적인 서비스를 제공받는 것에서 다양한 서비스를 선택적으로 제공 받을 수 있는 기회를 제공

Page 7: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

동작 과정동작 과정

② 마우스 움직임 감지

④ TextOutA/W() API 함수 호출

⑥ API Query

요청

⑦ XML Page 리턴

③무효화 영역 지정

Naver Server

DLL Injection

① DLL load

⑤ TextOutA/W() API 의 출력 문자열을 리턴

⑧ XML Page 의 URL 로 접근

⑩ 출력

⑨ Parsing 을 통해 검색 정보 추출

Page 8: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

XML / HTML ParsingXML / HTML Parsing

Demonstration

검색

① API Query 요청

② XML page 내부 URL Parsing

③ Parsing 된 URL 로 접근

④ 검색 정보 Parsing후

출력

Page 9: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

실험 결과실험 결과

영어 사전 검색 오타 변환

사전 검색 일반 사전 검색의 경우 한글 / 영문을 판단하여 그에 따른 사전검색을 제공 영어 사전 검색의 경우 해당 단어의 발음듣기 기능 제공

오타변환 한 / 영키 설정 오류로 인한 오타를 수정 한글 -> 영문 , 영문 -> 한글로 자동 변환

국어 사전 검색

Page 10: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

실험 결과 실험 결과 (cont’d)(cont’d)

추천 검색 추천 검색 API 를 통해 검색 내용과 연관된 단어를 콤보 박스에 대입

지식인 , 블로그 , 웹 문서 , 백과사전 검색 제목 , 내부의 간단한 Description 과 정보가 있는 Page 의 URL 을 나열 포털 사이트 Naver 와 동일한 검색결과 출력

추천 검색 지식 IN 검색 환경설정웹 문서 검색

Page 11: Open API 와  DLL Injection 을 이용한  자동 검색 사전의 설계 및 구현

결론• Open API 를 통한 직접적인 접근을 통해 검색 지연시간 감소• 검색에 대한 추가적인 메모리 소요 없음• 확장된 검색기능을 제공• 사용자의 편의성을 고려한 기능 제공• 검색 정보에 대한 보안성 제공

향후 과제• 여러 포털 사이트에서 제공하는 Open API 를 결합하여 추가된

기능을 제공가능• HTML, XML page 의 출력 방식 변경 시 변경에 따른 Parsing

방법이 필요• API Hooking 의 추가적인 작업이 필요

결론 결론 / / 향후 과제향후 과제