KR20120081873A - 모바일 어플리케이션 검증 방법 및 이를 적용한 단말 - Google Patents

모바일 어플리케이션 검증 방법 및 이를 적용한 단말 Download PDF

Info

Publication number
KR20120081873A
KR20120081873A KR1020110003244A KR20110003244A KR20120081873A KR 20120081873 A KR20120081873 A KR 20120081873A KR 1020110003244 A KR1020110003244 A KR 1020110003244A KR 20110003244 A KR20110003244 A KR 20110003244A KR 20120081873 A KR20120081873 A KR 20120081873A
Authority
KR
South Korea
Prior art keywords
hooking
target application
application
terminal
api
Prior art date
Application number
KR1020110003244A
Other languages
English (en)
Other versions
KR101763804B1 (ko
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 에스케이플래닛 주식회사
Priority to KR1020110003244A priority Critical patent/KR101763804B1/ko
Publication of KR20120081873A publication Critical patent/KR20120081873A/ko
Application granted granted Critical
Publication of KR101763804B1 publication Critical patent/KR101763804B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Abstract

모바일 어플리케이션 검증 방법 및 이를 적용한 단말이 개시된다.
단말은 어플리케이션 계층과 모바일 오픈 플랫폼을 탑재하며, 어플리케이션 계층에는 모바일 오픈 플랫폼을 기반으로 제작된 타겟 어플리케이션과 해당 어플리케이션의 동작 중에, 어플리케이션과 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 어플리케이션의 정상 동작 여부를 검증하는 검증 에이전트가 포함된다. 타겟 어플리케이션의 구동 시작 시 단말의 검증 에이전트는 플랫폼으로 해당 어플리케이션의 핸들을 요청하여 프로세스 정보를 획득하고, 후킹 프로세스 정보를 등록한 후, 후킹 프로세스 정보를 이용해 어플리케이션의 동작 중에 어플리케이션이 플랫폼과 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 그 결과를 수집 및 모니터링한다.
이러한 구성에 따르면, 모바일 오픈 플랫폼을 기반으로 제작된 어플리케이션에 대하여 어플리케이션의 정상적 설치 및 동작 여부를 검증하고, 어플리케이션의 디버깅을 쉽게 하여 어플리케이션의 개발, 오류 파악, 수정에 편의성을 제공할 수 있다.

Description

모바일 어플리케이션 검증 방법 및 이를 적용한 단말{METHOD FOR VERIFYING MOBILE APPLICATION AND TERMINAL USING THE SAME}
본 발명은 모바일 어플리케이션 검증 방법 및 이를 적용한 단말에 관한 것으로, 더욱 상세하게는 위피(WIPI) 등의 모바일 오픈 플랫폼을 기반으로 제작된 어플리케이션에 대하여 어플리케이션의 정상적 설치 및 동작 여부를 검증하고, 어플리케이션의 디버깅을 쉽게 하여 어플리케이션의 개발, 오류 파악, 수정에 편의성을 제공하며, 그에 따라 어플리케이션 개발 기간을 단축할 수 있는 모바일 어플리케이션 검증 방법 및 이를 적용한 단말에 관한 것이다.
최근 스마트폰 등의 단말이 폭넓게 보급되면서 제조사나 이동통신 사업자가 제공하는 어플리케이션 마켓(앱스토어 등)들이 많이 생겨나고 있다. 또한, 이러한 환경에서, 컨텐츠 개발자들이 어플리케이션을 상업적으로 제작하여 어플리케이션 마켓에 업로드하면, 개인 유저들이 단말에서 이를 다운로드하여 사용하는 방식으로 서비스 패턴이 변화하고 있다.
한편, 종래에는, 제조사가 이동통신 사업자의 정책에 따라 어플리케이션을 제작하여 단말에 기본 탑재하거나 이동통신 사업자가 테스트 및 관리를 전담하는 형태로 어플리케이션이 제공되었으며, 이에 따라 일부 컨텐츠 개발자들만이 어플리케이션 제작에 참여할 수 있었다.
그러나, 위피(WIPI) 등의 모바일 오픈 플랫폼이 탑재된 단말이 상용화되면서 어플리케이션 제작 환경이 개방되고, 개인 유저들의 경우에도 어플리케이션을 쉽게 제작하여 앱스토어 등의 어플리케이션 마켓을 통해 판매할 수 있는 환경이 구축되면서 수많은 어플리케이션들이 제작되고 있다. 여기서, 모바일 오픈 플랫폼은 스마트폰 등의 단말 내에 탑재되어 어플리케이션을 수행할 수 있는 환경을 제공하는 플랫폼으로서, 운영체제(OS)와 함께 단말에 임베디드되는 형태로 개발된다. 어플리케이션은 단말에 내장된 고유 실행 환경인 모바일 오픈 플랫폼의 규격을 기반으로 개발되어야만 해당 단말 상에서 실행이 가능하다.
어플리케이션 제작 환경이 개방됨에 따라, 이동통신 사업자는 대규모로 쏟아지는 수많은 어플리케이션들 중에서 양질의 어플리케이션을 제공하기 위하여, 어플리케이션 테스트 인력을 운영하고 있으나 고용된 인력에 의해 수동으로 하는 검증에는 오류 검출에 대한 한계가 있었다. 또한, 오류 검출 기준에 대한 객관화된 기준이 없고, 오류가 검출되는 경우에도 정확한 원인 분석이 이루어지지 않아서 대처 및 해결이 어렵다는 문제점이 있었다.
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하기 위하여 제안된 것으로, 위피(WIPI) 등의 모바일 오픈 플랫폼을 기반으로 제작된 어플리케이션에 대하여 어플리케이션의 정상적 설치 및 동작 여부를 검증하고, 어플리케이션의 디버깅을 쉽게 하여 어플리케이션의 개발, 오류 파악, 수정에 편의성을 제공하며, 그에 따라 어플리케이션 개발 기간을 단축할 수 있는 모바일 어플리케이션 검증 방법 및 이를 적용한 단말을 제공함에 그 목적이 있다.
본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 따른 모바일 어플리케이션 검증 방법은 어플리케이션 계층과, 상기 어플리케이션 계층의 실행 환경을 제공하는 모바일 오픈 플랫폼이 탑재되어 있는 단말의 어플리케이션 검증 방법에 있어서, 타겟 어플리케이션의 실행이 요청됨에 따라, 상기 단말이 상기 타겟 어플리케이션의 프로세스 정보를 획득하는 단계; 상기 단말이 상기 프로세스 정보에 의거하여 후킹 프로세스 정보를 등록하는 단계; 및 상기 타겟 어플리케이션의 동작 중에, 상기 단말이 상기 후킹 프로세스 정보에 의거하여 상기 타겟 어플리케이션이 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하는 단계를 포함한다.
본 발명에 따른 컴퓨터가 읽을 수 있는 기록매체는 모바일 오픈 플랫폼으로 타겟 어플리케이션의 실행을 요청하여 상기 모바일 오픈 플랫폼이 관리하는 상기 타겟 어플리케이션의 프로세스 정보를 획득하기 위한 명령; 상기 프로세스 정보에 의거하여 후킹 프로세스 정보를 등록하기 위한 명령; 및 상기 타겟 어플리케이션의 동작 중에, 상기 후킹 프로세스 정보에 의거하여 상기 타겟 어플리케이션과 상기 모바일 오픈 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하기 위한 명령을 포함한다.
본 발명에 따른 단말은 어플리케이션 계층과, 상기 어플리케이션 계층의 실행 환경을 제공하는 모바일 오픈 플랫폼이 탑재되어 있는 단말에 있어서, 상기 어플리케이션 계층은, 상기 모바일 오픈 플랫폼을 기반으로 개발된 타겟 어플리케이션; 및 상기 타겟 어플리케이션의 동작 중에, 상기 타겟 어플리케이션과 상기 모바일 오픈 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하는 검증 에이전트를 포함한다.
본 발명의 모바일 어플리케이션 검증 방법 및 이를 적용한 단말에 따르면, 위피(WIPI) 등의 모바일 오픈 플랫폼을 기반으로 제작된 어플리케이션에 대하여 어플리케이션의 정상적 설치 및 동작 여부를 쉽게 검증할 수 있다.
또한, 개발 과정에서 어플리케이션의 디버깅을 쉽게 하여 어플리케이션의 개발, 오류 파악, 수정에 편의성을 제공하며, 그에 따라 어플리케이션 개발 기간을 단축할 수 있다.
또한, API(Application Platform Interface) 후킹(Hooking)을 통해 단말에서 실행된 어플리케이션에서 사용하는 메모리 할당량, 파일 핸들(FILE Handle) 개수, 타이머(Timer) 개수 등의 리소스에 대한 사항을 정확히 수집함으로써 어플리케이션 종료 시 리소스 해제를 하지 않음으로써 발생하는 비정상 동작을 방지할 수 있다.
또한, 어플리케이션에서 등록하는 시스템 콜백(CallBack) 함수를 후킹(Hooking)함으로써 어플리케이션의 이벤트 동작에 대한 로그를 기록할 수 있다.
도 1은 본 발명의 일 실시예에 따른 단말의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 모바일 어플리케이션 검증 방법의 흐름도이다.
도 3 및 도 4는 도 2의 일부 단계를 예시한 세부 흐름도이다.
도 5는 본 발명의 일 실시예에서, 모바일 어플리케이션이 사용하는 프로세스 정보를 예시한 테이블이다.
이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예에 따른 모바일 어플리케이션 검증 방법 및 이를 적용한 단말에 대해서 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 단말의 구성도이다.
도 1을 참조하면, 일 실시예에 따른 단말은 단말 운영체제(110), 모바일 오픈 플랫폼(120)과 하나 이상의 어플리케이션이 탑재된 어플리케이션 계층(130)을 포함하여 구성된다.
단말 운영체제(110)는 단말을 구동하기 위한 시스템 소프트웨어로서, 단말의 물리적인 구성을 이루는 입력부, 디스플레이부, 메모리부, 마이크로프로세서와 같은 하드웨어를 제어한다.
모바일 오픈 플랫폼(120)은 단말의 하드웨어와 어플리케이션 계층(130) 사이에 위치하여, 어플리케이션 계층(130)에 위치한 다양한 어플리케이션들이 단말 상에서 실행될 수 있도록 하는 환경을 제공한다. 모바일 오픈 플랫폼(120)은 컨텐츠 개발자들에게 어플리케이션을 제작하기 위한 API(Application Platform Interface) 함수들을 제공하는 것으로, 위피(WIPI), 안드로이드(Android) 등이 이에 해당한다. 컨텐츠 개발자에 의해 제작되는 각 어플리케이션은 모바일 오픈 플랫폼(120)에서 제공하는 API 함수 그룹을 통해 원하는 기능을 수행한다. 단말의 실시형태에 따라, 특히 단말이 스마트폰 형태의 모바일 기기인 경우, 단말 운영체제(110) 및 모바일 오픈 플랫폼(120)은 하나의 계층으로 통합 구현될 수도 있다.
어플리케이션 계층(130)은 모바일 오픈 플랫폼(120)이 제공하는 환경 하에서 구현되는 다양한 어플리케이션들이 위치하는 공간이다. 어플리케이션 계층(130)에 탑재되는 각 어플리케이션은 모바일 오픈 플랫폼(120)이 제공하는 실행 환경 하에서 구현된다. 특히, 어플리케이션 계층(130)에는 컨텐츠 개발자가 모바일 오픈 플랫폼(120)을 기반으로 개발한 임의의 타겟 어플리케이션(134)과 타겟 어플리케이션(134)의 동작을 검증하기 위한 검증 에이전트(131)가 위치한다.
검증 에이전트(131)는 타겟 어플리케이션(134)과 함께 구동되어 타겟 어플리케이션(134)의 설치, 동작 등이 정상적으로 이루어지는지, 오류는 없는지 등을 검증하는 역할을 한다. 컨텐츠 개발자는 타겟으로 하는 특정 종류의 모바일 오픈 플랫폼(120)에 기반하여 타겟 어플리케이션(134)을 제작하고, 보급(Release) 전에 검증 에이전트(131)를 이용해 타겟 어플리케이션(134)의 동작 검증 및 오류 수정 과정을 거친 후 검증이 완료된 타겟 어플리케이션(134)을 앱스토어 등의 어플리케이션 마켓에 업로드하여 판매할 수 있다.
전술한 검증 에이전트(131)는 타겟 어플리케이션(134)과 모바일 오픈 플랫폼(120) 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹(Hooking)하여 타겟 어플리케이션(134)의 정상 동작 여부를 검증한다. 이를 위하여, 검증 에이전트(131)는 타겟 어플리케이션(134)의 구동 시작 시 후킹 API 테이블 주소 및 후킹 시스템 콜백 등록주소를 포함한 후킹 프로세스 정보를 등록한다.
검증 에이전트(131)에는 API 동작 검증부(132) 및 시스템 콜백 검증부(133)가 포함될 수 있다. API 동작 검증부(132)는 타겟 어플리케이션(134)의 동작 중에 타겟 어플리케이션(134)으로부터 API 함수의 호출이 요청되면 기 등록된 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출하고, 후킹 API 함수와 관련된 리소스 사용정보(메모리 할당에 관한 정보 등)를 수집하여 모니터링한 후 모바일 오픈 플랫폼(120)으로 본래의 API 함수를 호출하여 타겟 어플리케이션(134)에 리소스를 할당하도록 한다. API 함수의 실행 후 모바일 오픈 플랫폼(120)이 리소스 해제를 위해 메모리 아이디의 반환을 요청하면 검증 에이전트(131)의 API 동작 검증부(132)가 해당 메모리 아이디와 관련된 리소스 해제정보를 수집한 후, 기 할당된 메모리 아이디를 타겟 어플리케이션(134)으로 반환하여 리소스를 해제하도록 한다.
시스템 콜백 검증부(133)는 타겟 어플리케이션(134)의 동작 중에 이벤트 발생에 의해 모바일 오픈 플랫폼(120)으로부터 시스템 콜백 함수의 호출이 요청되면, 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하고, 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집하여 모니터링한 후 타겟 어플리케이션(134)으로 본래의 시스템 콜백 함수를 호출한다.
이러한 일 실시예에 따르면, 컨텐츠 개발자가 타겟 어플리케이션(134)에 전달되는 모든 이벤트를 알 수 있고, 타겟 어플리케이션(134)에서 사용하는 메모리 할당, 파일 리소스, 디바이스 리소스, 타이머 리소스 등에 관한 사항을 알 수 있다. 그러므로, 컨텐츠 개발자는 타겟 어플리케이션(134)의 문제를 쉽게 디버깅할 수 있으며, 그에 따라 문제점의 파악 및 수정, 개발 기간 단축 등에 있어 편의성을 제공할 수 있다.
도 2는 본 발명의 일 실시예에 따른 모바일 어플리케이션 검증 방법의 흐름도로서, 도 1과 같이 어플리케이션 계층(130)과, 어플리케이션 계층(130)의 실행 환경을 제공하는 모바일 오픈 플랫폼(120)이 탑재되어 있는 단말의 어플리케이션 검증 방법을 예시하고 있다.
단말에 설치된 검증 에이전트(131)는 정상 설치 및 동작 여부를 검증하여야 하는 타겟 어플리케이션(134)을 제어하고, 그 결과를 수집하는 기능을 담당하며, 검증 대상이 되는 타겟 어플리케이션(134)을 검증하기 위하여 시스템 콜백(CallBack) 함수 그룹 및 API(Application Platform Interface) 함수 그룹의 후킹(Hooking)을 구현한다.
검증 에이전트(131)는 검증할 타겟 어플리케이션(134)의 실행을 요청(S110)하여 이를 수신한 모바일 오픈 플랫폼(120)이 타겟 어플리케이션(134)을 구동시키면(S120), 모바일 오픈 플랫폼(120)으로 타겟 어플리케이션(134)의 핸들(Handle)을 요청하여 이를 획득한다(S130). 여기서, 핸들은 모바일 오픈 플랫폼(120)에서 관리하는 프로세스 정보에 대한 것이며, 프로세스 정보는 타겟 어플리케이션(134)의 시스템 콜백 등록주소 및 모바일 오픈 플랫폼(120)의 API 테이블 주소를 포함한다.
검증 에이전트(131)는 S130을 통해 획득한 프로세스 정보에 의거하여 후킹 프로세스 정보, 즉 후킹 API 테이블 주소 및 시스템 콜백 등록주소를 등록한다(S140).
이후, 검증 에이전트(131)는 타겟 어플리케이션(134)의 동작 중에, 타겟 어플리케이션(134)의 실행과 함께 검증 에이전트(131)가 등록한 후킹 프로세스 정보에 의거하여 타겟 어플리케이션(134)과 모바일 오픈 플랫폼(120) 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 타겟 어플리케이션(134)의 정상 동작 여부를 검증한다(S150). 이때, 타겟 어플리케이션(134)의 동작 중에 타겟 어플리케이션(134)으로부터 API 함수가 호출되거나 모바일 오픈 플랫폼(120)에서 시스템 콜백 함수가 시스템적으로 호출될 경우, 모바일 오픈 플랫폼(120)의 프로세스 정보에 포함된 API 테이블 주소 및 시스템 콜백 등록주소가 호출되는 대신에 검증 에이전트(131)에서 등록한 후킹 API 테이블 주소 및 시스템 콜백 등록주소가 호출된다(S150).
이와 같이, 모바일 어플리케이션의 검증 시, 어플리케이션의 프로세스 동작에 대한 오류를 쉽게 찾을 수 있는 API 후킹 기술과 시스템 콜백 후킹 기술을 적용할 수 있다.
API 후킹을 통해 단말에서 실행된 모바일 어플리케이션이 사용하는 메모리 할당량, 파일 핸들 개수, 타이머 개수 등 리소스에 대한 사항을 정확히 수집함으로써 해당 어플리케이션의 종료 시 리소스 해제를 하지 않음으로써 발생하는 비정상 동작을 방지할 수 있다. 또한, 어플리케이션에서 등록하는 시스템 콜백 함수를 후킹함으로써 어플리케이션의 이벤트 동작에 대한 로그를 기록할 수 있다.
도 3 및 도 4는 도 2의 일부 단계를 예시한 세부 흐름도이다.
도 3은 도 2에 나타난 S150의 검증 단계에서 API 함수 호출 방법을 예시하고 있다.
구동이 시작된 타겟 어플리케이션(134)이 동작할 때, 단말이 검증 에이전트(131)에서 후킹한 API 테이블을 통해 리소스에 관련된 API 함수를 호출하게 되면, 타겟 어플리케이션(134)이 의도한 실제 API 함수가 호출되는 것이 아니라, 검증 에이전트(131)에서 등록한 후킹 API 함수가 호출된다. 검증 에이전트(131)는 검증에 필요한 리소스 사용정보를 수집한 후 모바일 오픈 플랫폼(120)으로 본래의 API 함수를 호출해 줌으로써, 타겟 어플리케이션(134)에서 사용하는 메모리 할당, 파일 리소스, 디바이스 리소스, 타임 리소스의 사용량 등에 대한 리소스 사용정보를 수집할 수 있다. 해당 정보의 수집은 타겟 어플리케이션(134)의 라이프 사이클(Life Cycle) 동안에 사용되는 리소스가 해제되지 않는 한 유효하다.
도 3을 참조하면, 타겟 어플리케이션(134)의 동작 중에 API 함수의 호출이 요청(S210)되면 검증 에이전트(131)가 기 등록한 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출(S220)하여 후킹 API 함수와 관련된 리소스 사용정보를 수집하여 저장하고, 사용자에게 모니터링한다(S230). 정보 수집이 끝난 후 검증 에이전트(131)는 모바일 오픈 플랫폼(120)으로 본래의 API 함수를 호출하여 타겟 어플리케이션(134)에 리소스를 할당할 수 있도록 한다(S240).
해당 API 함수의 실행 후 모바일 오픈 플랫폼(120)이 메모리 아이디의 반환을 요청(S250)하면 검증 에이전트(131)는 이를 후킹하여 해당 메모리 아이디와 관련된 리소스 해제정보를 수집한 후(S260), 타겟 어플리케이션(134)으로 메모리 아이디를 반환하여 기 할당된 리소스가 해제될 수 있도록 한다(S270).
도 4는 도 2에 나타난 S150의 검증 단계에서 시스템 콜백 호출 방법을 예시하고 있다.
사용자가 터치 패널이나 키패드 등의 입력부를 통해 하드웨어적으로 이벤트를 발생시킨 경우, 검증 에이전트(131)가 동작하지 않는다면 해당 이벤트의 처리를 위하여 모바일 오픈 플랫폼(120)이 적절한 시스템 콜백 함수를 호출하게 된다. 그러나, 일 실시예에서는, 타겟 어플리케이션(134)의 구동 시작 시 검증 에이전트(131)에서 타겟 어플리케이션(134)의 프로세스 정보를 변경하기 때문에, 이벤트 발생 시 검증 에이전트(131)에서 등록한 후킹 시스템 콜백 함수가 호출된다. 이때, 검증 에이전트(131)는 해당 이벤트에 대한 로그정보를 기록하고, 타겟 어플리케이션(134)에서 본래 등록한 시스템 콜백 함수(이벤트 핸들러)를 호출하게 된다.
도 4를 참조하면, 타겟 어플리케이션(134)의 동작 중에 이벤트가 발생(S310)하여 모바일 오픈 플랫폼(120)으로부터 시스템 콜백 함수의 호출이 요청(S320)되면, 검증 에이전트(131)는 기 등록한 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출(S330)한 후 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집하여 기록하고, 사용자에게 모니터링한다(S340). 로그 기록이 끝나면 검증 에이전트(131)가 타겟 어플리케이션(134)으로 본래의 시스템 콜백 함수를 호출하여 이벤트가 처리될 수 있도록 한다(S350).
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
일 실시예에 따른 컴퓨터가 읽을 수 있는 기록매체는 모바일 오픈 플랫폼(120)으로 타겟 어플리케이션(134)의 실행을 요청하여 모바일 오픈 플랫폼(120)이 관리하는 타겟 어플리케이션(134)의 프로세스 정보를 획득하기 위한 명령, 해당 프로세스 정보에 의거하여 후킹 프로세스 정보를 등록하기 위한 명령, 타겟 어플리케이션(134)의 동작 중에, 후킹 프로세스 정보에 의거하여 타겟 어플리케이션(134)과 모바일 오픈 플랫폼(120) 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 타겟 어플리케이션(134)의 정상 동작 여부를 검증하기 위한 명령을 포함한다.
도 5는 본 발명의 일 실시예에서, 모바일 어플리케이션이 사용하는 프로세스 정보를 예시한 테이블이다.
어플리케이션들(Application A, Application B, Application C)이 구동되는 경우, 모바일 오픈 플랫폼(120)은 도 5와 같이 해당 어플리케이션들의 프로세스 정보 구조체를 생성한다. 이때, 생성되는 프로세스 정보에는 API 테이블 주소(T110), 시스템 콜백 등록주소(T120, T130), 바이너리 영역정보(T140)가 포함된다.
모바일 오픈 플랫폼(120)에서는 다음과 같이 API 테이블의 자료형이 정의된다.
"typedef struct {
TKnlApiLinkTable *pKnlApiLinkTable;
// 커널 API 함수 set
TGrpApiLinkTable *pGrpApiLinkTable;
// 그래픽 API 함수 set
……
} TApiLinkTable;"
이때, 어플리케이션에서 사용하는 API 테이블 주소(T110)는 모바일 오픈 플랫폼(120)에 전역으로 정의되어 있는 변수의 주소 값이다.
"TApiLinkTable* g_ppApiLinkTable = (TApiLinkTable*) & g_ApiLinkTable_TopLevel"
단말에 어플리케이션을 빌드(Build)할 경우 설치되는 어플리케이션의 바이너리 영역정보(T140)가 지정하는 바이너리의 일정 영역에 API 테이블 주소의 전역변수가 생성된다.
모바일 오픈 플랫폼(120)에서 어플리케이션의 프로세스 정보 구조체가 생성된 후, 검증 에이전트(131)가 구현하는 API 테이블 및 시스템 콜백의 후킹 방법을 예시하면 다음과 같다.
검증 에이전트(131)는 모바일 오픈 플랫폼(120)에서 어플리케이션의 핸들을 획득할 때, 프로세스 정보와 일치하는 일치하는 구조체를 다음과 같이 선언한다.
"/* platform TPress 정보 */
typedef struct tag_AGENTTPROCESS{
char* apitableaddr;
int systemA;
int systemB;
}* PAGENTTPROCESS;"
또한, 검증 에이전트(131)는 모바일 오픈 플랫폼(120)에서 사용하는 API 테이블의 주소를 복사하기 위하여, 다음과 같이 모바일 오픈 플랫폼(120)에서 사용하는 API 테이블 데이터형 변수를 선언한다.
"TApiLinkTable g_HookApiLinkTable_TopLevel={
(TKnlApiLinkTable*)&g_HookKnlApiLinkTable_GrLevel ,
// 커널 API 함수 set 더미 구조체 변수
(TGrpApiLinkTable*)&g_HookGrpApiLinkTable_GrLevel ,
// 그래픽 API 함수 set 더미 구조체 변수
};"
또한, 검증 에이전트(131)는 다음과 같이 모바일 오픈 플랫폼(120)에서 획득한 어플리케이션의 핸들을 "tag_AGENTTPROCESS" 변수에 "TYPECAST" 한다.
"PAGENTTPROCESS pProc = (PAGENTTPROCESS)appHandleId;"
그리고, 검증 에이전트(131)는 모바일 오픈 플랫폼(120)에서 제공하는 API 테이블 주소를 "g_HookApiLinkTable_TopLevel" 변수에 복사한다.
"memcpy(&g_HookApiLinkTable_TopLevel, pProc->apitableaddr, sizeof(TApiLinkTable));"
이와 같이 복사를 수행하게 되면 "g_HookApiLinkTable_TopLevel" 안에 모바일 오픈 플랫폼(120)의 API 함수가 저장한다. 모바일 오픈 플랫폼(120)에는 많은 API 함수들이 존재하나 검증 에이전트(131)는 검증에 필요한 API 함수들만 후킹하므로, 다음과 같이 필요로 하는 API 함수들만 수정한다.
"g_HookApiLinkTable_TopLevel. pfnMC_knlAlloc = &HOOK_MC_knlAlloc;"
예컨대, "HOOK_MC_knlAlloc" 함수는 검증 에이전트(131)에서 정의한 후킹 API 함수이다.
이와 같이 후킹할 API 함수들이 배치(Assign) 된 경우, 다음과 같이 "g_HookApiLinkTable_TopLevel"을 프로세스 정보의 API 테이블 주소에 대입하여 후킹 API 테이블 주소를 등록하면 API 후킹이 완료된다.
"*(pProc->apitableaddr) = &g_HookApiLinkTable_TopLevel;"
한편, 시스템 콜백 후킹 방법은 다음과 같이 프로세스 정보의 시스템 콜백 등록주소에 검증 에이전트(131)가 정의하는 후킹 시스템 콜백 등록주소를 대입하면 완료된다.
"pProc-> systemA = (M_Uint32)Hook systemA;
pProc-> systemB = (M_Uint32)Hook systemB;"
단말에서 타겟 어플리케이션(134)이 실행된 후 프로세스의 라이프 사이클(Life Cycle)에 의해 검증 에이전트(131)가 동작하는데, 검증 에이전트(131)가 동작하는 동안에 타겟 어플리케이션(134)에서 사용하는 리소스에 대한 사항들을 수집함으로써 타겟 어플리케이션(134)에서 정상적으로 리소스를 해제하지 못함에 따라 발생되는 어플리케이션 오류를 미연에 방지할 수 있다.
또한, 이벤트 로그정보의 기록을 통해 어플리케이션 오류에 대한 정보를 개발자에게 알려줄 수 있으며, 오류 사항을 정확하게 재현함으로써 오류 동작에 대한 재현율이 높아져 개발자가 오류를 수정하고 양질의 컨텐츠를 만드는데 기여할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
따라서, 이상에서 기술한 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이므로, 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 하며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명에 따른 모바일 어플리케이션 검증 방법 및 이를 적용한 단말은 모바일 어플리케이션을 쉽게 디버깅할 수 있게 됨에 따라, 개인 유저들이 개발자로서 모바일 어플리케이션을 개발하는 과정에서 오류의 정확한 원인을 분석하고, 발생 가능한 문제들을 쉽게 해결하여 어플리케이션 개발에 소요되는 비용, 노력 및 시간을 줄일 수 있게 된다. 그리고, 모바일 어플리케이션을 개방된 어플리케이션 마켓에 업로드하여 보급(Release)하기 전에 객관화된 기준에 의해 쉽게 검증할 수 있게 됨에 따라, 양질의 모바일 어플리케이션들을 저비용으로 단시간 내에 생성할 수 있는 제반 환경을 구축하게 된다.
110: 단말 운영체제
120: 모바일 오픈 플랫폼
130: 어플리케이션 계층
131: 검증 에이전트
132: API 동작 검증부
133: 시스템 콜백 검증부
134: 타겟 어플리케이션

