[펌] Unity3D Android .dll 난독화 가이드 [Spices.Net]
유니티3D_Android dll파일 난독화 가이드
(사용툴 : Spices.Net)
[파일]
 BS_Unity3D_Obfuscate_Guide_20131220_v0.1.odt
BS_Unity3D_Obfuscate_Guide_20131220_v0.1.odt
1. 난독화할 dll파일
- APK파일을 디컴파일or압축해제를 하면 Asset폴더 내부에 dll파일이 들어있다. - (유니티 프로젝트의 경우 \assets\bin\Data\Managed\) 
- 난독화할 파일은 Assembly-CSharp.dll 
2. Spices.Net 툴을 사용하여 난독화하기
- http://www.9rays.net/Downloads.aspx 에서 - Spices.Net Obfuscator → Spices.Net Free Evaluation 다운로드 
- Spices.Net 실행후 폴더모양 눌러서 Assembly-CSharp.dll 파일 오픈 
 
- 최상위 경로에서 마우스 오른클릭을 하면 메뉴들이 나오는데 Obfuscation Options에서 난독화 설정을 해줄 수 있다. 
- Members 내부에 있는 설정들이 가장 큰 비중을 차지하는것으로 보인다. 
- Members 설정으로 전체적으로 내부설정들을 한번에 바꿀수도 있고 - 하나하나 바꿔줄 수도 있다. 
- Methods와 public옵션이 클래스명과 메소드명을 바꿔주는 설정인데 난독화시 가장 효과가 좋은 설정중 하나이다. - (해당설정 적용시 짜여진 소스 구조에 따라서 작동이 안되는 경우가 있다. 
- Controll Flow 라는 함수 내부 구조를 바꿔주는 난독화부분은 이 툴에서 아직 찾지 못하였음 
- Obfuscation Options 설정이 끝났으면 다시 메뉴를 열어서 Obfuscate!를 선택하면 .iloprj 라는 확장명의 파일 저장경로 확인창이 뜨는데 바로 저장을 해주면 dll파일 경로로 저장된다. - (툴관련 정보 저장파일인듯 하다) 
- 경로설정이 완료되면 난독화가 진행되고 정상적으로 난독화가 완료되면 “dll파일 경로\Output\”안에 난독화된 Assembly-CSharp.dll 파일이 생성된다. 
- 난독화된 파일을 기존 dll파일 경로에 덮어씌워준후 다시 컴파일 해주면 작업이 완료된다. 
*난독화 적용전 .dll 디컴파일 결과
*난독화 적용후 .dll 디컴파일 결과(Members Full옵션 적용)
[출처]
'Unity3D > Encrypt' 카테고리의 다른 글
| [Asset] Obfuscator (2) | 2017.11.17 | 
|---|---|
| [펌] 기본 변수 저장시 암호화 (0) | 2016.05.23 | 
| [펌] Playerprefs 암호화 (0) | 2016.05.23 | 
| C# AES 암복호화 알고리즘 (0) | 2014.03.29 | 
| 안드로이드에서 암호화 팁 - 에셋번들 암호화 (0) | 2014.02.28 | 






