ai 연결 하기 입니다

[한글 2024 Automation] 공식 보안모듈 RegisterModule=false 및 최초 SaveAs 접근 승인창 발생

안녕하세요. Windows 한글 Automation을 이용하여 문서 열기·수정·저장·PDF 변환을 사용자 승인창 없이 처리하려고 합니다.

공식 예제 DLL과 등록 구조를 사용했는데 RegisterModule이 false이고 최초 SaveAs에서 승인창이 발생합니다. 무승인 자동화를 위한 공식 해결 방법과 추가 진단 방법을 알려 주십시오.

환경

항목 실제 확인 결과
Windows Microsoft Windows 11 Home, 25H2, 64비트, 빌드 26200.9445
한글 제품 한글 2024
한글 버전 13.0.0.2760 (COM Version: 13, 0, 0, 2760)
한글 비트 수 32비트, PE Machine 0x014C
한글 실행 파일 C:\Program Files (x86)\HNC\Office 2024\HOffice130\Bin\Hwp.exe
실행 계정 903ACADEMY\canu5
계정 SID S-1-5-21-735489085-382134810-812652874-1001
COM 객체 HWPFrame.HwpObject 사용, 객체 생성 성공
CLSID {2291CF00-64A1-4877-A9B4-68CFE89612D6}
진단 PowerShell Windows PowerShell 5.1.26100.9444, 32비트

Windows 레지스트리의 ProductName에는 Windows 10 Home이 남아 있으나, CIM 운영체제 조회 결과는 Windows 11 Home입니다. COM 호출 프로세스와 새 한글 프로세스의 사용자 SID가 일치함을 별도 진단에서 확인했습니다.

공식 보안모듈과 등록

등록 키는 HKCU\Software\HNC\HwpAutomation\Modules입니다. Exam903FreshOfficial 값은 REG_SZ이며 위 DLL의 절대경로가 들어 있습니다. 32비트·64비트 레지스트리 조회 결과가 일치했습니다. Modules\Uses의 동일 이름 DWORD 값은 1입니다.

첨부 HwpAutomation_Modules.reg는 문의 패키지 작성 시 실제 HKCU 키를 Windows reg export로 내보낸 원본입니다. 진단 과정에서 등록했던 다른 이름과 Uses 하위 키도 생략하지 않았습니다. 문의 패키지 작성 중 등록값이나 DLL은 변경하지 않았습니다.

재현 코드와 결과

아래는 마지막 시험에서 실행한 핵심 순서입니다. 최초 저장 직전까지 빈 문서이며, 기존 시험지나 다른 문서는 열지 않았습니다. RegisterModule은 객체 생성 직후 첫 COM 메서드로 호출했습니다.

$h = New-Object -ComObject HWPFrame.HwpObject
$reg = $h.RegisterModule('FilePathCheckDLL', 'Exam903FreshOfficial')
# 실제 반환값: False
$h.XHwpWindows.Item(0).Visible = $true
$file = 'C:\Users\canu5\OneDrive\문서\ChatGPT\시험대비 책자 만들기\TEMP_SECURITY_TEST\test.hwp'
$created = $h.SaveAs($file, 'HWP', '')
# 여기에서 파일 접근 승인창 발생. 저장 성공 반환은 확인하지 못함.

빈 문서를 최초 저장한 뒤 새 인스턴스에서 열기·TEST 입력·저장·닫기·재열기·PDF 변환을 시험할 계획이었으나, 준비 단계인 빈 문서 최초 SaveAs에서 접근 승인창이 발생하여 중단했습니다. 따라서 이후 열기·수정·재열기·PDF 변환은 이 시험에서 실행하지 않았습니다.

