soledad

2.2 보안 승인 모듈 설치

Estimated reading: 1 minute

한/글 액티브X 컨트롤

한/글(HWP)은 액티브X(ActiveX) 기술을 이용하여 만들어진 응용 프로그램(EXE)입니다.

액티브X(ActiveX) 는 마이크로소프트사가 개발한 재사용 가능한 객체지향적인 소프트웨어 구성 요소 개발에 사용되는 기술입니다. 액티브X는 컴포넌트 오브젝트 모델(COM)객체 연결 삽입 (OLE)을 적용해 월드와이드웹(WWW)으로부터 다운로드 받은 컨텐츠들을 이용하는 데 이용됩니다. 액티브X(ActiveX) 컨트롤(Control)은 ActiveX 기술을 이용해 만든 응용 프로그램을 말합니다.[1]

보안 팝업 창

한/글 액티브X 컨트롤은 이미 작성된 한/글 문서 파일이 바이러스나 악성코드에 의해 수정 및 변조되거나 서버로 전송되는 것을 방지하고자 문서 파일을 열거나 저장할 때 사용자로부터 권한을 획득하여 승인하는 절차를 수행하도록 되어 있습니다. 오토핫키 언어를 이용해서 자동으로 문서를 열때 보안 승인 모듈을 체크하지 않으면 아래 그림과 같이 보안 팝업 창이 표시됩니다. 이로 인해 사람이 직접 클릭해줘야 하는 경우가 발생합니다. 따라서 후속으로 작업해야 하는 문서 자동화 작업을 더 이상 진행할 수 없는 문제가 발생합니다.

그림1.

오토핫키와 같이 이미 검증받은 외부의 응용 프로그램에 의해 파일을 열거나 저장할 때에는 이러한 권한 승인 절차가 불편하기만 합니다. 이러한 불편함을 해결하기 위해 한/글 액티브X 컨트롤은 사용자가 직접 작성한 보안승인 모듈을 등록하여 사용할 수 있도록 RegisterModule()라는 API 함수를 제공합니다.

RegisterModule 함수

한/글 액티브X 컨트롤이 제공하는 API 중 보안 승인 모듈을 등록하는 함수는 RegisterModule() 입니다.

RegisterModule("모듈세부유형", "모듈데이터")

모듈 유형 (Module Type)

RegisterModule()의 첫 번째 인자는 모듈유형(ModuleType)으로 크게 FilePathCheck와 UserAction 모듈 2가지 중 하나를 등록할 수 있습니다. FilePathCheck는 FilePathCheckProc, FilePathCheckDLL, FilePathCheckHandle로 다시 분류할 수 있습니다. 여기에서는 DLL 형태의 보안 승인 모듈을 사용하기 때문에 FilePathCheckDLL을 사용합니다.

아래 표는 모듈유형의 종류에 대해서 보여줍니다.

모듈유형 모듈세부유형 설명
FilePathCheck FilePathCheckDLL 파일경로 승인모듈을 DLL 형태로 추가
FilePathCheck FilePathCheckProc 파일경로 승인모듈을 Callback Procedure 형태로 추가
FilePathCheck FilePathCheckHandle 파일경로 승인모듈에 제공할 Instance Handle
UserAction UserAction UserAction DLL 모듈을 추가

모듈 데이터 (Module Data)

RegisterModule()의 두 번째 인자는 데이터 정보(ModulData) 입니다. 첫 번째 인자에 입력한 모듈의 유형에 따라 데이터를 입력할 수 있습니다. 모듈 유형별 필요한 데이터는 아래 표와 같습니다. 첫 번째 인자를 FilePathCheckDLL를 입력했으므로 Registry에 등록된 DLL 모듈 경로 키 값인 FilePathCheckerModule를 입력합니다.

아래 표는 모듈 데이터의 종류에 대해서 보여줍니다.

모듈세부유형 인자 값 설명
FilePathCheckDLL Registry에 등록된 DLL 모듈 경로 키 값 Registry에 등록된 DLL 모듈 경로 키 값
FilePathCheckProc Function Pointer 사용자가 정의한 Callback 함수의 함수 포인터
FilePathCheckHandle Control ID Control을 구분할 목적으로 사용되는 Control ID
UserAction Registry에 등록된 DLL 모듈 경로 키 값 Registry에 등록된 DLL 모듈 경로 키 값

레지스트리에 보안승인모듈 환경설정

보안 승인 모듈을 로컬 폴더에 복사

  • 아래의 FilePathCheckerModuleExample.zip 파일을 다운로드 받아 압축 해제합니다.

FilePathCheckerModuleExample.zip

  • 압축 해제 된 FilePathCheckerModuleExample.dll 파일을 C:\ 경로에 복사합니다.

레지스트리에 파일 경로 설정

  • 레지스트리 편집을 위해 시작 > 실행(단축키, Alt+R)에서 regedit 명령을 입력합니다.

  • 레지스트리 편집기(regedit)에서 아래 경로로 이동합니다. 컴퓨터HKEY_CURRENT_USERSOFTWAREHNCHwpAutomationModules

  • RegisterModule 함수에서 모듈 데이터로 사용할 레지스트리 키를 새로 추가합니다. 레지스트리 키 유형은 문자열 값, 이름은 FilePathCheckerModule, 값 데이터는 c:FilePathCheckerModuleExample.dll 로 설정합니다.

보안승인모듈 적용 확인

아래는 오토핫키로 한/글 문서 파일을 열때 보안승인모듈을 적용하는 스크립트와 결과입니다.

;1.아래아한글 COM 오브젝트 생성
IHwpObject := ComObjCreate(HWPFrame.HwpObject.1)

;2.보안모듈 체크
IHwpObject.RegisterModule(FilePathCheckDLL, FilePathCheckerModule)

;3.파일 경로 지정
filePath := A_WorkingDir sample.hwp

;4.파일 열기
IHwpObject.Open(filePath, HWP,)

;5.아래아한글 윈도우창을 표시 속성을 Visible로 설정
IHwpObject.XHwpWindows.Item(0).Visible := true

파일-열기

0 0 votes
추천 평점
Subscribe
Notify of
guest
0 댓글
Inline Feedbacks
View all comments
Share this Doc
CONTENTS
Ask ChatGPT
Set ChatGPT API key
Find your Secret API key in your ChatGPT User settings and paste it here to connect ChatGPT with your Tutor LMS website.