d3ro-voice/docs/re-findings/native-dll-patterns.md
Yun Chan e24bb8378c 초기 프로젝트 설정: 하네스 시스템 + 설계서 + RE 노하우
- CLAUDE.md: 프로젝트 규칙, 기술 스택, 코딩 규칙, 페이즈 로드맵
- .claude/settings.json: 권한, 강제 훅 (매 프롬프트 설계서 규칙 주입)
- .claude/skills/: implement-phase, review-phase, scaffold, test-commit, debug
- .claude/agents/: electron-architect, voice-pipeline-expert, ui-specialist
- docs/design/00-09: 마스터 아키텍처, 서비스 명세(16개), IPC(113채널),
  DB스키마, UI컴포넌트, 검증리포트, 외부엔진연동, 갭분석,
  VoiceMode패턴, 디자인시스템, 히스토리팝업
- docs/phases/1-7+3.5: 전체 구현 페이즈 문서
- docs/re-findings/: Speakly RE 노하우 5개 문서
2026-04-05 01:03:03 +09:00

1.9 KiB

NativeHelper.dll 디컴파일 결과 핵심

Ghidra 분석: 2,692개 함수, 196,683줄 디컴파일 C코드

전체 결과: C:/tmp/ghidra_decompile_output/_all_decompiled.c

37개 Action 디스패치 테이블

ping, insertText, getCursorState, clipboardPaste, getActiveApp, isAppRunning, activateApp, getClipboardText, setClipboardText, clearClipboard, captureScreenshot, startKeyMonitoring, stopKeyMonitoring, startAppMonitoring, stopAppMonitoring, setKeyRecordingMode, setFnKeySuppression, startEditMonitor, stopEditMonitor, updateHotkeys, simulateKeyPress, simulateKeys, muteSystemAudio, unmuteSystemAudio, isSystemAudioMuted, showNotification, removeNotification, initializeNotifications, getNotificationPermission, checkAccessibilityPermission, requestAccessibilityPermission, enableSelfAccessibility, checkMicrophonePermission, requestMicrophonePermission, getMicrophoneDevices, startMicrophoneCapture, stopMicrophoneCapture, setTextOperationConfig, exploreAccessibilityTree

키보드 후킹 (D3RO-VOICE에서 uiohook-napi로 대체)

  • WH_KEYBOARD_LL 전역 후크
  • LLKHF_INJECTED 플래그로 자체 이벤트 바이패스
  • Win키 핫키 시 합성 keyup 주입 (시작 메뉴 방지)
  • 8초 stale key 정리

WASAPI 캡처 (D3RO-VOICE에서 Web Audio API로 대체)

  • 이벤트 구동: WaitForMultipleObjects(captureEvent, exitEvent)
  • 리샘플링: 디바이스 포맷 → 24kHz mono
  • XAudioProcessor: Opus 인코딩 (로컬 앱에서는 불필요)

대체 매핑

Speakly (NativeHelper.dll) D3RO-VOICE (npm 패키지)
WASAPI 마이크 캡처 Web Audio API / node-record-lpcm16
Opus 인코딩 불필요 (PCM 직접 전달)
WH_KEYBOARD_LL uiohook-napi
SendInput (Ctrl+V) @nut-tree/nut-js
Win32 Clipboard API electron clipboard API
UI Automation 초기 미구현, 추후 추가
IAudioEndpointVolume loudness npm
Toast Notification electron Notification API