본문 바로가기
KERD
논문KCI 등재

리플렉션과 문자열 암호화를 이용한 안드로이드 API 난독화 도구

An Android API Obfuscation Tool using Reflection and String Encryption

0

조회

0

다운로드

0

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

자바 리플렉션은 프로그램 구성 요소들을 조사하여 호출 및 조작할 수 있는 자바 언어의 기능이다. 이를 이용하면 보다 많은 호출 단계를거치는 구조로 변형되기에 난독화 효과를 얻을 수 있다. 그러나 이를 이용할 때, 프로그램 자체의 구성 요소 이름이 문자열 형태로 노출된다. 본 논문에서는 안드로이드 애플리케이션에서 리플렉션을 적용하여 난독화하고, 이때 노출되는 문자열들을 비즈네르 암호화 알고리즘으로 은닉하여 정적분석을 방해하는 기법 및 도구를 제시한다. 실험 결과 소스 코드의 전체적인 복잡도를 증가시키는 데 효과가 있었다. 또한 서버와 로컬 기반의 두 가지 복호화 방법을 제공하는데, 이는 애플리케이션의 실행속도에 영향을 미치기 때문에 API의 중요도에 따라 선택할 수 있다.

Abstract

Reflection is a feature of the Java programming language that can examine and manipulate components of program itself. If you usethe reflection, you can get an obfuscation effect of Java source because it converts sources into complicated structures. However, whenusing it, strings of components name of program are exposed. Therefore, it cannot prevent static analysis. In this paper, we presents amethod and a tool of interfere with static analysis using reflection. And in this case, exposed strings are encoded using Vigenère cipher. Experimental results show that this tool is effective in increasing the overall complexity of the source code. Also the tool provides twotypes decryption method based on server and local. It can be selected based on the importance of the API because it affects the executionspeed of the application.

참고문헌 (18)

  1. "Smartphone OS Market Share, Q1" (2014)[URL]
  2. "Google Play Hits 1 Million Apps"[URL]
  3. "Using Java Reflection"[URL]
  4. 심원태, "안드로이드 앱 악성행위 탐지를 위한 분석 기법 연구", 정보보호학회논문지, 21(1), pp.213~219 (2011), 한국정보보호학회
  5. "Vigenère cipher"[URL]
  6. "jd-gui"[URL]
  7. "Codepro Analytix"[URL]
  8. S. Y. Cho, "Dynamically Reconfigurable Object Replication Management System Using Reflection approach in Java", Journal of KIISE, 26(1(A)), pp.373~375 (1999)
  9. 최종명, "자바 리플렉션과 메소드 오버로딩을 활용한 상황인지 툴킷", 정보과학회논문지 : 소프트웨어 및 응용, 39(1), pp.12~23 (2012), 한국정보과학회
  10. W. C. Lee, "Java Reflections in Action: A Case Study of Android Apps", Proceedings of KIISE, 39(2(A)), pp.277~279 (2012)
  11. J. H. Lee, "Design and Implementation of An Auto-Conversion Tool for Android API Obfuscation Based on Java Reflection", Proceedings of KIPS, 21(1), pp.487~490 (2014)
  12. "Proguard"[URL]
  13. H. S. Ahn, "A study on the Java Decompilation-Preventive Method by Obfuscating Algorithm", Journal of KIPS, 14(1), pp.1458~1458 (2007)
  14. 이현호, "The XP-table: 다중 연속 XPath 질의의 집단 처리를 위한 실행시간 효율적인 영역 기반 구조체", 정보과학회논문지 : 데이타베이스, 35(4), pp.307~318 (2008), 한국정보과학회
  15. 이찬희, "안드로이드 플랫폼에서 앱 불법복제 방지용 접근제어 기법", 정보과학회 컴퓨팅의 실제 논문지, 18(10), pp.692~700 (2012), 한국정보과학회
  16. "Apache Commons Codec"[URL]
  17. "dex2jar"[URL]
  18. "Benchbee"[URL]

관련 논문AI추천

이 간행물의 다른 논문 (5건)