WO2014042297A1 - 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법 - Google Patents

코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법 Download PDF

Info

Publication number
WO2014042297A1
WO2014042297A1 PCT/KR2012/007353 KR2012007353W WO2014042297A1 WO 2014042297 A1 WO2014042297 A1 WO 2014042297A1 KR 2012007353 W KR2012007353 W KR 2012007353W WO 2014042297 A1 WO2014042297 A1 WO 2014042297A1
Authority
WO
WIPO (PCT)
Prior art keywords
analysis
android application
event
android
screen
Prior art date
Application number
PCT/KR2012/007353
Other languages
English (en)
French (fr)
Inventor
정호욱
Original Assignee
주식회사 인프라웨어테크놀러지
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 인프라웨어테크놀러지 filed Critical 주식회사 인프라웨어테크놀러지
Publication of WO2014042297A1 publication Critical patent/WO2014042297A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Abstract

본 발명은 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법에 관한 것으로, 더욱 상세하게는 안드로이드 환경에서 안드로이드 어플의 코드분석과 화면분석을 통해 화면 구성요소에 해당하는 입력이벤트를 발생시켜 안드로이드 어플을 동작시키고 그 동작이 끝나면 안드로이드 어플을 예컨대 삭제하는 일련의 과정을 진행함으로써 안드로이드 어플을 자동실행하는 기술에 관한 관한 것이다. 본 발명에 따르면 안드로이드 어플의 설치, 삭제, 작동을 사용자가 개입할 필요없이 자동으로 진행되도록 함으로써 안드로이드 어플에 관련된 각종 작업, 예컨대 안드로이드 어플의 무결성 테스트나 관련 유틸리티(예: 보안검증 유틸리티)의 결과를 보장할 수 있는 장점이 있다. 특히, 이러한 작업을 사용자의 숙련도와 무관하게 동일한 품질의 작동 결과를 만들 수 있고 단순 반복작업의 효율 및 작업 속도를 높일 수 있는 편의를 제공한다.

Description