관찰 항목 결과
RegisterModule 반환값 false
실패 단계 CREATE_BLANK: 빈 문서 최초 SaveAs
접근 승인창 횟수 1회 관찰
대화상자 제목 글
확인 시각 2026-09-16 00:32:43 +09:00 (관찰 시각이며 정확한 생성 시각은 미측정)
표시 내용 해당 test.hwp에 접근하려는 시도가 있으며 정상적인 작업 과정에만 접근을 허용하라는 안내
버튼 접근 허용 / 모두 허용 / 허용 안 함 / 모두 안 함
승인창 조작 어떤 버튼도 클릭하지 않음

추가로 확인한 내용

  • 새 한글 프로세스에서도 RegisterModule=false가 재현됩니다.
  • 짧은 DLL 경로, 공백·한글 없는 임시 드라이브 경로에서도 false였습니다. 임시 경로 매핑은 해당 진단 후 해제했습니다.
  • 공식 예제 이름 FilePathCheckerModuleExample으로도 false였습니다.
  • 직접 IDispatch 호출은 HRESULT=0이지만 반환 VARIANT_BOOL은 false이며 COM 예외는 없었습니다.
  • 빈 문자열로 등록 해제하면 true이지만 이를 보안모듈 등록 성공으로 해석하지 않았습니다.
  • 실패 호출 후 한글 프로세스의 로드 모듈 목록에는 해당 보안 DLL이 남아 있지 않았습니다. DLL이 거부된 정확한 내부 단계는 확인하지 못했습니다.
  • 한글 COM 추가 기능 목록에는 등록 이름이 나타납니다. 다만 UI 자동화 도구가 해당 모달 창을 활성화하지 못해 설정 버튼 적용은 검증하지 못했습니다.

문의 사항

  1. 이 제품·빌드에서 공식 예제 DLL을 사용한 무승인 Automation을 위해 추가로 필요한 공식 등록 또는 설정 절차가 있습니까?
  2. RegisterModule이 COM 오류 없이 false를 반환하는 구체적인 원인을 확인할 수 있는 한컴 로그, 오류 코드 또는 공식 진단 방법이 있습니까?
  3. 단독 LoadLibrary와 IsAccessiblePath 조회는 성공하지만 RegisterModule은 false인 경우, 어떤 항목을 추가 점검해야 합니까?
  4. 해당 빌드에서 알려진 제한이나 수정 버전이 있다면 공식 안내를 부탁드립니다.

원본 시험지와 실제 문서 내용은 첨부하지 않습니다. 승인창을 자동 클릭하는 방식이 아닌 공식 보안모듈 등록을 통한 해결 방법을 요청합니다.

안녕하세요

  1. 추가로 필요한 공식 등록·설정 절차
    없습니다. HKCU\Software\HNC\HwpAutomation\Modules에 REG_SZ(값 이름=등록 이름, 데이터=DLL 절대경로)를 넣고 파일 접근 전에 RegisterModule(“FilePathCheckDLL”, “<값 이름>”)을 호출하면 됩니다.
    접근 승인창 자동화 질문2 게시글 참고 부탁드립니다.

  2. 로그·오류 코드·공식 진단 방법
    별도의 로그나 오류 코드를 제공하지 않습니다.

  3. 단독 로드·export 조회는 성공하는데 false인 경우
    DLL과 레지스트리는 정상이므로, 프로세스에서는 로드되지만 한글 프로세스 안에서 로드가 차단되는 경우일수도 있을 것 같습니다. DLL을 OneDrive 동기화 폴더 밖(예: C:\HncSec)으로 옮겨 레지스트리 값을 갱신하고, 스마트 앱 제어·Defender ASR·제어된 폴더 액세스 설정과 값 형식이 REG_EXPAND_SZ가 아닌지 확인해 주십시오.
    Process Monitor를 사용해서 필터로 RegisterModule 호출 시점의 CreateFile 결과(ACCESS DENIED / NAME NOT FOUND / 클라우드 파일 오류)를 확인하시면 좋을 것 같습니다.

  4. 알려진 제한 및 수정 버전
    이 증상으로 확인된 제한이나 수정 버전은 현재 없습니다.

감사합니다.