천객만래 [千客萬來] (It has an interminable succession of visitors)

[작업] 크롬 키워드 검색 - 보안강화 문제


크롬 키워드 검색 개발


크롬 확장 프로그램을 이용한 키워드 검색 개발을 하는 중이다.


탭 제어가 가능해졌다. 정확히 말하면 시작페이지와 새탭페이지, 그리고 검색창이나 주소창을 제어하기 위한 작업을 위하여

크롬, Safari, Firefox에서 동작하는 플러그인(IE의 ActiveX와 동일한) 개발하는 방법을 배우면서 NPAPI를 조사하는 상황이었다.


그런데... 정확히 어느 버전부터인지는 모르겠지만 보안강화 이야기가 나왔다.

사용자의 직접적인 설치가 아니면 설치가 되지 않는다는 이야기다.


이 공지를 접하기 전까지 여러가지 다양한 방법으로 설치할 수 있는 방법을 시도해보았지만

모두 허사였다.

결국 지난주에 보안강화에 대한 공지를 읽고 설치 방법에 있어서 단순히 키워드 검색 기능만으로는 설치가 어렵겠다는 생각이 들었다.

즉, 사용자가 쓸만한 특정한 기능을 포함하는 확장 프로그램을 만들어서 거기에 키워드 검색 기능을 추가할 수 있는 방법으로 해야한다.

그러나, 사용자가 설치를 하는 경우라면 아무래도 배포효율에 문제가 있을 수 있기 때문에 단순한 방법으로는 어렵겠다는 생각이 들었다.


결국, 크롬 브라우저의 주소창을 후킹해 봐야겠다는 결론이 들어서 이  방법으로 개발을 시도해보려고 한다.

금주안에 테스트 들어가서 결론이 나야한다.


그리고나서, 크롬 확장프로그램이나 호스티드/패키지 앱을 만들어야 겠다는 생각이다.


크롬 확장프로그램을 작성하면 다음 프로젝트는 안드로이드 앱스토어에 등록할 어플을 만드는 것이다. 아이템이 있다.

이것은 6월까지는 가시적인 성과가 나와야 한다. 

그 이상 미뤄지면 이 프로젝트에만 몰두하거나 더 미루거나 해야한다.



Posted by SB패밀리

출처 : http://www.mediaus.co.kr/news/articleView.html?idxno=25993

악성프로그램 통해 '광고수수료' 가로챈 인터넷판 봉이 김선달 '철퇴'

법원 "리워드 툴바 제휴 마케팅사 불법" 판결

2012.06.20

  

리워드툴바라는 일종의 후킹(Hooking)프로그램을 사용해 포털 및 가격비교 사이트로 지급되야할 수수료를 불법 취득한 혐의로 기소된 리워드툴바 제휴마케팅사에 대해 법원이 항소심에서 유죄를 판결을 선고했다.

리워드툴바 제조업체는 제휴코드를 변조해 이용자들이 포탈을 통해 쇼핑몰로 이동해도 제휴마케팅사를 통해 쇼핑몰을 방문한 것처럼 조작해 부당이득을 챙겼다. 통상적으로 포털이나 가격비교사이트를 통해서 이동하면 쇼핑몰에서 광고 수수료를 지급한다.



▲ ⓒNHN
지난 15일 서울중앙지방법원 제5형사부는 1심 유죄 판결에 불복해 항소한 제휴마케팅업체인 L사에게 1심과 동일한 회사에 벌금 500만원, 대표이사에 벌금 1000만원을 선고 했으며, B사에 대해서는 항소를 기각했다. B사는 1심 판결에서 대표이사 징역 10월에 집행유예 2년, 회사는 벌금 700만원을 선고 받았다.

포털과 가격비교사이트는 이번 판결에 대해 긍정적인 반응을 보였다.


NHN은 20일 보도자료를 통해 이번 판결에 대해 "지난해 3월 리워드툴바 제작업체 12개사 및 업체 대표들에게 유죄를 선고한 데 이은 것으로, 2009년 초부터 3년에 걸쳐 진행된 이번 사건은 제조사 12개 업체 및 제휴마케팅사 4개 업체 등 관련 업체 전원에게 정보통신망법 위반죄(악성 프로그램) 및 컴퓨터등장애업무방해죄 위반으로 유죄가 선고돼 사건이 일단락 된 것"이라고 평가했다.


