문제

리버스 엔지니어링으로부터 내 애플리케이션을 보호하기 위해 Dotfuscator를 사용했습니다. Windows 애플리케이션에서 dll 파일을 암호화했는데 OSX/MonoTouch에서는 어떻게 할 수 있나요?

ipa에서 dll을 추출한 다음 Windows에서 dll을 혼동하고 암호화된 dll을 IPA에 다시 압축한 다음 앱스토어에 게시하시겠습니까?

간단한 해결책이 있나요?

도움이 되었습니까?

해결책

무엇보다도 iOS에서는 허용되지 않는다는 점을 기억해야 합니다. JIT (적시에) 컴파일 중입니다.이는 모든 것이 이 과정을 거쳐야 함을 의미합니다. AOT (미리) 컴파일러.

이로 인해 어셈블리의 모든 IL 코드가 기본 ARM(v6, v7 및/또는 Thumb) 명령어로 변환됩니다. 그리고 IL은 필요하지 않음 더 이상.

이는 다음을 의미합니다. Release|iPhone, IL 코드가 어셈블리에서 제거됩니다.제거되었으므로 게시하는 애플리케이션에 존재하지 않습니다(디컴파일됨).

노트

  • 어셈블리는 여전히 애플리케이션 내에 있습니다. 왜냐하면 메타데이터는 여전히 필요합니다(예: System.Reflection 필요합니다).따라서 기호 이름과 리소스 파일은 난독 처리기처럼 일반적으로 손상되거나 암호화되지 않습니다.

  • ARM 어셈블리를 디스어셈블할 수 있지만(AOT 컴파일 전에 어셈블리를 난독화한 경우에도 마찬가지임) 많이 IL보다 이해하기가 더 어렵습니다(그리고 C#으로 돌아가기).

  • IPA에서 어셈블리를 추출하고 처리하면 중단됩니다. 적어도 애플리케이션의 서명(다시 서명할 수 있음)그것은 또한 ~할 것 같은 다른 많은 것들을 깨뜨리십시오(코드는 변경되었을 수 있는 이름/구조를 참조하기 때문입니다).나는 이것이 작동할 것이라고 생각하지 않습니다(그러나 그것은 난독화기에서 사용할 옵션에 따라 다릅니다).

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