예전에 잡지사 애독자 선물코너를 빠짐없이 채우고있던 비주얼 솔루션팩이란
제품이 있다. 요즘도 베이스텍이란데서 잡지사에 선물로 제공해주곤한다.
이건 전부 VBX이기때문에 VB6 사용자에겐 무용지물이다.
볼랜드 솔루션 팩의 일부중 가젯(GADGET)을 설치하게 되면 (컴퓨터 형사
인스펙터 가제트와 철자가 같다) VBTBL.LIC 파일이 설치되고 그 내용은
[리스트2]와 같다. 그런데, 바로 VBTBL.LIC 파일 첫 머리의 라이선스를 나타내는
문장인
'MicroHelp vbxs for Borland Tools ...'
라는 이 부분이 VBX해킹을 시작하게 된 계기가 되었다. VBX 약점자체를 보여준
결정적인 열쇠가 된 부분이다.
마이크로헬프사의 VBTools 3.x에도 MHMQ200.VBX가 있고, 볼랜드 솔루션
팩에도 제한판이긴 하지만 MHMQ200.VBX가 있다는 데 착안을 했다.
같은 회사제품인데, 하난느 정품, 하나는 볼랜드 솔루션팩에 번들이 된것이다.
통신망의 공개 SW들에 포함된 VBTools 3.x 관련 VBX 파일들을 몇 개 구했다.
이걸 비주얼베이직 3에 이용해 보려고 하니까 메모리에 로드가 되지 않았다.
VBTools 3.x의 프로텍트 유형을 알아내지 못해서 고민하던 중에
볼랜드 솔루션 팩의 가젯 패키지에 끼어 있는 MHMQ200.VBX를 덤프해서
속내용을 살펴보았다.
그 내용은 "VBTools 3.x는 VBTOOLS.LIC라는 라이선스 파일이 필요하며, 만약
당신이 MicroHelp's VBTools 3.x의 정식 사용자라면 테크니컬한 도움을 요청할 수 있다." 라는것이었고,
약간 아래쪽에는 VBTBL.LIC라는 라이선스 파일명과 함께 "당신이 만약 볼랜드 솔루션 팩의 정식 사용자라면 매뉴얼의 인스톨 부분을 참고하라"고 되어 있다.
찬찬히 읽어보면 두가지 경우에 대해서 서로 다른 메시지가나게한것이며, 라이선스 파일이 두개라는 뜻이다. VBX의 내부에서 덤프한 내용이 필자에게 프로텍트에 관한 비밀을 모두 알려주고 있음을 느낄 수 있다.
눈치 빠른 독자라면 이것은 [리스트 2]의 VBTBL.LIC 파일 내용의 첫머리에 나타난 내용과 똑같다는 것을 이미 눈치챘을 것이다.
'VBTools Copyright (c) 1993 MicroHelp Inc.'
라는 부분이 VBTOOLS.LIC 라이선스 파일의 첫머리 문자열들임을 알 수 있다.
[리스트 3]까지 참조해 보면 확실히 눈에 보일 것이다.
<리스트2>
MicroHelp vbxs for Borland Tools Copyright (c) 1993 MicroHelp Inc.
Warning: This product is licensed to you pursuant to the terms of the Borland license agreement included with the original software, and is protected by copyright law and international treaties.
<리스트3> -- VBTools 3.x 의 MHMQ200.VBX을 덤프한 내용
Turbo Dump Version 3.1 Copyright (c) 1988, 1992 Borland International
Display of File MHMQ200.VBX
004780: .....vbtools.lic. VBTools Copyright (c) 199 3 MicroHelp Inc.
0047C0: .License File No t Found!.If you are a licensed u ser of MicroHelp
004800: 's VBTools 3.x please contact te chnical support for help.vbtbl.l
004840: ic. MicroHelp vbxs for Borland Tools Copyright (c) 1993 MicroHel
004880: p Inc..License File Not Found!. If you are a licensed user of Bor
0048C0: land's VBX Tools , please check your manual for installation info.
MicroHelp사의 프로텍트 기법
MicroHelp사의 패키지에 사용된 프로텍트들의 공통적인 특징을 정리해 보면
첫 번째로는 .LIC 파일과 VBX속에 있는 문제의 글자들을 비교해서 .LIC 파일의
내용이 옳은 것인지 검사한다는 것이다.
재미있게도 VBTBL.LIC일 때와 VBTOOLS.LIC일 때처럼 따로따로 라이선스 파일을
정의해둔 부분 때문에 프로텍트 기법을 알아내게 되었지만 말이다.
그렇다면 당시 MicroHelp사(지금은 becubed사)의 VBX 패키지 제품 가운데 VBTOOLS 3.x-5.x, Muscle, 3D-GIZMO, MHViewer, MHSpellPro등 거의 전부가
이런 .LIC파일 방식을 사용하고 있지나 않을까 하는 의문이 생기게 되는데 실제로 예상이 적중했다.
필자가 알아낸 방법으로 라이슨스 파일의 첫머리들을 공개하니 참고가 되기 바란다. 라이선스 파일 처머리를 텍스트에디터로 만들어 라이슨스 파일명으로 저장하면 된다.
주의할 것은 VBTools 3.x의 경우 라이선스 파일 첫머리의 'VBTools'와 'Copyright (c) 1993 MicroHelp Inc.'사이는 정확하게 2칸이 떨어져 있다.
한 칸만 덜 띄워도 'Cannot load custom contol~' 메시지가 나도록 되어 있다.
'VBTools'에서 글자의 대문자와 소문자도 꼭 구별해야 한다. 위의 글자를 되도록 복사하는 방법을 권하고싶다.
.LIC파일은 \SYSTEM 디렉토리에 있기 마련인데 VBTOOLS4.LIC'만은 \WINDOWS 디렉토리에 위치해야 한다는 점도 주의하자.
'VBViewer'와 'MhComm'은 한 칸씩만 띄우도록 한다.
또 한가지 중요한 점은 MicroHelp의 VBX들은 MHRUN200.DLL이나 MHRUN300.DLL이라는 실행 런타임 모듈이 없으면 실행시 동작하지 않는다.
이것은 비베의 VBRUN300.DLL이 없으면 비주얼베이직으로 작성한 프로그램이
동작 않는 것과 같다.
보통 비주얼베이직으로 만든 공개 SW들은 MHRUN300.DLL을 포함하고 있다.
구 버전인 'VBTools 2.x'를 디자인하려고 할 때는 MHDES200.DLL이라는 디자인
타임용 DLL이 따로 있어야 한다.
<> MH3DGIZ.LIC 2칸
3-d Gizmos Copyright (c) 1993 MicroHelp Inc.
<> MHVIEW.LIC 1칸
VBViewer Copyright (c) 1993 MicroHelp Inc.
<> VBTOOLS4.LIC 2칸
VBTools4 Copyright (c) 1993 MicroHelp Inc.