코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법
본 발명은 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법에 관한 것으로, 더욱 상세하게는 안드로이드 환경에서 안드로이드 어플의 코드분석과 화면분석을 통해 화면 구성요소에 해당하는 입력이벤트를 발생시켜 안드로이드 어플을 동작시키고 그 동작이 끝나면 안드로이드 어플을 예컨대 삭제하는 일련의 과정을 진행함으로써 안드로이드 어플을 자동실행하는 기술에 관한 관한 것이다.
안드로이드 플랫폼은 Google사가 주도하는 OHA(Open Handset Alliance)에서 공개한 소프트웨어 스택이다. 안드로이드 플랫폼은 리눅스 커널(Linux Kernel), 가상머신(VM), 프레임워크, 어플리케이션(applicatoin, 이하 '어플')을 모두 포함하는 소프트웨어 패키지이며, 안드로이드 어플을 개발하기 위한 소프트웨어 개발키트(Software Development Kit: SDK)를 제공한다.
그리고 안드로이드 플랫폼에서 실행할 어플리케이션(안드로이드 어플)을 유통하기 위한 안드로이드 마켓(android market)이 마련되어 있는데, 안드로이드 마켓은 특별한 검증 절차 없이 개발자가 자유롭게 안드로이드 어플을 등록할 수 있고 사용자도 특별한 확인 절차 없이 자유롭게 안드로이드 어플을 다운로드 받아서 사용할수 있는 개방형 구조이다.
현재 안드로이드 운영체제를 사용하는 단말장치(스마트폰, 스마트패드)와 이를 위한 안드로이드 어플의 사용도 계속해서 증가하고 있다. 종래기술에 따른 안드로이드 에뮬레이터의 구조에서는, 단순히 프로세서를 에뮬레이션하는 구조로서 안드로이드 어플을 실행하는 기능만 제공한다. 안드로이드 운영체제를 탑재한 스마트폰을 사용하는 사용자는 개인정보 수집 및 유출, 시스템 변경, 그리고 악성코드 내재 등의 악의적인 의도를 가진 안드로이드 어플을 자신도 모르게 설치할 가능성과, 이를 통해 자신의 개인정보와 같은 중요한 정보가 외부로 노출되어 악용될 가능성이 있다.
이에 따라 안드로이드 어플에 대해 보안검증의 필요성이 요구되고 있어, 본 출원인은 안드로이드 어플에 대한 보안검증 기술에 대해 특허출원번호 제10-2011-0094707호(안드로이드 어플의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템)에 대해 이미 출원한바 있다.
이러한 보안검증 유틸리티를 비롯하여 각종의 안드로이드 어플 유틸리티는 타겟 안드로이드 어플을 동작시키면서 해당 안드로이드 어플이 생성해내는 상태 데이터를 수집한 후, 그 상태 데이터를 분석함으로써 각자 나름 대로의 목적(예: 보안검증, 어플리케이션 버그 체크 등)을 달성할 수 있다. 그에 따라 타겟 안드로이드 어플을 다양한 형태로 구동시켜 보아야 한다.
즉, 종래에는 사용자가 자신의 단말기에 안드로이드 어플을 설치하고 직접 실행하였다. 사용자는 안드로이드 어플을 실행한 후 어플의 화면(UI) 구조 및 각종 화면 구성요소를 자신의 눈(eye)과 뇌(brain)로 파악하고 각 화면 구성요소에 해당하는 입력이벤트를 터치로 발생시켜서 어플을 작동시킨 뒤, 어느 정도 작동이 완료되면 사용자는 해당 어플을 삭제한다.
이와 같이 현재까지는 단말장치에 안드로이드 어플을 설치, 실행, 삭제하는 일은 사용자가 각 단계를 눈으로 확인하면서 수동으로 처리하였는데, 이는 상당히 번거로운 일이다.
더욱이, 사람이 수동으로 동작을 시키다 보니 해당 안드로이드 어플이 마련한 모든 입력이벤트에 따른 동작을 빠짐없이 실행하기가 곤란하다. 이는 유틸리티의 결과(예: 보안검증 결과)가 완전하지 않다는 것을 의미하므로 상당한 문제점을 내포한다. 보다 구체적으로, 안드로이드 어플은 고유의 화면구조 및 화면 구성요소를 갖고 있으므로 사용자는 구성요소를 눈으로 파악해서 안드로이드 어플의 작동에 필요한 이벤트를 입력해야 한다. 이는 사용자가 안드로이드 어플에 대한 이해 및 숙련도에 따라 작동 결과가 달라질 수 있는 부분이므로 사용자와 무관하게 일률적인 작동 결과를 만들 수 없다.
추가로 안드로이드 어플에 대해 동일한 작동을 반복해야 하는 경우 사용자가 매번 안드로이드 어플의 구성요소를 눈으로 확인하면서 동작해야 하는 번거로움이 있어 왔다.
[관련기술문헌]
1. 안드로이드 어플의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템(특허출원 제10-2011-0094707호)
2. 모바일 단말기에 설치된 어플리케이션 데이터 보안방법(특허출원 제10-2012-0017716호)
본 발명의 목적은 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법을 제공하는 것이다. 더욱 상세하게는 본 발명의 목적은 안드로이드 환경에서 안드로이드 어플의 코드분석과 화면분석을 통해 화면 구성요소에 해당하는 입력이벤트를 발생시켜 안드로이드 어플을 동작시키고 그 동작이 끝나면 안드로이드 어플을 예컨대 삭제하는 일련의 과정을 진행함으로써 안드로이드 어플을 자동실행하는 기술을 제공하는 것이다.
이러한 과제를 달성하기 위한 본 발명에 따른 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법은, 특정 안드로이드 어플을 식별하는 제 1 단계; 안드로이드 어플의 코드를 분석하여 입력이벤트, 인텐트, 디바이스 정보를 추출하는 제 2 단계; 안드로이드 어플의 화면구조와 화면 구성요소를 분석하여 안드로이드 어플의 구동에 유효한 입력이벤트의 종류를 식별하는 제 3 단계; 그 식별된 입력이벤트의 종류 정보에 기초하여 안드로이드 어플에 대해 유효한 입력이벤트를 순차적으로 생성하여 제공함으로써 안드로이드 어플의 프로그램 동작을 자동 실행시키는 제 4 단계;를 포함하여 구성된다.
본 발명에서 제 2 단계는, 안드로이드 어플의 코드에서 리스너 분석을 통한 뷰 위젯의 리스너 정보를 추출하는 단계; 안드로이드 어플의 코드에서 인텐트 필터 분석을 통한 인텐트 정보를 추출하는 단계; 안드로이드 어플의 코드에서 브로드캐스트 리시버 분석을 통한 인텐트 정보를 추출하는 단계; 안드로이드 어플의 코드에서 Manifest 및 Classes.dex 실행 분석을 통한 디바이스 정보를 추출하는 단계;를 포함하여 구성된다.
본 발명에서 제 3 단계는, 안드로이드 어플의 액티비티 간의 전환 발생시 그 전환되는 액티비티의 분석을 수행하는 단계; 액티비티 간의 전환이 발생시 액티비티 간의 전환 순서 및 현재 위치한 액티비티 정보를 찾는 단계; 하나 이상의 뷰 위젯을 화면 구성요소로 갖는 각 액티비티에서 각 뷰 위젯의 정보를 추출하는 단계; 뷰 분석기에 의해 분석된 각 뷰 위젯 상으로 입력되는 리스너 정보를 추출하여 입력이벤트 종류를 결정하는 단계;를 포함하여 구성된다.
본 발명에서 제 4 단계는, 위 식별된 입력이벤트 종류가 탭 이벤트인 경우 탭 이벤트를 생성하여 해당 뷰 위젯에 제공하는 단계; 위 식별된 입력이벤트 종류가 드래그 이벤트인 경우 드래그 이벤트를 생성하여 해당 뷰 위젯에 제공하는 단계; 위 식별된 입력이벤트 종류가 키 이벤트인 경우 키 이벤트를 생성하여 해당 뷰 위젯에 제공하는 단계; 뷰 위젯에 탭 이벤트, 드래그 이벤트, 키 이벤트를 입력함에 따라 액티비티의 화면 구성요소 변경을 감지하여 화면분석 모듈로 정보를 갱신하도록 업데이트시키는 단계;를 포함하여 구성된다.
또한, 본 발명에 따른 안드로이드 어플의 자동실행 방법은, 이벤트 생성모듈에 의해 생성된 입력이벤트를 분석하고 입력이벤트 발생 시간 정보를 추가정보로 생성하여 매칭시키는 제 5 단계; 이벤트 파서에 의한 입력이벤트에 시간 정보를 매칭시킨 정보를 기반으로 안드로이드 몽키 스크립트를 생성하는 제 6 단계;를 더 포함하여 구성될 수 있다.
한편, 본 발명에 따른 컴퓨터로 판독가능한 기록매체는 이상과 같은 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법을 실행하기 위한 안드로이드 어플 자동실행 프로그램을 기록한 것이다.
본 발명에 따르면 안드로이드 어플의 설치, 삭제, 작동을 사용자가 개입할 필요없이 자동으로 진행되도록 함으로써 안드로이드 어플에 관련된 각종 작업, 예컨대 안드로이드 어플의 무결성 테스트나 관련 유틸리티(예: 보안검증 유틸리티)의 결과를 보장할 수 있는 장점이 있다. 특히, 이와 같은 작업을 사용자의 숙련도와 무관하게 동일한 품질의 작동 결과를 만들 수 있고 단순 반복작업의 효율 및 작업 속도를 높일 수 있는 편의를 제공한다.
도 1은 본 발명에 따른 안드로이드 어플의 자동실행 기능을 갖는 안드로이드 운영체제 기반의 단말의 구성을 나타내는 도면.
도 2는 본 발명에 따른 안드로이드 어플의 자동 실행을 위한 스크립트 생성 및 액티비티(Activity) 분석 과정을 나타내는 도면.
도 3는 본 발명에 따른 액티비티 실행트리 정보를 이용한 실행 경로에 대한 추적을 나타내는 도면.
도 4는 본 발명에 따른 안드로이드 어플의 자동실행 과정을 개념적으로 나타내는 순서도.
도 5는 본 발명에서 코드분석 과정의 상세 구성을 나타내는 순서도.
도 6은 본 발명에서 화면분석 과정의 상세 구성을 나타내는 순서도.
이하에서는 도면을 참조하여 본 발명을 상세하게 설명한다.
도 1은 본 발명에 따른 안드로이드 어플의 자동실행 기능을 갖는 안드로이드 단말(10)의 내부 구성을 나타내는 도면이다. 도 1을 참조하면, 안드로이드 단말(10)은 입출력부(11), 제어부(12), 저장부(13), 동적 행위분석부(14), 어플관리 모듈(15), 화면분석 모듈(16), 이벤트 생성모듈(17), 스크립트 생성모듈(18), 코드분석부(19)를 포함하여 이루어진다.
이중에서 동적 행위분석부(14), 어플관리 모듈(15), 화면분석 모듈(16), 이벤트 생성모듈(17), 스크립트 생성모듈(18), 코드분석부(19)는 안드로이드 어플 자동실행부(A)로서, 안드로이드 어플 자동실행부(A)는 안드로이드 단말(10) 환경에서 사용자의 개입 없이 안드로이드 어플을 설치하고 안드로이드 어플의 화면구조 및 구성요소를 분석해서 입력이벤트를 발생시켜 안드로이드 어플을 작동시키고 그 작동이 끝나면 안도로이드 어플을 삭제하는 일련의 과정을 진행하는 스크립트를 만드는 것이 목적이다.
어플관리 모듈(15)은 안드로이드 단말 환경에 설치하려는 안드로이드 어플이 이미 설치되어 있는지 파악하고 이미 설치된 경우 재설치하지 않고 실행시킨다. 그리고 어플관리 모듈(15)은 안드로이드 어플의 설치, 삭제, 실행시 정상적으로 설치, 삭제, 실행이 되지 않고 오류가 발생하는 경우에는 그 원인을 파악하는 역할을 수행한다. 본 발명에서 어플관리 모듈(15)은 안드로이드 어플의 설치, 삭제, 실행을 각각 담당하기 위해 어플 설치기(15a), 어플 제거기(15b), 어플 실행기(15c)를 포함한다.
어플 설치기(Application Installer)(15a)는 동적 행위분석부(14)에 설치하려는 안드로이드 어플이 이미 설치되어 있는지 확인하고, 당해 안드로이드 어플을 설치할 수 있을 정도의 여유 저장공간이 있는지 확인하며, 설치 중 발생할 수 있는 오류사항을 감지한다.
어플 제거기(Application Uninstaller)(15b)는 삭제하려는 안드로이드 어플이 동적 행위분석부(14)에 설치되어 있는지 확인하고, 당해 안드로이드 어플이 현재 실행 중이면 안드로이드 어플을 종료시키고, 안드로이드 어플이 실행 중에 생성한 사용자 데이터를 지운다. 어플 제거기(15b)는 안드로이드 어플의 삭제 중 발생할 수 있는 오류사항을 감지한다.
어플 실행기(Application Executer)(15c)는 시스템 메모리 또는 동적 행위분석부(14)로 로딩하여 실행하려는 안드로이드 어플이 이미 안드로이드 단말에 설치되어 있는지 확인하며, 추가로 그 안드로이드 어플이 이미 실행 중인지 감지하여 중복 실행을 방지한다. 어플 실행기(15c)는 안드로이드 어플 실행 중 발생할 수 있는 오류사항을 감지한다.
화면분석 모듈(16)은 특정 안드로이드 어플에 대해 화면크기 및 화면 구성요소의 개수와 크기, 각 화면 구성요소 간의 순서 등을 분석해서 입력이벤트가 필요한 화면 구성요소 및 입력이벤트 종류를 추출함으로써, 결국 사용자가 눈으로 실행하여 왔던 안드로이드 어플의 UI 화면구조를 파악하는 부분을 대체하는 역할을 한다. 이를 위해, 화면분석 모듈(16)은 소스코드 분석과 화면구조 분석을 수행하는데 안드로이드 운영체제에서는 현재 설치된 안드로이드 어플에 대한 안드로이드 계층 구조(hierarchy architecture)의 정보를 제공하므로 이를 활용하는 것이 바람직하다.
화면분석 모듈(16)은 안드로이드 어플의 UI 디스플레이 상의 화면구조와 이를 구성하는 화면 구성요소를 분석하여 이중에서 입력이벤트가 필요한 화면 구성요소를 추출하기 위해 액티비티 분석기(16a), 포커스 분석기(16b), 뷰 분석기(16c), 리스너 분석기(16d)을 포함한다.
액티비티 분석기(Activity Analyzer)(16a)은 안드로이드 어플이 하나 이상의 액티비티로 구성되어 있으므로, 액티비티 간의 전환이 일어나면서 안드로이드 어플이 작동하는데 그 전환이 이루어지는 시점에 액티비티의 이름, 크기, 부가 정보 등을 분석한다.
포커스 분석기(Focus Analyzer)(16b)는 액티비티 간의 전환이 일어날 때 현재 화면의 최상단에 위치하는 포커스를 갖게 되므로, 포커스 이동을 추적하여 액티비티 간의 전환 순서 및 현재 화면 최상단에 위치한 액티비티 정보를 찾는 기능을 수행한다.
뷰 분석기(View Analyzer)(16c)는 각 액티비티가 뷰 위젯(view widget)이라는 하나 이상의 화면 구성요소로 이루어져 있는데 각 뷰 위젯이 입력이벤트를 받는 대상이므로, 해당 뷰 위젯의 위치나 크기 등의 정보를 추출한다.
리스너 분석기(Listener Analyzer)(16d)는 뷰 분석기(16c)에 의해 분석된 각 뷰 위젯 상으로 입력되는 입력이벤트의 종류가 다른데 이 이벤트 종류를 결정하는 리스너 정보를 추출한다. 리스너 분석기(16d)는 각 뷰 위젯의 리스너 정보를 추출해서 필요한 입력이벤트 종류를 결정한다.
이벤트 생성모듈(17)은 화면분석 모듈(16)에 의해 분석된 특정 안드로이드 어플의 유효한 이벤트 종류에 대한 정보를 기초로 실제 이벤트를 입력하는 기능을 하는데 입력이벤트의 종류는 크게 터치, 드래그, 하드웨어 키 입력 등으로 나누어진다. 이벤트 생성모듈(17)은 사용자가 손으로 이벤트를 입력하는 부분을 대체하는 역할을 수행한다.
이벤트 생성모듈(17)은 분석된 이벤트 종류에 대한 정보를 기초로 종류별 입력이벤트를 생성하기 위해 탭 이벤트 생성기(17a), 드래그 이벤트 생성기(17b), 키 이벤트 생성기(17c), 분석기 업데이터(17d)을 포함한다.
탭 이벤트 생성기(Tab Event Generator)(17a)는 화면분석 모듈(16)에 의해 분석된 이벤트 종류가 탭 이벤트인 경우에 그에 따른 탭 이벤트를 생성하여 화면 구성요소의 해당 뷰 위젯으로 제공한다.
드래그 이벤트 생성기(Drag Event Generator)(17b)는 화면분석 모듈(16)에 의해 분석된 이벤트 종류가 드래그 이벤트인 경우에 그에 따른 드래그 이벤트를 생성하여 화면 구성요소의 해당 뷰 위젯으로 제공한다.
키 이벤트 생성기(Key Event Generator)(17c)는 화면분석 모듈(16)에 의해 분석된 이벤트 종류가 키 이벤트인 경우에 그에 따른 키 이벤트를 생성하여 화면 구성요소의 해당 뷰 위젯으로 제공한다.
분석기 업데이터(Analysis Updater)(17d)는 이들 뷰 위젯에 탭 이벤트, 드래그 이벤트, 키 이벤트를 제공함에 따라 액티비티의 화면 구성요소가 변경되는 경우에는 이를 감지해서 화면분석 모듈(16)이 정보를 갱신하도록 알려주는 역할을 수행한다.
스크립트 생성모듈(18)은 어플관리 모듈(15)에 의한 안드로이드 어플의 설치, 삭제, 실행 동작, 그리고 이벤트 생성모듈(17)에 의해 생성된 각종의 입력이벤트를 기반으로 자동실행 스크립트를 생성한다. 스크립트 생성모듈(18)에 의해 생성된 자동실행 스크립트는 안드로이드 어플의 설치, 삭제, 실행, 작동에 관련된 일련의 과정을 기술한 것으로 추후 반복 사용이 가능하며, 사용자의 숙련도에 따라 안드로이드 어플의 작동 결과가 달라지는 문제를 피하고 일률적인 작동 결과를 만드는 기능에 사용된다.
스크립트 생성모듈(18)은 어플관리 모듈(15)에 의한 동작 및 이벤트 생성모듈(17)에 의해 생성된 입력이벤트를 기반으로 스크립트 생성을 위해 이벤트 파서(18a)와 몽키 스트립트 생성기(18b)을 포함하여 구성된다.
이벤트 파서(Event Parser)(18a)는 이벤트 생성모듈(17)에 의해 생성된 입력이벤트를 분석하고 입력이벤트 발생 시간 정보를 추가정보로 생성한다.
몽키 스트립트 생성기(Monkey Script Generator)(18b)는 이벤트 파서(18a)에 의한 입력이벤트에 시간 정보를 매칭시킨 정보를 기반으로 안드로이드 몽키 스크립트를 생성한다.
도 2는 본 발명에 따른 안드로이드 어플의 자동 실행을 위한 스크립트 생성 및 액티비티 분석 과정을 나타내는 도면이다. 도 1 및 도 2를 참조하면, 어플관리 모듈(15)은 동적 행위분석부(14)에 안드로이드 어플을 설치하고, 화면분석 모듈(16)은 해당 안드로이드 어플에 대한 화면정보를 전달받아 화면구조와 화면 구성요소를 분석한다.
화면분석 모듈(16)에 의해 제공되는 각 액티비티에 대한 화면 구성정보를 바탕으로 이벤트 생성모듈(17)은 각종의 입력이벤트를 생성하여 동적 행위분석부(14)에 이들 입력이벤트를 제공한다. 한편, 이벤트 생성모듈(17)에 의해 생성된 입력이벤트들은 스크립트 생성모듈(18)로 전달되어 추후 반복 사용이 가능한 스크립트가 생성되도록 한다.
또한, 화면분석 모듈(16)은 이들 입력이벤트가 필요한 화면 구성요소 및 입력이벤트 종류를 기초로 각 액티비티 실행트리 정보를 생성하여 저장부(13)에 저장할 수 있으며, 이들 액티비티 실행트리 정보를 바탕으로 제어부(12)는 실행 경로를 추적해 볼 수 있다. 도 3는 액티비티 실행트리 정보를 이용한 실행 경로에 대한 추적을 나타내는 하나의 실시예가 될 수 있다. 즉, 화면분석 모듈(16)은 화면 분석을 통해 저장된 액티비티 트리(Activity Tree) 정보를 통해 해당 안드로이드 어플의 실행 경로가 추적 가능한 기능을 제공한다.
도 4는 본 발명에 따른 안드로이드 어플의 자동실행 과정을 개념적으로 나타내는 순서도이다. 도 4를 참조하면, 코드분석부(19)는 안드로이드 어플의 코드를 분석하여 입력이벤트, 인텐트, 디바이스 정보를 추출한다(S11). 도 5를 참조하여 좀더 구체적으로 살펴보면, 코드분석부(19)는 코드에서 리스너(Listener) 정보 분석을 통한 뷰 위젯의 이벤트 정보를 추출하고(S111), 코드에서 인텐트 필터(Intent Filter) 분석을 통한 인텐트(Intent) 정보를 추출하고(S112), 안드로이드 어플의 코드에서 브로드캐스트 리시버(Broadcast Receiver) 분석을 통한 인텐트 정보를 추출하며(S113), 안드로이드 어플의 Manifest 및 Classes.dex 실행 분석을 통한 디바이스 정보를 추출한다(S114).
이어서, 화면분석 모듈(16)은 안드로이드 어플의 UI 화면의 구성을 분석한다(S12). 도 6을 참조하여 좀더 구체적으로 살펴보면, 화면분석 모듈(16)은 특정 영역의 뷰 위젯에 해당하는 입력이벤트를 안드로이드 코드로부터 추출하여 저장하며(S121), 기타 안드로이드 어플 구동에 필요한 이벤트 정보, 인텐트 정보, 디바이스 정보를 추출하여 저장한다(S122). 화면분석 모듈(16)이 수행하는 화면분석에 대해서는 화면분석 모듈(16)에 대해 상세하게 전술하였다.
코드 분석부(19)는 단계(S11)의 코드분석 과정을 통해 도출된 액티비티 화면 구성 정보를 토대로 단계(S12)에서 수행된 화면 분석을 통해 생성된 자동실행을 위한 각종 정보를 실행하여 자동실행 결과를 만들 수 있다. 이때, 안드로이드 자동실행을 위한 정보를 스크립트 파일의 형태로 생성한 후에 이를 실행함으로써 자동실행 결과를 얻도록 구현할 수도 있다. 이와 같은 스크립트 파일은 스크립트 생성모듈(18)에 의해 작성된다.
추가로, 코드분석부(19)는 동적 행위분석부(14)와의 협조동작을 통해 안드로이드 어플에 대한 자동실행을 수행한 후에 특정 목적(예: 안드로이드 어플의 무결성 테스트, 보안검증 등)에 따른 이상행위 확인을 수행한다(S14). 코드분석부(19)는 작업을 반복하며 이벤트, 인텐트, GPS, 콜(CALL), 센서, SMS 등을 안드로이드 어플으로 실행시켜 추가적인 이상행위를 확인할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드의 형태로 구현하는 것이 가능하다. 이때, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어웨이브(예: 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산된 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인 프로그램, 코드, 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있다.

Claims (7)

  1. 특정 안드로이드 어플을 식별하는 제 1 단계;
    상기 안드로이드 어플의 코드를 분석하여 입력이벤트, 인텐트, 디바이스 정보를 추출하는 제 2 단계;
    상기 안드로이드 어플의 화면구조와 화면 구성요소를 분석하여 상기 안드로이드 어플의 구동에 유효한 입력이벤트의 종류를 식별하는 제 3 단계;
    상기 식별된 입력이벤트의 종류 정보에 기초하여 상기 안드로이드 어플에 대해 유효한 입력이벤트를 순차적으로 생성하여 제공함으로써 상기 안드로이드 어플의 프로그램 동작을 자동 실행시키는 제 4 단계;
    를 포함하여 구성되는 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법.
  2. 청구항 1에 있어서,
    상기 제 2 단계는,
    상기 안드로이드 어플의 코드에서 리스너 분석을 통한 뷰 위젯의 리스너 정보를 추출하는 단계;
    상기 안드로이드 어플의 코드에서 인텐트 필터 분석을 통한 인텐트 정보를 추출하는 단계;
    상기 안드로이드 어플의 코드에서 브로드캐스트 리시버 분석을 통한 인텐트 정보를 추출하는 단계;
    를 포함하여 구성되는 것을 특징으로 하는 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법.
  3. 청구항 2에 있어서,
    상기 제 2 단계는,
    상기 안드로이드 어플의 코드에서 Manifest 및 Classes.dex 실행 분석을 통한 디바이스 정보를 추출하는 단계;
    를 더 포함하여 구성되는 것을 특징으로 하는 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법.
  4. 청구항 3에 있어서,
    상기 제 3 단계는,
    상기 안드로이드 어플의 하나 이상의 액티비티 간의 전환 발생시 그 전환되는 액티비티의 분석을 수행하는 단계;
    상기 액티비티 간의 전환이 발생시 액티비티 간의 전환 순서 및 현재 위치한 액티비티 정보를 찾는 단계;
    하나 이상의 뷰 위젯을 화면 구성요소로 갖는 각 액티비티에서 각 뷰 위젯의 정보를 추출하는 단계;
    상기 뷰 분석기에 의해 분석된 각 뷰 위젯 상으로 입력되는 리스너 정보를 추출하여 입력이벤트 종류를 결정하는 단계;
    를 포함하여 구성되는 것을 특징으로 하는 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법.
  5. 청구항 4에 있어서,
    상기 제 4 단계는,
    상기 식별된 입력이벤트 종류가 탭 이벤트인 경우 탭 이벤트를 생성하여 해당 뷰 위젯에 제공하는 단계;
    상기 식별된 입력이벤트 종류가 드래그 이벤트인 경우 드래그 이벤트를 생성하여 해당 뷰 위젯에 제공하는 단계;
    상기 식별된 입력이벤트 종류가 키 이벤트인 경우 키 이벤트를 생성하여 해당 뷰 위젯에 제공하는 단계;
    상기 뷰 위젯에 상기 탭 이벤트, 드래그 이벤트, 키 이벤트를 입력함에 따라 액티비티의 화면 구성요소 변경을 감지하여 상기 화면분석 모듈로 정보를 갱신하도록 업데이트시키는 단계;
    를 포함하여 구성되는 것을 특징으로 하는 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법.
  6. 청구항 5에 있어서,
    상기 이벤트 생성모듈에 의해 생성된 입력이벤트를 분석하고 입력이벤트 발생 시간 정보를 추가정보로 생성하여 매칭시키는 제 5 단계;
    상기 이벤트 파서에 의한 입력이벤트에 시간 정보를 매칭시킨 정보를 기반으로 안드로이드 몽키 스크립트를 생성하는 제 6 단계;
    를 더 포함하여 구성되는 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법.
  7. 청구항 1 내지 청구항 6 중 어느 하나의 항에 따른 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법을 실행하기 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
PCT/KR2012/007353 2012-09-13 2012-09-14 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법 WO2014042297A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120101385A KR101325954B1 (ko) 2012-09-13 2012-09-13 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
KR10-2012-0101385 2012-09-13

Publications (1)

Publication Number Publication Date
WO2014042297A1 true WO2014042297A1 (ko) 2014-03-20

Family

ID=49856886

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/007353 WO2014042297A1 (ko) 2012-09-13 2012-09-14 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법

Country Status (2)

Country Link
KR (1) KR101325954B1 (ko)
WO (1) WO2014042297A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126216A (zh) * 2016-06-17 2016-11-16 广州恒业软件科技有限公司 一种基于安卓系统的加速开机方法及其系统
CN109144809A (zh) * 2017-06-28 2019-01-04 武汉斗鱼网络科技有限公司 一种焦点变化监控方法、存储介质、电子设备及系统
CN111639000A (zh) * 2020-06-03 2020-09-08 公安部第三研究所 一种安卓移动终端备份数据快速提取的方法及自动化备份系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101434094B1 (ko) 2013-03-18 2014-08-26 한양대학교 에리카산학협력단 안드로이드 플랫폼에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법
WO2018062629A1 (ko) * 2016-09-27 2018-04-05 에스케이테크엑스 주식회사 데이터 이체 기반의 추천 아이템 제공 장치 및 이를 이용한 방법
KR102005718B1 (ko) * 2018-08-14 2019-07-31 알서포트 주식회사 상황정보 병기형 실사용 기반 모바일단말 스크립트 생성 방법
CN109981283B (zh) * 2019-02-28 2022-05-20 西安理工大学 Android平台消息驱动核心代码完整性检测系统及方法
CN113127056B (zh) * 2021-05-17 2022-03-29 马上消费金融股份有限公司 一种信息处理方法、装置、设备及可读存储介质
WO2023022359A1 (ko) * 2021-08-19 2023-02-23 삼성전자 주식회사 어플리케이션의 실행 오류를 검출하는 전자 장치 및 그 작동 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101095426B1 (ko) * 2011-07-06 2011-12-16 (주)티비스톰 엑스렛 어플리케이션 실행 방법 및 기록매체
WO2012015083A1 (ko) * 2010-07-29 2012-02-02 주식회사 앵글스톤테크놀러지 Rtos 기반의 안드로이드 어플리케이션 실행 장치
KR20120088950A (ko) * 2011-02-01 2012-08-09 이성범 피씨의 휴대폰 어플 에뮬레이팅 방법
KR20120096983A (ko) * 2011-02-24 2012-09-03 삼성전자주식회사 악성 프로그램 검출 방법 및 이를 구현하는 휴대 단말기

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101027971B1 (ko) 2010-12-10 2011-04-13 (주)헬릭스테크 애플리케이션 검사 가능한 이동통신 단말기 및 그 검사 방법
KR101143999B1 (ko) 2011-11-22 2012-05-09 주식회사 안철수연구소 Api 기반 어플리케이션 분석 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015083A1 (ko) * 2010-07-29 2012-02-02 주식회사 앵글스톤테크놀러지 Rtos 기반의 안드로이드 어플리케이션 실행 장치
KR20120088950A (ko) * 2011-02-01 2012-08-09 이성범 피씨의 휴대폰 어플 에뮬레이팅 방법
KR20120096983A (ko) * 2011-02-24 2012-09-03 삼성전자주식회사 악성 프로그램 검출 방법 및 이를 구현하는 휴대 단말기
KR101095426B1 (ko) * 2011-07-06 2011-12-16 (주)티비스톰 엑스렛 어플리케이션 실행 방법 및 기록매체

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126216A (zh) * 2016-06-17 2016-11-16 广州恒业软件科技有限公司 一种基于安卓系统的加速开机方法及其系统
CN106126216B (zh) * 2016-06-17 2019-04-16 广州久邦世纪科技有限公司 一种基于安卓系统的加速开机方法及其系统
CN109144809A (zh) * 2017-06-28 2019-01-04 武汉斗鱼网络科技有限公司 一种焦点变化监控方法、存储介质、电子设备及系统
CN109144809B (zh) * 2017-06-28 2022-03-25 武汉斗鱼网络科技有限公司 一种焦点变化监控方法、存储介质、电子设备及系统
CN111639000A (zh) * 2020-06-03 2020-09-08 公安部第三研究所 一种安卓移动终端备份数据快速提取的方法及自动化备份系统
CN111639000B (zh) * 2020-06-03 2023-03-24 公安部第三研究所 一种安卓移动终端备份数据快速提取的方法及自动化备份系统

Also Published As

Publication number Publication date
KR101325954B1 (ko) 2013-11-20

Similar Documents

Publication Publication Date Title
WO2014042297A1 (ko) 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법
Peng et al. {X-Force}:{Force-Executing} binary programs for security applications
RU2691187C1 (ru) Система и способы аудита виртуальной машины
Sikorski et al. Practical malware analysis: the hands-on guide to dissecting malicious software
WO2014035043A1 (ko) 악성 애플리케이션 진단 장치 및 방법
KR20210002701A (ko) 교차 레벨 트레이스 매핑을 통한 실행 제어
US20160378989A1 (en) Apparatus and method for monitoring android platform-based application
Lopez et al. A survey on function and system call hooking approaches
WO2013042802A1 (ko) 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
Arzt et al. Instrumenting android and java applications as easy as abc
CN103186740A (zh) 一种Android恶意软件的自动化检测方法
US11528298B2 (en) Methods and systems for preventing malicious activity in a computer system
Arzt et al. The soot-based toolchain for analyzing android apps
WO2013137615A1 (en) Method and apparatus for detecting leak of information resource of device
Kawakoya et al. Api chaser: Taint-assisted sandbox for evasive malware analysis
Margosis et al. Windows Sysinternals administrator's reference
Russinovich et al. Troubleshooting with the Windows Sysinternals tools
CN109542444B (zh) Java应用的监控方法、装置、服务器和存储介质
Hu et al. Automatically patching vulnerabilities of binary programs via code transfer from correct versions
Josse Secure and advanced unpacking using computer emulation
CN114969760A (zh) 漏洞检测方法及装置、计算机可读介质和电子设备
Chen et al. SFuzz: Slice-based Fuzzing for Real-Time Operating Systems
WO2020111482A1 (ko) 프로그램 실행 컨텍스트 기반의 빅데이터를 활용한 역공학 방법 및 시스템
Park et al. A-pot: a comprehensive android analysis platform based on container technology
CN111274582B (zh) 基于透明度的取证效果评估方法、取证分析装置及方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12884642

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12884642

Country of ref document: EP

Kind code of ref document: A1