마인드진 공간 블로그

블로그 이미지
안드로이드 어플을 개발하고 있는 개발자 입니다.
by 마인드진

안드로이드용 앱을 개발할  보통 Java 사용한다. Java 원래부터 디컴파일이 가능한 언어이다. C 같은 다른 언어는 컴파일하면디컴파일하여 소스코드를 알아낼  없다따라서 C 개발된 소프트웨어는 컴파일하여 exe, dll 형태로 배포되어도 소스코드 유출을 걱정할필요가 없다하지만 Java 이와 반대이다. Java 컴파일해도 기계코드가 아닌 중간 형태의 바이트코드(Byte code)이기 때문에 이것을디컴파일하면 쉽게 소스코드를 알아낼  있다


안드로이드 앱도 마찬가지 보안 문제가 생겨난다역시 java 개발되기 때문이다그래서 보통 안드로이드  개발자들은 Proguard라고하는 오픈소스 난독화 도구를 사용한다. Proguard 계속해서 업그레이드되고는 있지만 보안 도구라고 하기에는 난독화 정도가 약하다예를 들어 설명하자면 변수명이나 함수명을 어렵게 바꾸는 수준에 머문다난독화이기는 하지만 그리 어렵지 않은 난독화인 것이다

이보다  높은 수준의 난독화를 하기 위해서는 상용 난독화 도구를 사용할  있다암호화 회사로 유명한 미국 세이프넷사의 안드로이드엔브(AndroidEnv)’ 대해 알아보자안드로이드 엔브(Android Env) ‘Android Envelope’ 축약어로세이프넷이 이미 30년간 업계에서선두를 지켜온 윈도리눅스  난독화 기술인 엔빌롭(Envelope) 기술을 사용하고 있다


안드로이드 앱을 개발할때 디컴파일하면 소스를 다 파악할 수 있거나 프로가드를 통해 쉬운 수준의 난독화를 하는데 좋은 도구 이지만 상용이기에 프로가드도 이처럼 빨리 업데이트 됐으면 바람.



출처 : http://blog.naver.com/PostView.nhn?blogId=choijo2&logNo=60196519318&beginTime=0&jumpingVid=&from=search&redirect=Log&widgetTypeCall=true

Comment +0