NHN 홍보팀 관계자는 "포털과 가격 비교사이트들이 정당하게 수수료를 받아야 하는데 악성프로그램(리워드툴바)으로 제휴 마케팅사들이 광고수수료를 불법 취득한 것"이라며 "이번 판결로 불법성이 증명됐다"고 말했다.

가격비교사이트 다나와 관계자는 "이번 판결을 긍정적으로 생각한다"면서 "(이번 판결이)제휴마케팅 유통질서를 성숙하게 만드는 계기가 될 것"이라고 밝혔다.



출처: http://media.daum.net/economic/industry/view.html?cateid=1038&newsid=20081117080339565&p=dt


쇼핑몰-제휴사간 구매연결 수수료 가로채기

온라인 쇼핑몰 시장의 `제휴마케팅`이 확산되는 가운데, 정상적인 온라인 쇼핑몰 제휴수수료 체계를 흔드는 신종 사업형태인 `리워드 비즈니스 모델'이 활개를 치면서 유통질서를 혼탁하게 하고 있다.

리워드 비즈니스 모델은 원래 소비자가 리워드 프로그램을 통해 쇼핑몰을 이용할 경우 이에 따른 일정정도의 혜택을 돌려주는 개념이다. 하지만 오픈마켓과 포털업체, 가격비교사이트, 언론사 사이트들 입장에서는 이 리워드 프로그램이 쇼핑몰 업체들과의 수수료 정산에서 자사 사이트를 우회시키는 결과를 낳아 수익을 손해보게 된다.

가격비교ㆍ포털 등 결제과정 '후킹'피해
"사용자 동의 받고 설치" 쇼핑몰선 방관


◇리워드 사이트 후킹 논란= 포털이나 가격비교사이트 등은 쇼핑몰로부터 관문 역할에 대한 제휴수수료를 받게 되는데, 이 중 일부를 리워드 업체들이 가로채고 있다는 주장이다. 즉, 리워드 프로그램을 다운로드받아 설치한 소비자가 포털이나 가격비교사이트를 통해 온라인 쇼핑을 할 경우 이에 대한 대가에 대한 수수료 정산과정에서 제휴한 쇼핑몰로부터 받아야 할 수수료가 리워드사 매출로 잡히는 일종의 `후킹(Hooking)' 현상이 나타난다는 것이다.

가격비교사이트 다나와를 비롯한 쇼핑몰 제휴사들은 자사 사이트를 찾는 소비자들에게 해당 쇼핑몰 상품 구매연결을 해 주는 매개체 역할을 하고 있는데, 리워드 프로그램 배포사들은 별다른 노력 없이 쇼핑몰과 제휴사가 발생시킨 매출을 결제과정에서 빼 간다는 주장이다.

한 가격비교사이트 관계자는 "이같은 업체들은 소비자에게 적립금을 돌려준다는 명분 하에 매출을 가로채는 것이며, 만일 수익코드를 무단 변조할 경우에는 컴퓨터 사기죄가 성립될 수도 있다"고 주장했다.

다나와 관계자는 "갑과 을이 비즈니스를 하는데 병이 개입해 수익을 가로챌 경우 온라인유통 비즈니스 생태계는 엉망이 될 수 있다"면서 "소비자에게 이익을 돌려준다는 것을 빌미로 갑과 을의 계약을 침해한 게 될 수 있다는 법적 검토를 마쳤으며, 병(리워드 사이트)과 이를 방조한 갑(쇼핑몰)에 대해 가격비교협의회 차원에서 대응하는 것을 검토하고 있다"고 밝혔다.

또 한 언론사 사이트 운영자는 "리워드 프로그램을 설치해 이용하는 소비자가 상품을 쇼핑몰에서 직접 구매할 경우에는 전혀 문제가 되지 않지만, 쇼핑몰과 제휴한 가격비교사이트나 포털, 언론사 사이트를 통해 구매할 경우 제휴사에 돌아가야 할 수수료를 리워드 업체가 중간에서 상품결제를 위한 노력도 없이 후킹해 간다는 것은 눈뜨고 도둑맞는 꼴"이라고 말했다.

