커뮤니티

종료시 덤프파일을 AI로 분석시킨 것입니다. (AWS윈도서버/32비트)

프로필 이미지
한걸음씩
2026-09-16 14:54:38
60
글번호 233655
답변완료

[기술 문의] 예스트레이더 반복 비정상 종료(3일간 4회) — SKCommCM.dll(SignKorea 인증서 모듈)이 인증서 파싱 중 Access Violation


1. 발생 개요

- 2026-09-14 ~ 09-16 사이 4회 종료. 매번 SysFiles\user\dmp\ 에 덤프 생성됨 (4개 모두 첨부).

  ┌──────────────────────┬──────────────────────┬─────────┬──────────────────────┬──────────────────┐

  │ 덤프 파일             │ 프로세스 시작(KST)    │ 가동시간 │ 종료 위치             │ 폴트 주소(읽기)   │

  ├──────────────────────┼──────────────────────┼─────────┼──────────────────────┼──────────────────┤

  │ ...26.09.14.09.54.12 │ 09-14 08:55:21       │ 1.0시간 │ SKCommCM.dll+0x495bb │ 0x00004153       │

  │ ...26.09.14.17.35.07 │ 09-14 10:18:13       │ 7.3시간 │ SKCommCM.dll+0x495bb │ 0x01010705       │

  │ ...26.09.15.05.45.41 │ 09-14 19:02:59       │ 10.7시간│ SKCommCM.dll+0x3879c │ 0xfbc1ffac       │

  │ ...26.09.16.13.24.31 │ 09-16 08:21:55       │ 5.0시간 │ SKCommCM.dll+0x495bb │ 0x02020705       │

  └──────────────────────┴──────────────────────┴─────────┴──────────────────────┴──────────────────┘

- 예외 코드: 4건 모두 0xC0000005 EXCEPTION_ACCESS_VIOLATION (읽기)

- 실행 환경: AWS EC2 인스턴스, Windows Server(빌드 26100, 8 vCPU, RAM 64GB), 32비트 예스트레이더(WOW64)

- 예스트레이더 버전: YesTraderRun.exe 2026-09-12 빌드 (4건 동일). SystemTrading.dll은 09-14 첫 재시작 때 자동 업데이트(09-10 빌드 → 09-14 빌드)되었으나 종료는 계속 발생 → 해당 업데이트와 무관

- SignKorea 모듈: SKCommCM.dll 9.9.8.9 (2023-03-08), SKComdIF.dll 10.0.4.1 (2023-03-08), SKCommEM/SC.dll (2023-03), SKCommIC.dll (2021-11), SKComdCM/EM/SC.dll (2020-11) — 4건 모두 동일 버전

- 이용 증권사: [기재]

- 종료 직전 상황: [기재 — 예: 자동매매 주문 발생 시 인증서 관련 창이 뜨는 시점]


2. 덤프 분석 결과 (미니덤프 파서 + rust minidump-stackwalk, 두 결과 일치)

- 4건 모두 메인 UI 스레드에서, 동일한 호출 경로로 종료됨:

  주문 관련 창(OrderManager.dll) → 모달 대화상자 → YesTraderRun.exe+0x7440d → 대화상자(YesToolkitPro/Controls20)

  → YesTraderRun.exe+0x736d6 → YesTraderRun.exe+0x727ce → SKComdIF.dll+0x4c3d3 → SKCommCM.dll+0xd9f4(인증서 정보 추출)

  → SKCommCM.dll+0x3c30b → (확장 필드 파싱) → 크래시

- 대표 호출 스택 (09-16 13:24 건):

  00 SKCommCM.dll+0x495bb   ← 크래시 (mov al,[eax+ecx], eax=0x02020705, ecx=0)

  01 SKCommCM.dll+0x518ef

  02 SKCommCM.dll+0x4aa4d

  03 SKCommCM.dll+0x4a69f

  04 SKCommCM.dll+0x48eaf

  05 SKCommCM.dll+0x4297f

  06 SKCommCM.dll+0x3a23f

  07 SKCommCM.dll+0x3beae

  08 SKCommCM.dll+0x3c30b

  09 SKCommCM.dll+0xd9f4    (인증서 정보 추출 API 내부)

  10 SKComdIF.dll+0x4c3d3   (인자: 인증서 DER 포인터, 길이 1426, 출력 구조체)

  11 YesTraderRun.exe+0x727ce

  12 YesTraderRun.exe+0x736d6

  13 mfc100.dll+0x23f596

  14 YesToolkitPro.dll+0xd0578

  15 mfc100.dll+0x23f27a

  16 YesTraderRun.exe+0xd3fdb

  17~38 mfc100/user32 메시지 디스패치, Controls20.dll, YesToolkitPro.dll (대화상자)

  39 OrderManager.dll+0x36bd6

  40 OrderManager.dll+0x38f74  (09-14 09:54, 09-15 05:45 건은 +0x3a325 → +0x3a9bb 경로)

  41~52 mfc100/user32 (모달 메시지 루프)

  53 YesTraderRun.exe+0x7440d

  ... 메인 메시지 루프 → 시작 루틴 → kernel32!BaseThreadInitThunk → ntdll!RtlUserThreadStart

