'BHO'에 해당되는 글 2건

  1. 2010.07.19 Web Browser 제어 (IE [Internet Explorer]) (1)
  2. 2010.05.24 What is BHO? (2)

2010.07.19 15:45 Web


간만의 포스팅이로군요

주인장은 평소와 다름 없이 포풍 잉여의 기운을 풍기며 뒹굴거리고 있습니다

어쩌다보니 IE 제어 쪽을 조사하게 되었고 , 간단하지만 제가 조사한것들을 정리하는 차원에서

포스팅을 하도록 하겠습니다

일단 Web Browser 제어라고는 했지만 IE를 중점적으로 다룰 것입니다

사람들의 평이 좀 구리긴 하지만 , 우리나라 뿐만 아니라 전세계적으로 가장 많이 쓰이는 Browser 인것은 틀림 없으니까요

그렇다곤 하나 아마 구조는 대부분 같을 겁니다

브라우저에서 발생하는 이벤트를 잡아서 이를 제어 하는 것은 변함이 없을테니까요

예를 들어서, IE 의 대표적인 툴바인 알툴바를 살펴봅시다

일단, 알툴바는 BHO로서 동작을 합니다

BHO는 IE에서 동작하는 플러그인이라고 보시면 됩니다

ActiveX 와 개념이 비슷하다고 볼수도 있는데 ActiveX의 경우는 특정 사이트 내에서 동작을

BHO는 항상 IE에 상주하면서 동작한다고 보시면 될 것 같습니다

아무튼 ..

알툴바의 대표적 기능인 마우스 액션 같은 경우는 마우스의 이동 이벤트를 잡아내면서 동작을 하게 되죠

이러한 IE의 이벤트를 잡아 내기 위해서는 해당 이벤트를 관리하는 인터페이스의 포인터를 얻어야 합니다

MFC나 ATL을 이용해서 프로그램 내부에 IE를 띄우던, 프로그램을 이용해서 IE 창을 새로 만들어서 띄우던

ActiveX로 제작하여 띄우던 먼저 Web Browser 의 인터페이스를 얻어와야 한다는 것이죠

물론 각 방법마다 구현 방법은 다소 다르겠지만요

예를 들어보자면, MFC에서 프로그램을 이용해서 IE 창을 새로 띄우는 형식이라면




혹은 ActiveX를 이용한다면 미친병아리님의 코드




정도를 이용하면 됩니다

이렇게 IWebBrowser2의 포인터를 얻어왔다면

자신이 원하는 이벤트를 제어하는 함수를 포함하는 인터페이스의 포인터를 얻어와서 제어 하는 방법만이 남았습니다

마우스 오른쪽 버튼을 제어한다 라던가 드래그를 막고 싶다 라면

HTMLDocumentEvents2 를 얻어오셔서 이벤트를 잡아내시면 됩니다

웹 페이지의 이벤트, 그러니까 뭐 문서가 로딩이 완료되는 시점을 알고 싶다던가 하면 (이를 이용해 새로고침 되는 시점을 알아낸다던가 )

WebBrowserEvents2 를 얻어오면 되구요

아래 소스에서는 2가지 이벤트를 관리하는 인터페이스를 모두 얻어와보겠습니다



이렇게 IE의 이벤트와 Sink 하신 후에는

종료시에 Unsink 를 해주셔야 합니다


또한, 이벤트를 처리 하는 부분도 신경써주셔야 겠죠

DISPATCHMAP 을 작성하시고 그에 따라 함수를 정의해주시면 됩니다

자신이 catch 하시고 싶은 이벤트의 DISIP와 그 함수에 해당하는 인자등을 고려하셔서 구현해주시면 된다는 거죠

예를 들자면..




이에 따른 함수 구현은 대략 이런식으로 하면 됩니다



FALSE로 해주시면 이벤트가 일어나지 않은 것과 같은 효과를 내게 됩니다

오른쪽 클릭으로 발생하는 Context menu나 drag 등을 막게 되죠

Google Chrome이나 FireFox 등에서도 마우스 액션을 구현하기 위해 플러그인 형식으로 배포한 것들이 있더군요

그덕에 브라우저를 막론하고 마우스 액션은 잘 쓰고 있습니다

아마 두 브라우저 모두 구현방식은 비슷할껍니다

제가 앞서 말씀드린 이 방식들은 자바 스크립트에서도 아주 간단하게 구현할수는 있습니다

외부로 소스가 드러나는 만큼

썩 믿음직스럽지 못하긴 하지만.. 

그렇다고 플러그인 형식의 BHO나 , ActiveX 의 사용을 권장하는건 아닙니다

두가지 모두 악성코드의 주요 배포 수단으로 손꼽히는 원흉인 만큼

설치 및 사용에 주의가 필요하셔야겠죠

보안과 편의성 둘다 모두 챙기기란 참 쉽지 않아 보이네요 :(


'Web' 카테고리의 다른 글

웹브라우저의 춘추전국시대?  (0) 2010.09.13
Catching temporary I.E Files -IE 임시 파일 가로 채기  (5) 2010.08.24
Web Browser 제어 (IE [Internet Explorer])  (1) 2010.07.19
What is your Web Browser?  (0) 2010.05.28
What is BHO?  (2) 2010.05.24
html 5 vs Silverlight vs Adobe Flash  (0) 2010.03.04
Posted by LinkC

2010.05.24 17:55 Web

BHO [ Browser Helper Object ] 의 줄임말로

IE 용 플러그인입니다

보통 dll module 로 제작되어 배포 되는데요

IE 시작 시

자동으로 실행되어 브라우저창 등에

어떠한 지시라도 할 수 있는 기능을 확장하는데 사용합니다.

실제로 쓰이는건 어떤게 있는지 살펴볼까요?

 



Adobe, 알툴바, Java, Nate 등

눈에 익은 것들이 많이 보이네요

생각보다 많은 것들이 BHO로 작동하고 있었습니다

BHO는 근본적으로 브라우저에서 지원하지 못하는 기능을 지원하기 위해

만들어졌습니다. 이 때문에 IE 에서는 다른 Browser 에서는 접근 못하는 영역까지 접근할 수 있다고 하더군요

개발자입장에서는 이게 참 고마운 일이겠죠

웹 개발자의 필수품이라는 IE Developer Toolbar도 BHO 구요

하지만 악의적인 목적을 가진 사람에겐 또 이만큼 감사한게 없죠

암호화 하기 전에 ID, PW등을 가로챈다던가 말입니다

이에 관해서 Amesianx 님께서 Simples 에 기고하신 글이 있는데

링크 겁니다

예제도 있으니 참고하시는데 좋을듯 싶군요

http://simples.kr/bbs/board.php?bo_table=04_4&wr_id=96

BHO를 통한 악성코드 배포 사례는 꽤 많더군요

구글링 해보시면 금새 찾으실 수 있습니다

실제 파일도 있으니 받아서 분석해보시는것도 좋구요




제거 하는 방법은

regsvr32 /u 파일명을 치시던가

다른 BHO 프로그램을 이용하시면 돼는데

http://www.ylcomputing.com/download/wuinstall.exe

을 쓰셔도 됩니다

쉐어 웨어라 기간제가 있긴 하지만..








'Web' 카테고리의 다른 글

Web Browser 제어 (IE [Internet Explorer])  (1) 2010.07.19
What is your Web Browser?  (0) 2010.05.28
What is BHO?  (2) 2010.05.24
html 5 vs Silverlight vs Adobe Flash  (0) 2010.03.04
Damm Vulnerable Web App!  (0) 2009.11.15
What is WebDAV? / nmap을 이용한 WebDAV 스캔  (0) 2009.11.14
Posted by LinkC
이전버튼 1 이전버튼

블로그 이미지
LinkC

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

공지사항

Yesterday35
Today4
Total331,024

달력

 « |  » 2019.8
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

최근에 받은 트랙백

글 보관함


. .