[펌] Unity3D Android .dll 난독화 가이드 [Spices.Net]
유니티3D_Android dll파일 난독화 가이드
(사용툴 : Spices.Net)
[파일]
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 |