2012-11-30 7 views
0

내 DLL (.NET4)을 msbuild로 빌드하고 SmartAssembly 5.5로 난독 화합니다.MonoDevelop - SmartAssembly가있는 버그

그런 다음 Mac (10.8)의 MonoDevelop (최신)에서 간단한 콘솔 응용 프로그램에 대한 참조로 설정했습니다. 확인 내장

,하지만 난 그 간단한 응용 프로그램을 실행했을 때, 내가 메시지를 가지고 : 알 수없는 힙 유형 : SmartAssembly

나는 saproj이 항목 blabla (모노 지원) 검사가 (아직 SA 지원하지만 행운을 물었다.

내가 스크린 샷을 첨부하는 방법을 참조 해달라고하지만, 난 내 응용 프로그램을 실행할 때 내가 두 배 메시지 콘솔에서 참조하십시오. 프로그램 코드의 첫 번째 줄에 중단 점에서 중지하기 전에이 나타납니다.

그래서 어쩌면 누군가가 SmartAssembly 또는 MonoDevelop에서이 문제를 제거하기 위해 무엇을 변경해야하는지 알고 있습니까? 감사합니다

답변

1

많은 .NET obfuscator는 어셈블리가 기술적으로 올바른 어셈블리가 아니기 때문에 (.NET 어셈블리 사양을 벗어나지 만) Microsoft의 구현과 관련된 버그를 악용하여 Microsoft .NET 런타임에서 실행되도록 어셈블리를 변경합니다. 필자는 어셈블리 리더 도구/라이브러리가 어셈블리를로드하는 것을 어렵게 만들기 위해이 작업을 수행 한 것으로 판단됩니다. 불행하게도이 때문에 Mono 런타임에서 어셈블리를로드 할 수 없습니다. 일반적으로 모노 has a policy은 이러한 종류의 잘못된 난독 화 코드를 "수정"하지 않기 때문에 SmartAssembly 지원에 도움을 요청해야합니다.

SmartAssembly의 "Strictly valid"옵션으로 컴파일 중이며 작동하지 않는다면 "기본"옵션을 사용해보십시오.

+0

고맙습니다. 나는 SmartAssembly 지원을 요청했는데, 최신 v6.7에서는 모노 쪽에서이 오류가 발생하지 않는 것 같습니다. – Alexander