Claims (8)

  1. 어플리케이션 계층과, 상기 어플리케이션 계층의 실행 환경을 제공하는 모바일 오픈 플랫폼이 탑재되어 있는 단말의 어플리케이션 검증 방법에 있어서,
    타겟 어플리케이션의 실행이 요청됨에 따라, 상기 단말이 상기 타겟 어플리케이션의 프로세스 정보를 획득하는 단계;
    상기 단말이 상기 프로세스 정보에 의거하여 후킹 프로세스 정보를 등록하는 단계; 및
    상기 타겟 어플리케이션의 동작 중에, 상기 단말이 상기 후킹 프로세스 정보에 의거하여 상기 타겟 어플리케이션이 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하는 단계를 포함하는 모바일 어플리케이션 검증 방법.
  2. 제1항에 있어서, 상기 검증 단계는,
    상기 타겟 어플리케이션의 동작 중에 API 함수의 호출이 요청되면 상기 단말이 상기 후킹 프로세스 정보에 포함된 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출하는 단계;
    상기 단말이 상기 후킹 API 함수와 관련된 리소스 사용정보를 수집하는 단계; 및
    상기 단말이 상기 API 함수를 호출하여 리소스를 할당하는 단계를 포함하는 모바일 어플리케이션 검증 방법.
  3. 제2항에 있어서,
    상기 API 함수의 실행 후 메모리 아이디의 반환이 요청되면 상기 단말이 상기 메모리 아이디와 관련된 리소스 해제정보를 수집하는 단계; 및
    상기 단말이 상기 메모리 아이디를 반환하여 리소스를 해제하는 단계를 더 포함하는 모바일 어플리케이션 검증 방법.
  4. 제1항에 있어서, 상기 검증 단계는,
    상기 타겟 어플리케이션의 동작 중에 이벤트 발생에 의해 시스템 콜백 함수의 호출이 요청되면 상기 단말이 상기 후킹 프로세스 정보에 포함된 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하는 단계;
    상기 단말이 상기 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집하는 단계; 및
    상기 단말이 상기 시스템 콜백 함수를 호출하는 단계를 포함하는 모바일 어플리케이션 검증 방법.
  5. 모바일 오픈 플랫폼으로 타겟 어플리케이션의 실행을 요청하여 상기 모바일 오픈 플랫폼이 관리하는 상기 타겟 어플리케이션의 프로세스 정보를 획득하기 위한 명령;
    상기 프로세스 정보에 의거하여 후킹 프로세스 정보를 등록하기 위한 명령; 및
    상기 타겟 어플리케이션의 동작 중에, 상기 후킹 프로세스 정보에 의거하여 상기 타겟 어플리케이션과 상기 모바일 오픈 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하기 위한 명령을 포함하는, 컴퓨터가 읽을 수 있는 기록매체.
  6. 어플리케이션 계층과, 상기 어플리케이션 계층의 실행 환경을 제공하는 모바일 오픈 플랫폼이 탑재되어 있는 단말에 있어서,
    상기 어플리케이션 계층은,
    상기 모바일 오픈 플랫폼을 기반으로 개발된 타겟 어플리케이션; 및
    상기 타겟 어플리케이션의 동작 중에, 상기 타겟 어플리케이션과 상기 모바일 오픈 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하는 검증 에이전트를 포함하는 단말.
  7. 제6항에 있어서, 상기 검증 에이전트는,
    상기 타겟 어플리케이션의 구동 시 후킹 API 테이블 주소를 등록한 후, 상기 타겟 어플리케이션의 동작 중에 상기 타겟 어플리케이션으로부터 API 함수의 호출이 요청되면 상기 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출하고, 상기 후킹 API 함수와 관련된 리소스 사용정보를 수집하여 모니터링한 후 상기 모바일 오픈 플랫폼으로 상기 API 함수를 호출하여 리소스를 할당하도록 하는 API 동작 검증부를 포함하는 단말.
  8. 제6항에 있어서, 상기 검증 에이전트는,
    상기 타겟 어플리케이션의 구동 시 후킹 시스템 콜백 등록주소를 저장한 후, 상기 타겟 어플리케이션의 동작 중에 이벤트 발생에 의해 상기 모바일 오픈 플랫폼으로부터 시스템 콜백 함수의 호출이 요청되면 상기 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하고, 상기 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집하여 모니터링한 후 상기 타겟 어플리케이션으로 상기 시스템 콜백 함수를 호출하는 시스템 콜백 검증부를 포함하는 단말.
