문제

나는 XNA 4와 monogame을 사용하여 응용 프로그램을 개발하고 있습니다. 또한 Easpuscator를 사용하여 C# 소스 코드를 난독 화합니다. 가능하고 컨텐츠 폴더에서 비인간을 읽을 수없는 가장 좋은 방법은 무엇입니까?

기본적으로 "title_image.xnb"와 같은 파일 이름의 이름은 "hdrv4eedx.xnb"(예 : 예를 들어)와 같은 것으로 자동 이름을 바꿔야합니다. 콘텐츠의 암호화가 반드시 필요하지는 않습니다.

도움이 되었습니까?

해결책

내가 알고있는 내장 방법은 없습니다.

모든 컨텐츠 파일을 재귀 적으로 수행하는 PowerShell 스크립트를 작성한 다음 정규 표현식을 사용하여 적절한 컨텐츠를 찾아 코드에서 함수를로드하고 무작위로 생성 된 해시로 교체 할 수 있습니다. 그런 다음이 스크립트를 난독 화의 일부로 실행합니다.

모든 Content.load <> 호출을 단일 파일로 호출하면 글을 쓰는 것이 간단 할 수도 있습니다. 의사 코드는 다음과 같습니다.

For All Files in Content directory (and subdirectories, recursively):
  String hash = CreateRandomHash()
  File.renameTo(hash)
  "LoadContent.cs" = "LoadContent.cs".replace("Content.Load<Texture2D>(" + File.original.Name + ")", "Content.Load<Texture2D>(" + hash + ")");

그러나 "의사 코드" :). 작업이 필요합니다.

다른 팁

해당 이름으로 모든 리소스를 컨텐츠 관리자에 추가하지 않겠습니까? 코드에서 이것이 title_image 폴더를 열면 최종 사용자로부터 읽을 수 없습니다.

title_image = Content.Load<Texture2D>("hdRv4EEdx");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top