본문 바로가기

파워컴퓨팅/포터블 컴퓨팅

Thinapp 를 이용해 나만의 샌드박스(가상환경)을 만들자

2009-03-16 벌커덕스

 

어느날 문득 Thinapp로 만들어진 한글뷰어를 사용하다가 백신프로그램에서 덜컥 뷰어.exe를 바이러스로 의심된다며 지워버렸다.

 

필자는 thinapp 빌드시 항상 cmd.exe 를 메인컨테이너로 사용하고 별도의 실행 exe를 뽑아서 실제환경에 확장자를 등록해서 사용하곤 한다.

물론 단일파일환경을 좋아하는 유저도 있겠지만 유독 thinapp사용시 cmd.exe를 기본으로 만들어 가상환경내 다른일(?)을 할 경우도 있다는 생각에 exe를 두개로 만들어 사용하곤 했다.

 

그러다보니 위처럼 로더exe가 날라갈경우 cmd.exe 를 통해 가상환경을 들어가서 가상환경내의 exe를 실행하면 해당 프로그램을 다시 구동할수 있으나 확장자 등록해놓은 것은 무용지물이 되고 만다..

 

그래서 별도의 로더를 만들었다.

Vstart.exe 라는 프로그램인데 이 프로그램의 역할은 ini파일의 데이터를 읽어와서 그 안에 지정된 프로그램만 구동시켜준다. 물론 뷰어같은곳에도 적용할수 있도록 명령줄 파라메터를 인식하여 전달해준다.

 

일단 vstart.exe 만 thinapp로 빌드한다.

필요한 파일은 다음과 같다.

Build.bat

빌드하는 배치파일

Package.ini

빌드환경설정 내용은 아래와 같다.

 

[Compression]

CompressionType=fast

 

[Isolation]

DirectoryIsolationMode=WriteCopy

 

[BuildOptions]

SandboxPath=.

AccessDeniedMsg=You are not currently authorized to run this application. Please contact your Administrator.

SuggestedName= vStart

OutDir=bin

 

SandboxName=vStart

InventoryName=vStart

VirtualDrives=Drive=c, Serial=d43611c1, Type=FIXED

 

[vStart.exe]

ReadOnlyData=bin\Package.ro.tvr

Source=%Drive_C%\vstart.exe

HKEY_CURRENT_USER.txt 

메모장에서 유니코드타입으로 아무런 내용 없이 저장한다.

저장후 파일크기는 2바이트이다. (유니코드 헤더만 저장)

HKEY_LOCAL_MACHINE.txt 

상동

HKEY_USERS.txt 

상동

%Drive_C%\vstart.exe

하위에 %drive_C%라는 폴더를 만들고 그안에 vstart.exe 복사한다.

 

필요한 파일은 이것으로 끝이다.. thinapp는 필수 프로그램이기에 검색사이트에서 찾아보면 된다.

이후 build.bat 를 실행해서 빌드를 수행하면 약 500K의 vstart.exe 파일이 생긴다..

 

이것으로 준비끝..

이제 500K짜리 vstart.exe 를 새폴더를 만들고 복사해두자..

 

최초 프로그램을 실행하면

와 같은 명령표시줄만 나타낸다.. 이창을 닫고 복사해둔 폴더로 가보면 못보던 폴더가 생성되어 있는 것을 볼수있다.

추후 프로그램을 설치하고 작업을 진행해도 그 폴더안에 저장되기 때문에 그때그때 확인해볼 수 있다.

 

이후 입맛에 맞게 변형해서 사용하면 된다.

 

샌드박스를 이용하여 사용하는 방식은 두가지..

 

첫째는 새로운 프로그램을 설치해서 사용하는 방법과

둘째는 기존에 쓰던 프로그램을 그냥 쓰는 방법이 그것이다.

이때 vstart.ini 라는 파일을 만들어서 같은경로에 저장해두자.

 

Vstart.ini 의 내용은 다음과 같다.

 

[config]

run="C:\Program Files\HNC\HOfficeViewer70\HncViewer70\HncView.exe"

 

일반적인 ini 파일이므로 run= 뒤에 사용할 프로그램의 절대경로를 적어두면 된다.

물론 이것은 가상환경내의 파일을 지정 할 수도 있고 (첫째방법)

기존에 쓰던 프로그램을 지정할 수도 있다. (둘째방법)

 

가령 기존에 쓰던 토탈커맨더를 샌드박스를 이용해 사용하려면

Run="d:\Win-Util\Wincmd\TOTALCMD.EXE" 라고 지정하면 되고.

 

한글뷰어를 설치해서 쓰려면 그냥 명령창만 띄운뒤 셋업을 하고나서

run="C:\Program Files\HNC\HOfficeViewer70\HncViewer70\HncView.exe"

라고 지정해서 쓰면 된다.

 

이때 확장자 연결을 해두려면 그냥 hwp 파일을 vstart.exe로 연결해버리면 끝..

 

그 밖에도 많은 활용이 가능하다..




빌드전 vstart.exe 는


이고 VC2003 으로 컴파일 하였다.

소스는 몇줄 안된다. 매우 간단하다.


자작하려면 한가지 참고할것은 ShellExecute는 가상환경에서 안돌아가고  WinExec를 사용해야한다...

'파워컴퓨팅 > 포터블 컴퓨팅' 카테고리의 다른 글

포터블 소프트웨어와 저작권..  (0) 2009.05.08