반응형

게임 해킹툴들을 찾아서 테스트를 하다보면...

어떤 것들은 C 런타임 라이브러리(CRT) 까지 같이 배포를 하는 경우가 종종 있습니다.


간혹, 필요한 라이브러리가 없어서 실행이 안되는 경우도 있고 하니...

이렇게 친절하게(?) 필요한 모듈을 같이 배포를 해주면 나름 편하긴 합니다~ :)


그런데 특정 조건을 위배하면 심하게 골때리는 상황이 발생합니다..

조건이 뭐냐하면...

C 런타임 라이브러리(CRT) 등의 공유 모듈은 SYSTEM 폴더에 복사하지 말라

요건데요...;;;

SYSTEM 폴더에는 이미 그 PC 에 필요한 공유 모듈들이 있을 확률이 매우 높습니다.

이미 기존 모듈이 있는데~ 배포시에 기존 모듈을 교체해버리면...;;

=_=;; 그 모듈과 의존성이 있는 프로그램들이 실행이 안되는 상황이 발생하기도 합니다;;;;


모듈 강제 배포의 폐해...


이런 식으로 말이죠.. -_-;;;


저는 나름대로 재배포 패키지는 기본적으로 OS 셋팅시 필수로 설치를 하기 때문에~~

msvcr100.dll (Version 10.0.30319.1) 파일이 있는 상태였습니다.

그런데... -_-;; 어떤 설치파일(?)이 친절하게도 버전이 안맞는 msvcr100.dll (Version 10.0.20327.1) 을 덮어쓰더니..

위와 같은 난감한 상황을 연출하더군요.


이런 상황을 시스템에 대해서 잘 모르는 유저들이 접할 경우...;;

덜컥 겁을 집어먹고는 최악의 경우, 포맷이라는 극단 조치까지 갈 우려가 있습니다..


직접 개발한 프로그램에 특정 공유 모듈이 필요한 경우는...

SYSTEM 폴더에 강제로 뿌리지 말고, 프로그램 설치 경로에 곱게 놓아두면 됩니다..

윈도우 시스템의 모듈 로딩 구조상 SYSTEM 폴더보다, 자기자신의 폴더가 우선순위가 높거든요...


아침부터 테스트하다가~ =_= 살짝 짜증이 나서 분노의 포스팅을 올려봤습니다..



반응형
AND