"Windows가 외부 매니페스트의 우선 순위를 지정하도록 설정"이란 무엇입니까?


2

일부 응용 프로그램은 고해상도 화면에서 제대로 확장되지 않습니다. Windows에서 이에 대한 제안 된 솔루션 (예 : Adobe CS6 applciations )은 레지스트리 변경으로 "Windows에서 외부 매니페스트의 우선 순위를 정할 수 있도록 설정" 한 다음 Windows에 기본 UI 스케일링을 적용하도록 지시하는 응용 프로그램의 매니페스트를 생성하는 것입니다.

나는 그것이 의미하는 바를 먼저 이해하지 않고 레지스트리 변경과 같은 시스템 수준의 변경을하지 않는 것을 믿습니다. Windows가 외부 매니페스트에 우선 순위를 부여하여 더 많은 정보를 얻도록 연구했지만, 내가 발견 한 것은 고해상도 화면에서 다양한 완고한 응용 프로그램을 확장하는 데 사용되는이 해킹의 예입니다.

이 레지스트리 변경으로 인해 .manifest응용 프로그램이 시작될 때 특정 유형의 구성 파일 ( )을 읽을 수 있다고 생각합니다 (?). 활성화의 의미가 무엇인지 이해하고 싶습니다. 내가 조사한 바에 가장 가까운 답변은 Adobe 포럼에 대한 유망하지만 권한이없는 의견입니다 . 이것이 사실인지 아닌지 본질적으로 알고 싶습니다.

레지스트리 변경에 다른 영향을 미치는 한, 실행 파일 자체와 충돌하는 실행 파일과 다른 .manifest 파일이없는 한 (매우 드 should니다) 다음과 같이 변경되는 것 같습니다. 작은 단점.

특히 (순서대로) :

  1. 이 레지스트리 변경이 응용 프로그램의 매니페스트 파일을 수동으로 만드는 경우를 제외하고는 시스템 동작에 영향을 미치지 않는다는 것이 사실입니까? 이 기사는 이것이 사실이라고 생각하게한다 . 또는 다른 의미가 있습니까 (예 : 매니페스트 검사가 특정 시스템 프로세스 속도를 늦출만큼 일반적입니까?)
  2. 명백하게 잘못 구성된 매니페스트가 하나의 응용 프로그램을 손상시킬 위험이 있습니다. 최종 사용자가 활성화하기 전에 알아야하는 보안 문제 (악성 ​​프로그램 작성 매니페스트)와 같은 추가 위험이 있습니까?
  3. MSDN 기사 는 응용 프로그램 별 레지스트리 재정의를 허용하기 위해 매니페스트가 있다고 말하는 것처럼 들립니다. 일반 용어로 올바른 해석입니까?

Windows 버전과 관련이 있다면 Windows 8.1 및 Windows 7에 가장 관심이 있습니다 (순서대로).

답변:


4

매니페스트 파일에는 시작시 모듈을 처리하는 방법에 대한 Windows 설정이 포함되어 있습니다. 이미 파악했듯이 모듈 자체에 내장되거나 * .manifest 파일로 외부에있을 수 있습니다. 일반적으로 내장 된 모듈이 우선하는 경우 모듈에 내장 된 모듈이있는 경우 외부 모듈이 계산되지 않습니다. 레지스트리 설정은이 동작을 변경하여 외부 항목을 먼저 계산합니다.

  1. 우선 외부 매니페스트가 시스템 성능을 늦출 것이라고 생각하지 않습니다. 외부 프로세스가 없는지 확인한 후 대부분의 프로세스가 정상적으로 실행됩니다. 존재하더라도 매니페스트 파일은 작은 XML 파일이므로 처리하는 데 많은 시간이 걸리지 않습니다.

  2. 당신이 말한 것처럼 몇 가지 경우가있었습니다. 예 : http://www.symantec.com/security_response/vulnerability.jsp?bid=21550 따라서 보안 문제로 인해 Windows에 지속적인 문제가없는 경우에도 외부 매니페스트의 우선 순위를 지정하지 않는 것이 더 안전하다고 생각합니다.

  3. 이 기사는 과거에 Registry와 동일한 목표를 달성했다고 밝혔다. 이제 모듈에 내부 매니페스트가있을 수 있으므로 다릅니다. 또한 매니페스트를 일반 레지스트리 가상화로 사용할 수 없습니다.

실제로 "내부"매니페스트를 수정하는 방법이 있습니다. 이 기사에서는 위험을 감수하는 방법을 설명합니다. http://csi-windows.com/toolkit/240-great-pe-editor-for-internal-manifests

나 자신이 개발 한 앱 으로이 트릭을 테스트하고 정상적으로 작동했습니다. exe를 저장하려면 "개발자 모드"로 시작하고 기존 매니페스트를 제거한 다음 새 매니페스트를 다시 추가해야합니다. 말할 것도없이 원본을 백업하는 것을 잊지 마십시오.

이 방법이 효과가 있다면 우선 순위를 변경하는 것보다 훨씬 좋습니다. 그러나 상업용 응용 프로그램은이 방법으로 디지털 서명을 손상시키고 보호 기능 (있는 경우)과 충돌 할 수 있으므로 작동하지 않을 수 있습니다. 작동하지 않는 경우 가장 좋은 방법은 원래 개발자에게 최신 Windows 버전의 내부 매니페스트를 변경하거나 원래 문제를 해결 한 새로운 버전의 소프트웨어를 찾도록 요청하는 것입니다.


좋은 답변입니다! 명확히하기 위해, "모듈 자체에 내장되어있다"고 말할 때 .exe또는 내의 바이너리 / 머신 코드를 의미 .dll합니까? 아마도 값 비싼 Adobe 패키지와 같은 내부 매니페스트를 다루는 데 법적 문제가있을 수 있습니까?
user568458 2016 년

@ user568458 예, 포함 된 매니페스트는 EXE 파일에 있습니다. 그것이 리소스 영역에 있기 때문에 dll도 그것들을 가질 수 있지만 "DLL의 매니 페스트"에 대해서는 모른다. 또한 내부 매니페스트를 수정하면 사용권 계약을 사용하기 전에 동의 한 것으로 간주 될 수 있으므로 법적 문제에 대한 권리가 있습니다. 피드백을 통해 매니페스트 우선 순위를 변경하면 이점이있는 것처럼 보입니다. 이진에는 영향을 미치지 않습니다. 어느 쪽이든 장단점. 따라서 가장 안전한 방법은 원래 개발자의 도움을받는 것입니다.
Scott Rhee
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.