KR1020110003244A 2011-01-12 2011-01-12 모바일 어플리케이션 검증 방법 및 이를 적용한 단말 KR101763804B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110003244A KR101763804B1 (ko) 2011-01-12 2011-01-12 모바일 어플리케이션 검증 방법 및 이를 적용한 단말

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110003244A KR101763804B1 (ko) 2011-01-12 2011-01-12 모바일 어플리케이션 검증 방법 및 이를 적용한 단말

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160126836A Division KR101781527B1 (ko) 2016-09-30 2016-09-30 모바일 어플리케이션 검증 방법 및 이를 적용한 단말

Publications (2)

Publication Number Publication Date
KR20120081873A true KR20120081873A (ko) 2012-07-20
KR101763804B1 KR101763804B1 (ko) 2017-08-14

Family

ID=46713871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110003244A KR101763804B1 (ko) 2011-01-12 2011-01-12 모바일 어플리케이션 검증 방법 및 이를 적용한 단말

Country Status (1)

Country Link
KR (1) KR101763804B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101386991B1 (ko) * 2012-07-31 2014-04-21 인크로스 주식회사 웹 플랫폼 기반 콘텐츠의 자동 검증 시스템 및 그를 이용한 자동 검증 방법
WO2014137014A1 (ko) * 2013-03-08 2014-09-12 (주)인프라웨어테크놀러지 단말 자동실행 제어를 이용한 스마트 어플의 자동검증 방법
KR101523266B1 (ko) * 2013-04-08 2015-05-28 주식회사 오비고 메타 스토어의 관리 방법, 서버 및 컴퓨터 판독 가능한 기록 매체
KR101637201B1 (ko) * 2016-01-06 2016-07-07 (주) 다봄소프트 함수 후킹을 이용한 리눅스 또는 유닉스 시스템용 c언어 기반 어플리케이션 성능 관리 모듈
KR101700413B1 (ko) * 2015-09-24 2017-02-13 주식회사 오앤파트너스 프로그램의 무결성 검사방법 및 그 시스템
KR20210021514A (ko) * 2015-10-26 2021-02-26 에스케이텔레콤 주식회사 모바일 애플리케이션 운영 방법
CN112764729A (zh) * 2021-01-08 2021-05-07 深圳依时货拉拉科技有限公司 应用软件开发方法、装置、计算机设备及可读存储介质
CN114153454A (zh) * 2021-11-09 2022-03-08 多点生活(成都)科技有限公司 一种第三方开发者维护的主动回调方案
CN114153454B (zh) * 2021-11-09 2024-05-14 多点生活(成都)科技有限公司 一种第三方开发者维护的主动回调方案

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101989593B1 (ko) * 2018-02-22 2019-06-14 한국항공대학교산학협력단 식별정보 전달 장치 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031248A (ja) * 2004-07-14 2006-02-02 Canon Inc 関数呼び出しをフックしてログを生成するソフトウェア評価システム
US20070220492A1 (en) * 2006-03-16 2007-09-20 Microsoft Corporation Application verifier infrastructure and checks

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101386991B1 (ko) * 2012-07-31 2014-04-21 인크로스 주식회사 웹 플랫폼 기반 콘텐츠의 자동 검증 시스템 및 그를 이용한 자동 검증 방법
WO2014137014A1 (ko) * 2013-03-08 2014-09-12 (주)인프라웨어테크놀러지 단말 자동실행 제어를 이용한 스마트 어플의 자동검증 방법
KR101523266B1 (ko) * 2013-04-08 2015-05-28 주식회사 오비고 메타 스토어의 관리 방법, 서버 및 컴퓨터 판독 가능한 기록 매체
KR101700413B1 (ko) * 2015-09-24 2017-02-13 주식회사 오앤파트너스 프로그램의 무결성 검사방법 및 그 시스템
KR20210021514A (ko) * 2015-10-26 2021-02-26 에스케이텔레콤 주식회사 모바일 애플리케이션 운영 방법
KR101637201B1 (ko) * 2016-01-06 2016-07-07 (주) 다봄소프트 함수 후킹을 이용한 리눅스 또는 유닉스 시스템용 c언어 기반 어플리케이션 성능 관리 모듈
CN112764729A (zh) * 2021-01-08 2021-05-07 深圳依时货拉拉科技有限公司 应用软件开发方法、装置、计算机设备及可读存储介质
CN112764729B (zh) * 2021-01-08 2024-02-06 深圳依时货拉拉科技有限公司 应用软件开发方法、装置、计算机设备及可读存储介质
CN114153454A (zh) * 2021-11-09 2022-03-08 多点生活(成都)科技有限公司 一种第三方开发者维护的主动回调方案
CN114153454B (zh) * 2021-11-09 2024-05-14 多点生活(成都)科技有限公司 一种第三方开发者维护的主动回调方案