이와 함께 쇼핑몰의 최대 관문역할을 하는 대형 포털사들은 리워드 사이트에 대한 문제는 인지하고 있다고 밝히면서도, 적극적인 대응은 하지 않고 있다.

네이버 관계자는 "리워드 사이트로 인해 네이버지식쇼핑에 피해가 발생하는 상황에 대해서는 인지하고 있지만, 별도의 액션을 취하지 않고 있다"면서 "리워드사이트와 제휴한 쇼핑몰이 많은데 이를 막는다면 일종의 영업방해가 될 수도 있다"라고 전했다.

야후코리아 관계자는 "야후코리아를 포함해 업계에서 기술적으로 리워드프로그램을 100% 차단하는 것은 힘들다"면서 "리워드사이트측에서도 사용자 동의를 받았기 때문에 문제가 없다고 주장하고 있고 실제 정확한 피해액 산출이 쉽지 않은 측면도 있다"고 말했다.

◇쇼핑몰 업체들은 중립=오픈마켓과 대형쇼핑몰들은 관문역할을 하는 제휴마케팅 업체들의 이같은 문제제기에 대해 기술적으로 대처할 방법이 없다며 중립적인 태도를 취하고 있다.

이에 일각에서는 쇼핑몰들이 기존 제휴사들에 피해가 발생되고 있음을 인지하고 있으면서도, 리워드 사이트에 지불하는 수수료가 제휴사에 들어가는 수수료보다 오히려 싸다는 점과 기술적으로도 결제 정보를 제공하는 제휴사 코드를 증명할 방법이 없다는 점 등을 들어 암묵적으로 손을 놓고 있는 게 아니냐는 의심을 받고 있다.

이에 대해 G마켓 관계자는 "수수료 차이로 묵인하는 게 아니라 포털과 가격비교사이트와는 직접 제휴를 하지만, 20만~30만개나 되는 작은 쇼핑몰들은 제휴마케팅대행사인 `링크프라이스' 또는 `아이라이크클릭' 등을 통해 간접 제휴를 하는 만큼, 이들이 리워드적립 프로그램을 운영하는 것은 G마켓이 컨트롤할 사항은 아니다"고 말했다.

대형 오픈마켓 및 쇼핑몰에 직접 링크할 힘이 없는 작은 쇼핑몰들을 연결시켜 주는 중간 역할을 하는 제휴마케팅 대행사들 역시 중립적인 입장이다. 이들은 쇼핑몰이나 리워드업체, 이와 제휴한 포털 등이 모두 다 같은 고객이라는 설명이다.

링크프라이스 관계자는 "자사에 등록된 G마켓 등 판매자(머천트)가 400개이고, 샵가이드 등 어필리에이트(홈페이지 운영자)가 8만개인데 머천트와 제휴를 원하는 어필리에이트를 연결시켜 주는 역할을 하고 있다"면서 "리워드 사이트는 사용자의 동의를 받고 설치했기 때문에 자사 프로그램이 우선적으로 작동할 수밖에 없다는 게 이들 입장이며, 이는 각 사업자마다 본인의 제휴실적이 우선이라고 주장하는 셈이어서 중립적인 입장을 유지하고 있다"고 말했다.

◇리워드사, 보다 적극적인 자발적 노력 필요=쇼핑몰 중계역할을 하는 사이트들은 그동안 리워드 업체들이 이같은 모델을 통해 벌어들인 이익의 일정부분을 소비자에게 되돌려 준다는 점은 인정되나, 서비스 적용에서 결과적으로 수익에 손해를 끼치는 점을 끊임없이 지적해 왔다.

이에 이의를 제기한 대형 포털업체나 가격비교 사이트에 대해서는 자사 리워드 프로그램으로 결제되는 것을 차단해 주고 있다고 밝히고 있다. 특히, 최근 들어 리워드 비즈니스에 대한 논란이 커지면서 쇼핑몰 제휴마케팅 계약을 체결한 업체들의 피해를 최소화시키는 데 자발적으로 나서고 있다고 주장하고 있다.

샵가이드 관계자는 "리워드프로그램 배포가 늘고 있는 만큼, 리워드협회를 만들어 가이드라인을 제정하고 이를 준수하는 지 모니터링해 문제업체를 제재하는 방안을 강구 중"이라면서 "가격비교사이트나 포털처럼 중간역할을 하는 업체들의 수수료 매출에 피해가 가지 않도록 하는 `예외처리'가 기본 방침이다"고 설명했다.

리워드업체의 한 관계자는 "링크프라이스 등 제휴마케팅 대행사가 리워드업체 및 쇼핑몰, 홈페이지 운영자들을 연결시키는 다리 역할을 하는 만큼 중심을 잡고 시장정리를 해줬으면 한다"는 의견을 내놓기도 했다.

하지만 리워드업체들 또한 신문사, 방송사 등 수많은 사이트 및 온라인비즈니스 업체들에 툴바 서비스 등을 제공하는 등 제휴를 통해 사업을 확장해 온 만큼, 제휴마케팅 질서를 침해할 소지가 있는 부당이득 부분에 대해서는 보다 명확한 입장을 취해야 할 것이라는 게 관련업계의 공통된 목소리다.

특히 최악의 경우 쇼핑몰과 제휴돼 있으면서도 리워드프로그램의 이같은 방식을 모르는 업체는 자신도 모르는 사이에 손해를 볼 수밖에 없어, 리워드 비즈니스 모델과 관련된 쇼핑몰, 제휴마케팅업체, 리워드업체 모두가 보다 성숙한 유통질서를 바로 세우겠다는 인식이 절실하다는 지적이다.

Posted by SB패밀리
IE 후킹을 하는데 있어서 윈도우즈 업데이트를 계속 거쳐 오면서 작동이 안되는 경우가 생기는 걸 발견했다.

작년에 개발할 때에는 IE 창 에서 계속 주소창 검색을 해도 키워드 추출이 되었고 Redirect를 했었다.
그런데 2월에 테스트 할 때에는 테스트를 하다보면 갑자기 작동이 안되는 경우가 발생하는 걸 알았다.

그래도 작동에 문제가 없도록 했지만 윈도우즈와 IE의 버전별로 처리하는게 쉽지 않음을 다시 한 번 느꼈다.

알고리즘과 로직을 함께 이야기 하면서 문제점을 해결할 수 있도록 공감을 해줄 수 있는 개발자가 있다는 건 정말 행복한 경우인 것 같다.

주소창 검색과 검색창 검색에서 검색창 검색에서도 후킹으로 경쟁 프로그램이 작동할 수 없도록 하는 기능을 개발해야겠다.
이번에도 고생 좀 하겠는 걸 ^^
Posted by SB패밀리

[개발/MFC] 키보드 후킹

Hooking 중에서 키보드 후킹에 대해서 구현 방법을 알아보자.


/////////////////////////////////////////////////////////////////
//
// Hooking 전역 키보드 후킹
//
/////////////////////////////////////////////////////////////////

// MFC 다이얼로그 전역키보드 메세지를 가로챈다.

HWND g_hWnd = NULL;
HHOOK g_hHook = NULL;

LRESULT CALLBACK KeyHookProc(int nCode, WPARAM wParam, LPARAM lParam);

BOOL SBLiveDlg::SetHookProc()
{
 if (g_hHook != NULL)
  UnHookProc();
 g_hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyHookProc, (HINSTANCE)theApp.m_hInstance, NULL);

 return TRUE;
}

void SBLiveDlg:UnHookProc()
{
 if (g_hHook != NULL)
 {  
  UnHookWindowsHookEx(g_hHook);
  g_hHook = NULL;
 }
}

/////////////////////////////////////////////////////////////////
// Hook Procedure
/////////////////////////////////////////////////////////////////
LRESULT CALLBACK KeyHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
 if (nCode >= 0)
 {
  int nVKey = (int)wParam;

  PKBDLLHOOKSTRUCT pHookKey = (PKBDLLHOOKSTRUCT)lParam;

  if (nVKey == WM_KEYDOWN)
  {
   if (pHookKey->vkCode == VK_ESCAPE)
    SendMesage(g_hWnd, (WM_USER+1004), 0, 0);
  }
 }
 // Callnexthookex를 호출해줘야 한다.
 return ::CallNextHookEx(g_hHook, nCode, wParam, lParam);
}

 


 }
}


