brunch

You can make anything
by writing

C.S.Lewis

by 복지CEO 조정원 Feb 06. 2016

BytecodeViewer를 활용한 APK 분석

보안프로젝트 매거진


BytecodeViewer(http://bytecodeviewer.com/)는 자바, 안드로이드, DEX, jars 파일 등 소스코드 리버싱 분석 도구이다. 윈도우즈 환경에서 완벽하게 동작할 수 있도록 지원을 하고 있다. 안드로이드 APK 파일을 디컴파일 하여 바이트코드 형태와 클래스 파일을 자바 파일로 변환하여 소스파일로 복원하여 같이 보여준다. 이제까지 사용한 도구들의 기능을 모두 합한 것과 같은 느낌이 들 정도로 기능적으로나, 업무 효율적으로나 거대한 도구이다. 또한, 분석 속도가 다른 도구에 비해 매우 빠르다.


릴리즈 버전 및 소스코드는 아래 주소에서  다운로드한다. 소스코드까지 공개되어 있기 때문에 오픈소스를 보며 학습을 하는데 큰 도움을 얻을 수 있다.

https://github.com/Konloch/bytecode-viewer/releases


릴리즈 파일을  다운로드하여 압축을 해제하면 그림 [1-1]과 같이 윈도우즈 실행파일과 jar파일이 존재한다. 


그림 [1-1] 파일 다운로드 및 압축해제


초기 실행을 하기 위해서 BytecodeViewer 2.9.8.jar 파일을 실행한다. 실행하면 그림 [1-2]와 그림 [1-3]와 같이 업데이트 진행 상황을 볼 수 있다.

그림 [1-2] jar 파일 실행 및 업데이트 진행


그림 [1-3] jar 파일 실행 및 업데이트 진행


업데이트가 모두 완료되면 그림 [1-5]와 같이 초기화 화면이 나타난다. 왼쪽 메뉴를 보면 ‘Drag class/jar/zip/APK/DEX here’라는 문구가 있다. 이곳에 분석하고자 하는 파일을 드래그하여 불러온다.

그림 [1-5] 업데이트 완료 후 초기 실행 화면


APK 파일 분석 후에는 그림 [1-6]과 같은 결과를 보여준다. 왼쪽은 자바 디컴파일 된 소스코드이며, 오른쪽은 바이트코드를 보여준다. 해석된 두개의 소스코드를 같이 보여주니 바이트코드 수정을 하는데 매우 유용하다. 

그림 [1-6] 파일 분석 후 화면


도구 리뷰를 하면서 이 도구에 반한 것은 바로 플러그인이다. 기본적으로 설치되어 있는 플러그인 중에는 코드 다이어그램, 악성코드 여부 판단, 메소드 정보 확인, 문자열 정보 확인 등 가능하다. 그 외에 자신이 플러그인을 제작하여 반영할 수 있다.


그림 [1-7] 플러그인 화면


그림 [1-8]은 악성코드 여부 확인(Malicious Code Scanner) 플러그인을 사용한 사례이다. 원격지에서 악성코드를 호출하는 함수에 의심을 하고 있다. 

그림 [1-8] 악성코드 여부 확인


그림 [1-9]는 디컴파일 한 자바 소스코드 내 문자열 정보를 한눈에 보여주고 있다. 한글 지원도 완벽하게 하고 있기 때문에 문자열만 보고 악성코드 여부를 판단할 수 있다.

그림 [1-9] 문자열 정보 확인

매거진의 이전글 (모의해킹이란 무엇인가) 3박자를 살펴보자. 기술!
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari