Win32 실행 파일(바람직하게는 C#)에서 RT_RCDATA 섹션을 어떻게 추출합니까?
문제
현재 이 작업을 수행하는 방법을 아는 유일한 방법은 Visual Studio에서 EXE를 여는 것입니다.가능하다면 C#으로 이 작업을 완전히 수행하고 싶습니다.기타 옵션은 다음과 같습니다.
- P/Win32 API에서 LoadResource() 호출
- 기존 도구 사용(아는 사람 있나요?)
- 다른 아이디어?
감사해요!
해결책
다른 팁
실행 파일에서 RCDATA 유형의 리소스를 읽으려고 한다고 가정합니다("실행 가능 섹션"은 PE 파일의 .text, .data, .rdata 등의 부분을 참조함).현재 어셈블리에서 읽으려면 다음 방법을 보여주는 튜토리얼이 있습니다. GetManifestResourceStream을 사용하여 포함된 리소스에 액세스, 사용하여 매니페스트자원이름 가져오기 그리고 GetManifestResourceStream 행동 양식.
현재 실행 파일에서 읽지 않으려면 표시된 것과 유사한 방법을 사용할 수 있습니다. 여기.
이러한 메서드는 PInvoke에 비해 100% .NET이라는 장점이 있으며 플랫폼 데이터 형식에 대해 인수를 마샬링하고 모든 반환 값의 유효성을 검사할 필요가 없습니다.
매우 도움이 되는 내용이 있습니다 많은 자원 작업을 위한 라이브러리 ~에 http://resourcelib.codeplex.com
많은 클래스와 함수가 해당 창 API 호출을 래핑합니다. UpdateResource(...)
, 등.
제휴하지 않습니다 StackOverflow