후킹(Hooking)이란  프로그램의 코드상에서 특정 지점의 메세지나 명령을 가로채서 원하는 작업을 구현하는 기술을 말한다.

지역 후킹(Thread ) : 특정 스레드에서 발생하는 메세지들에서
시스템 후킹(System wide) : 시스템의 모든 스레드에서 발생하는 메세지들에서

위의 소스에서 후킹을 처리하는 중심이 되는 함수는 LRESULT CALLBACK KeyHookProc(...)함수이다.

후킹을 하기 위해서 후킹을 설정하고 해제하는 함수가 있다.
HHOOK SetWindowsHookEx(int idHook, HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadId);

int idHook : 후킹 타입으로 WH_KEYBOARD 같은게 있다.
HOOKPROC lpfn : 후킹 프로시저의 주소(함수명)
HINSTANCE hMod : 후킹 프로시저의 인스턴스핸들
DWORD dwThreadId : 후킹 프로시저가 감시할 스레드 ID

후킹 해제
BOOK UnhookWindowsHookEx(HHOOK hhk);


참고로 키보드 후킹시에 nCode값을 살펴보면
바이트 번호    키값        내용

     --------------------------------------------------------------------
             0        Transition Status    Key Down 1
                            Key Up     0
     --------------------------------------------------------------------
             1       Previous Key State 이전에 어떤키가
                               눌려졌는가에대한 값
      --------------------------------------------------------------------
             2       Context Code    Alt키가 눌려지면 1
                                          아니면 0
      --------------------------------------------------------------------
           3-6      Extend Key Flag      확장 키보드에서 키가 눌려지면 1
                                                                                   아니면 0
      --------------------------------------------------------------------
           8-15     OEM Scan Code  키보드 스캔코드
      --------------------------------------------------------------------
          16-31                Repeat Count     키값의 반복횟수



 

Posted by SB패밀리
IE에 종속적으로 DLL 로딩을 하지 않고 IE를 제어할려고 했었다.
후킹을 이용하는 방법으로 기능상으로 작동은 한다.
하지만 다른 툴과의 경쟁에서 밀리는 것이 확인이 되었다.
이 후킹 방법은 안된다고 봐야하고 기본기능으로만 가능하다고 생각해야겠다.
다른 툴을 이길려면 다른 후킹 기능을 사용해야한다.

다시 도전해보자.
Posted by SB패밀리


인생은 잘 가다가 한 방에 훅 간다.
프로그램도 잘 실행되다가 바이러스에 한 방에 훅 간다.
이런 바이러스를 막는 방법에 사용되는 기법중 하나가 API Hooking(후킹)이다.

간략하게 후킹에 대해서 정리를 해보았다.

API Hooking

후킹(Hooking)이란 API 함수의 호출을 인터셉트(가로채다)하는 것을 의미한다.
어떤 소프트웨어의 작동을 변경하고 싶다면 후킹을 사용해서 할 수 있다.
후킹은 백신, 보안, 시스템 유틸, 프로그래밍 툴에 사용되고 있다.


Hook의 종류

1 Local Hook : 특정 어플리케이션에 대해서만 적용된다.

2 Global Hook : 시스템에서 사용되는 모든 프로세스에 적용된다.

 2.1
  Thread-specific : 한 프로세스에 속한 특정 쓰레드의 메세지 트래픽을 모니터링
  System-wide : 현재 실행중인 모든 쓰레드의 메세지 트래픽을 모니터링

 2.2
  - Injecting a DLL using registry
  - Injecting a DLL using Window hook
  - Injecting a DLL using remote thread
  - Injecting a DLL with Trojan DLL
  - Injecting a DLL as debugger

Method
  CreateRemoteThread [일반적 DLL Loader 프로그램]
  SetWindowsHookEx  [윈도우즈 메세지 후킹]
  Code Cave [사용되지 않는 메모리 사용]


그럼 좋은 프로그램 제작에 도움이 되면 좋겠습니다.

Posted by SB패밀리