문제

누군가가 어떻게 exe 파일을 dll에 포함시킬 수 있는지 알고 있습니까?

C# 코드에서 호출하는 EXE 파일 인 도구가 있습니다.

문제는이 도구 (EXE 파일)와 C# 코드를 오염시키는 1 DLL을 포함하고 싶다는 것입니다.

이 exe 파일을 리소스 내에 포함시킬 수 있습니까?

미리 thx

도움이 되었습니까?

해결책

당연히 그렇지. 응용 프로그램에서 모든 파일을 rc_data로 자원으로 추가 할 수 있습니다. 그러나 나는 당신이 그것을 호출하기 전에 먼저 디스크로 추출해야한다고 생각합니다!

어떤 IDE/언어를 사용하고 있습니까?

편집하다

죄송합니다! C#을 사용하고 있다고 언급했습니다.

  1. 응용 프로그램에 리소스 파일을 추가하십시오 (IDE에서 응용 프로그램을 마우스 오른쪽 버튼으로 클릭하고 "새 항목 추가"를 선택하십시오.
  2. 자원 편집기의 도구 모음을 사용하여 기존 파일을 추가하십시오.
  3. 그런 다음 Code를 호출하여 필요할 때마다 다음과 같은 것을 추출합니다.

다른 팁

당신의 용도가 당신이 이것을하는 것에 대해 너무 행복하지 않을 수 있다는 것을 명심해야합니다. 추출하고 실행할 DLL에 대한 제어가 없도록 실행 파일을 포함 시키면 사람들이 기계에서 트로이 목마를 실행하는 것에 대해 걱정할 것입니다.

파일 시스템에 .exe를 떠나 응용 프로그램이 수행하는 일에 대해 투명하게하는 것이 좋습니다.

바이트 []에서 어셈블리를로드 할 수 있습니다. 이것은 임베디드 리소스의 Manifestresourcestream을 통해 얻을 수 있습니다.

대안은 .exe 자체를 포함시키지 않고 DLL에 기능을 포함시키고 rundll32를 사용하는 것입니다.1] 실행합니다.

참고로, 자원에서 파일을 디스크로 가져간 다음 코드를 실행하면 Windows를 트리거 할 수 있습니다. 데이터 실행 방지 - 기본적으로 Windows는 코드 또는 데이터가되어야하는지 자동으로 감지하려고 시도하고 데이터가 데이터 (리소스가 제공하는)처럼 보이는 경우 해당 데이터가 코드로 실행되는 것을 방지합니다.

.NET 어셈블리가 로컬 드라이브 대신 네트워크를 통해 사용될 경우 특히 끈적 끈적한 문제가됩니다.이를 올바르게 작동하지 못하게 할 수있는 모든 종류의 .NET 보안 구성이 있습니다.

또 다른 옵션, 프로젝트의 세부 사항을 알지 못하고 소금 한 알로 가져 가십시오. 호기심 많은 사용자에게 설명하는 설치에 .exe.readme 파일을 추가하십시오. 설치 디렉토리 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top