보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
Obfuscator 적용 후 il2cpp 리패키징하기 이번에는 앞서 살펴본 il2cpp로 컴파일된 Apk를 난독화 적용 후 어떤 식으로 바뀌었는지 살펴보려한다. 먼저 Unity -> Player setting -> il2cpp로 컴파일 환경을 변경한 뒤 빌드해주면 Apk파일이 생성된다. 해당 파일을 APK Easy Tool을 이용하여 디컴파일 해주면 된다. Unity Obfuscator #2에서 살펴봤듯이 단순히 libil2cpp.so 파일을 살펴보아도 코드를 파악하기 어렵고, 더군다나 난독화까지 적용하여 더 파악하기 어렵게 되었다. 그렇기 때문에 il2cppdumper를 통해 함수 정보를 재정의하여 분석해야 한다. il2cppdumper를 실행하고 생성된 DLL파일을 확인하면 함수 주소를 알수 있지만 ..
mono & il2cpp 비교 앞서 Unity Obfuscator를 살펴보면서 유니티에서 빌드 시 Assembly-CSharp.dll이 생성되고 이는 .Net decompiler 프로그램을 사용하여 쉽게 소스코드를 확인할 수 있었다. 해당 빌드 방식은 mono인데 유니티에서 mono와 il2cpp의 2가지 형식으로 빌드가 가능하다. mono와 il2cpp는 공통적으로 C#코드를 IL(Intermediate Language)코드로 변환한 후 빌드할 플렛폼에 맞는 Assembly로 변환하여 실행한 기기에서 동작하게 된다. 위 사진은 유니티로 방향키로 Object를 움직이는 간단한 코드를 빌드하여 ILdasm 프로그램으로 IL 코드가 어떻게 생성되는지를 확인한 모습이다. mono와 il2cpp의 차이점은 mo..
#1 Unity 난독화프로그램을 개발하고 배포하는 과정에서 항상 고민하게 되는 것이 난독화이다.Unity로 개발된 프로그램은 Assembly_csharp.dll 파일로 ILspy, dnspy, dotpeek같은 .Net decompiler를 통해쉽게 리버싱이 가능하다. 물론 코드 암호화를 하는 방법도 있지만 C# 구현도 어렵고 복잡하다.이번에 Unity 난독화 에셋을 분석할 기회가 생겼고 Unity를 많이 접하지 않았지만 다시 돌아보는(?) 마음으로프로젝트를 진행하려 한다. #2 BEEBYTE's Obfuscator 해당 난독화 asset의 경우 옵션을 지정하여 class, methods, parameters, fields, properties, events를 선택적으로 난독화가 가능하다.마침 반값 세일..