본문 바로가기

Unity9

Unity Obfuscator #4 보호되어 있는 글 입니다. 2019. 6. 27.
Unity 특수 폴더들 Assets Unity 프로젝트에서 사용하는 에셋이 포함되는 주 폴더. 에디터 프로젝트 창의 콘텐츠는 에셋 폴더의 콘텐츠와 직접 연관된다. 대부분의 API 함수는 모든것이 Assets 폴더에 있다고 가정하므로 명시적으로 경로를 알려줄 필요가 없다. 서브폴더를 자유롭게 생성할 수 있다. Editor Editor 폴더에 있는 스크립트는 런타임 스크립트가 아니라 에디터 스크립트로 간주되기 때문에 게임 빌드에는 포함되지 않고 유니티 에디터에서만 사용 된다. 스크립트가 Unity API에 접근할 수 있도록 허가해주는 특별 폴더. Editor Default Resources 에디터 플러그인에 에셋을 로드해야 하지만 빌드에는 포함하지 않을 때 사용한다. Gizmos Gizmos.DrawIcon에 사용되는 모든 텍스쳐.. 2019. 6. 27.
Unity Obfuscator #3 원래는 Il2CppInspector로 해보려 했지만 에러를 고칠 수 없어서 결국 다시 돌아온 Il2CppDumper로 분석을 하기로 했다. 처음엔 나와있는대로 빌드해서 분석을 해보려했지만 Could not process IL2CPP image 라면서 에러가 나와 빌드를 포기하고 1.0버전으로 실행해봤더니 또다른 에러가 나왔다. 지원되는 버전이 아니라는데 최신 버전은 지원을 안 해서 그렇다고 들었다. 결국 간단한 프로젝트를 만들어서 Il2CppDumper로 실행해봤다. 이번엔 에러없이 잘 돌아감 Il2CppDumper는 libil2cpp.so, global-metadata.dat(assets/bin/Data/Managed/Metadata) 파일을 받아서 분석을 해주는 아주 좋은 친구다. 지원해주는 기능은 .. 2019. 6. 14.
Unity Obfuscator #2 IL2CPP란? 유니티에서 빌드세팅을 할 때 보면 Assembly-CSharp.dll 파일에 코드가 저장된다. 이 파일은 디컴파일러로 열었을 때 쉽게 코드가 보이는데 이때 코드를 IL 코드라고 한다. 이를 방지하기 위해서 빌드세팅에서 IL2CPP로 설정하면 so파일 형태로 코드가 저장되는데 이름 그대로 IL코드를 CPP형태로 변환하는 건데 분석하기가 매우 어렵다. 유니티에서 작업을 할 때 작성한 C# 코드는 msc.exe라는 프로그램이 IL 코드로 변환하고 IL 코드를 실행하기 위해서 libmono.so가 IL코드를 읽어들여 실행 환경에 해당하는 Assembly어로 변환하여 게임이 실행된다. IL2CPP 도 msc.exe를 이용해 IL 코드를 생성하긴 하지만 il2cpp.exe를 이용해 IL을 C++ 형.. 2019. 6. 7.