Also Published As

Publication number Publication date
KR101763804B1 (ko) 2017-08-14

Similar Documents

Publication Publication Date Title
KR101763804B1 (ko) 모바일 어플리케이션 검증 방법 및 이를 적용한 단말
CN106598835B (zh) 一种应用的测试方法及装置、系统
CN111651366B (zh) Sdk测试方法、装置、设备及存储介质
US9087156B2 (en) Application version release management
US20130179865A1 (en) Automated error checking system for a software application and method therefor
CN106599709B (zh) 一种防隐私信息泄露的方法、装置及终端
CN105607994A (zh) 一种移动终端软件测试方法和系统
CN105426298A (zh) 一种基于adb的软件测试方法和系统
KR101684405B1 (ko) 휴대용 단말기에서 에러 발생을 분석하기 위한 장치 및 방법
JP2017201470A (ja) 設定支援プログラム、設定支援方法及び設定支援装置
US20220147431A1 (en) Distributed website load testing system running on mobile devices
CN109543417B (zh) 一种基于Qemu平台的漏洞挖掘方法和装置
KR101781527B1 (ko) 모바일 어플리케이션 검증 방법 및 이를 적용한 단말
KR101794016B1 (ko) 분산 컴퓨팅 기반의 어플리케이션 객체 분석 방법, 이를 수행하는 어플리케이션 객체 분석 서버 및 이를 저장하는 기록매체
CN111552610A (zh) 全链路监控方法和装置
CN106940647B (zh) 代码管理方法和装置
CN110569046A (zh) 数据处理方法、装置、设备和存储介质
CN112346994A (zh) 一种测试信息关联方法、装置、计算机设备及存储介质
KR101123685B1 (ko) 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템
CN110401554B (zh) Vnf纳管的方法、装置、系统、电子设备及存储介质
CN114741325B (zh) 一种应用系统测试用的测试脚本的录制方法以及装置
CN111444008B (zh) 集群间服务迁移方法及装置
CN117234949B (zh) 测试数据降噪方法、装置、存储介质、计算机设备
US11635982B2 (en) Information processing apparatus, program, and information processing system
US20190004935A1 (en) System and method for diagnosing a computing device

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant