내 시스템에서 작동하도록 {smartassembly} .NET obfuscator를 얻으려고합니다. 현재 일련의 사전 식 클래스에 사용자 데이터를 저장 한 다음 해당 클래스를 deserialize하여 데이터를 다시 가져옵니다. 나는 이미 어셈블리 버전 정보를 무시하고 있습니다. 왜냐하면 삶이 고통 스럽기 때문입니다. 그 코드는 adapted from MSDN입니다 :난독 화 및 디버그 빌드간에 직렬화 호환성을 유지하려면 어떻게해야합니까?
//to avoid cross-versioning problems
public sealed class CrossVersionDeserializationBinder : SerializationBinder {
public override Type BindToType(string assemblyName, string typeName) {
Type typeToDeserialize = null;
typeToDeserialize = Type.GetType(String.Format("{0}, {1}",
typeName, assemblyName));
return typeToDeserialize;
}
}
문제는 지금 내 난독 응용 프로그램은 그 반대의 경우도 마찬가지 버전 관리 정보를 무시하지만, 비 난독 응용 프로그램에 의해 저장된 데이터를 읽을 수 있으며,입니다. 애플리케이션을 디버깅하기 위해 난독 화되지 않은 버전이 필요할 것입니다. 따라서 이것은 우리에게 상당히 큰 쇼 스트 스토퍼입니다. 이 문제를 해결할 수있는 방법은 없습니까? 데이터 클래스를 난독 화하지 않아야합니까? 꽤 큰 보안 구멍처럼 보입니다.
I 혼란이 없기 때문에 동글 호출을 제거하기가 쉽기 때문에 동글 작업을하기 위해 난독 화해야합니다. – mmr
Newsflash : 난독 화로도 동글 통화를 제거하는 것이 정말 쉽습니다. – MichaelGG
어쩌면 - 모든 앱 관련 정보가있는 경우에도 동글에 넣을 것입니다.헌신적 인 해커를 막을 의도는 아니며, 키를 제거하고 소프트웨어를 계속 사용할 수있는 유휴 상태의 사람을 막을 수 있습니다. – mmr