티스토리 뷰



간단한 화면 녹화 프로그램을 찾다가 국내에서도 다양한 무료 프로그램을 배포하고 있음을 알 수 있었습니다. 그렇지만 화면 녹화라는 것이 시스템 자원을 엄청나게 사용할 수 밖에 없기 때문에 애드웨어나 악성코드에 대한 심리적인 부담은 어쩔수가 없는 것 같습니다. 그래서 소스를 공개하고 있는 도구를 찾아 보았고 예전에 한번 사용한 기억이 있었던 캠스튜디오의 소스 코드를 내려받아 빌드해서 사용해 보기로 했습니다. 실제로 캠스튜디오의 경우에도 악성코드가 포함되었다는 논란이 있기도 했었습니다.(https://en.wikipedia.org/wiki/CamStudio 참조)


소스 코드는 http://sourceforge.net/p/camstudio/mercurial/ci/default/tree/CamStudio2.7/에서 다운로드 받을 수 있습니다.



위의 그림은 소스포지의 소스코드 리포지토리의 모습인데 이 화면 상단에 있는 "Download Snapshot"을 클릭하면 캠스튜디오의 소스 코드 전체를 압축 파일로 받을 수 있습니다.


소스 코드를 받으시면 적절한 디렉토리에 압축 파일을 해제하고 사용하시는 백신 프로그램으로 일단 소스 폴더 전체를 위의 그림과 같이 점검합니다.

소스포지에서 다운로드 받아 압축을 해제한 디렉토리의 모습은 위의 그림과 같습니다. CamStudio2.7 디렉토리로 이동합니다.

CamStudio2.7 디렉토리의 내용은 위의 그림과 같습니다. 여기에서 CamStudio.sln을 더블클릭하면 비주얼스튜디오 2010을 통해서 간편하게 프로그램을 빌드할 수 있습니다. CxImage, libconfig와 같은 패키지를 별도로 설치해 주어야 한다고 했으나 프로젝트 패키지 내에 모두 포함되어 있었습니다.



솔루션 내에는 위의 그림과 같이 여러 외부 모듈을 포함하여 여러 프로젝트로 구성되었지만 아래와 같이 한번에 빌드가 잘 되었습니다.



솔루션의 빌드 결과는 프로젝트 디렉토리 아래의 Release 폴더에 있습니다.


빌드된 여러 프로그램 중에서 화면 녹화기인 Recorder.exe를 실행시킵니다.



프로그램을 실행시키면 위의 화면과 같이 외부 사이트로 나가는 네트워크 접근이 있다는 경고창이 나오는데 소스코드를 보니 MainFrm.cpp 프로그램에 아래와 같이 프로그램의 새버전을 확인하는 루틴이 있었습니다.

		CInternetConn myConnection;
		BOOL isOK = myConnection.ReadFile("http://camstudio.org/checkdaversion/version2.xml" , strBuffer);
		if(!isOK)
		{
			return;
		}


새버전 확인으로 문제 없는 것을 확인했으니 그냥 사용해도 되지만 찜찜하면 버전체크하는 함수인 CheckForNewVersion()를 호출하지 않도록 주석 처리합니다.


위의 그림은 새버전 검사 로직을 주석 처리하여 새롭게 빌드한 Recorder.exe를 실행시킨 결과입니다. 설치 파일을 만들지 않고 Release 폴더에 있는 내용을 그대로 사용하기로 했습니다. 화면 녹화 기능을 위해서는 ffmpeg.exe가 필요한데 Recorder 디렉토리에 있는 ffmpeg.exe를 추가하여 실행하면 정상적으로 사용할 수 있습니다. 제가 빌드한 내용을 압축하여 첨부합니다.



CamStudio27.7z



댓글
댓글쓰기 폼