- 09-15 05:45 건만 크래시 지점이 다름:

  00 SKCommCM.dll+0x3879c   ← OID 비교 루프 (mov dl,[ecx+eax]; cmp dl,[esi+eax]), 비교 대상 상수 = 1.3.6.1.5.5.7.48.1(id-ad-ocsp), ecx=0xfbc1ffac(비정상 포인터)

  01 SKCommCM.dll+0x3996f

  02 SKCommCM.dll+0x3bf2e

  03 SKCommCM.dll+0x3c30b

  04 SKCommCM.dll+0xd9f4

  05 SKComdIF.dll+0x4c3d3

  06 YesTraderRun.exe+0x727ce ... (이하 동일)


- 크래시 시점 상세:

  · 인증서 파싱 루틴이 출력 구조체에 Version, Serial, 서명알고리즘(sha256WithRSAEncryption), 발급자/주체 DN, RSA 2048 키 정보, 유효기간, 공개키, keyUsage, 정책 OID(1.2.410.200004.5.1.1.10), AKI/SKI, SubjectPublicKeyInfo까지 정상 기록(09-15 건은 LDAP CRL 배포점까지 기록)한 뒤, 확장 필드(certificatePolicies의 UserNotice, authorityInfoAccess 부근)를 처리하는 단계에서 종료됨.

  · 4건 모두 파서 내부 상태(스트림 객체의 버퍼 포인터, OID 포인터)에 인증서 DER 데이터 조각이 덮어써진 뒤 그 값을 포인터로 역참조함.

    - 0x02020705 = "05 07 02 02" (OID 1.3.6.1.5.5.7.2.2 id-qt-unotice 끝부분)

    - 0x01010705 = "05 07 01 01" (OID 1.3.6.1.5.5.7.1.1 authorityInfoAccess 끝부분)

    - 0x00004153 = "53 41 00 00" (AKI 발급자명 "KISA" 문자열 끝부분)

    즉 파싱 중 고정 크기 버퍼가 인증서 내용으로 넘쳐 파서 자신의 상태를 덮어쓰는 형태로 보이며, 덮어쓰인 위치에 따라 크래시 지점만 달라짐.

  · 파서에 전달된 인증서 길이(1,426바이트)는 DER 헤더(30 82 05 8E)와 일치 → 인증서 파일 절단은 아님.


- 파싱 대상 인증서 (4건 동일): 코스콤 SignKorea 발급 증권거래용 법인 공동인증서

  · 발급자: cn=SignKorea CA4, ou=AccreditedCA, o=SignKorea, c=KR

  · 유효기간: 2026-09-12 06:52:06 ~ 2027-09-16 23:59:59 (첫 종료 2일 전 신규 발급)

  · 서명알고리즘 sha256WithRSAEncryption, RSA 2048, 정책 OID 1.2.410.200004.5.1.1.10


- 배제된 원인:

  · 메모리 부족 아님: 4건 모두 VirtualSize 약 1GB / PrivateUsage 약 500MB (4GB 주소공간), 시스템 RAM 64GB

  · 스택 오버플로 아님, 통신 스레드·시스템트레이딩 전략 코드와 무관 (크래시 스레드는 메인 UI 스레드)

  · 예스트레이더 본체 업데이트(09-12, 09-14 빌드)와 무관 — 종료 모듈은 2023년 빌드 SignKorea DLL로 4건 동일


3. 추정 원인

2023-03 빌드의 SignKorea 모듈(SKCommCM.dll 9.9.8.9 등)이 2026-09-12 신규 발급된 SignKorea CA4 인증서의 확장 필드를 파싱하는 과정에서 내부 버퍼가 손상되어 종료되는 것으로 추정됨. 주문 관련 처리 중 인증서 창이 열릴 때마다 재현되어 자동매매가 하루 1~2회 중단되고 있음. [갱신 전 인증서로는 동일 조작에서 문제가 없었음 / 확인 필요 — 해당되는 쪽으로 기재]


4. 요청 사항

- SignKorea 모듈(SKCommCM.dll 등) 최신 버전 존재 여부 및 패치 배포 계획

- SignKorea CA4 발급 인증서와의 호환성 확인

- 패치 전까지 적용 가능한 임시 회피 방법 안내 (주문 시 인증서 창을 거치지 않는 설정, 64비트 버전이 동일 모듈을 쓰는지 등)


5. 첨부

- YesTraderRun.26.09.14.09.54.12.dmp

- YesTraderRun.26.09.14.17.35.07.dmp

- YesTraderRun.26.09.15.05.45.41.dmp

- YesTraderRun.26.09.16.13.24.31.dmp


예스트레이더 (iM증권)
답변 3
프로필 이미지

한걸음씩

2026-09-16 14:55:05

64비트로 설치해서 사용하면 이 문제가 발생안하는지요?
프로필 이미지

한걸음씩

2026-09-16 15:06:46

참고로 예스트레이더만 쓰고 자동주문하고 가끔 예스트레이더 내의 주문창을 통해서 주문합니다. 그래서 접속후에는 분석에서 말하는 <인증서 창>을 본적이 없는데 무슨 애기인지 잘 모르겠습니다.
프로필 이미지

예스스탁 예스스탁 답변

2026-09-16 15:11:24

안녕하세요
예스스탁입니다.

메일주소를 누락했었습니다. help@yesstock.com으로 덤프파일을 보내주시기 바랍니다.
예스트레이더 32비트 버전보다 64버전이 메모리를 더 많이 사용할 수 있습니다. 다만 저희 프로그램이 윈도우 서버을 지원하고 있지 않습니다.

즐거운 하루되세요