KR101781527B1 - Method for verifying mobile application and terminal using the same - Google Patents
Method for verifying mobile application and terminal using the same Download PDFInfo
- Publication number
- KR101781527B1 KR101781527B1 KR1020160126836A KR20160126836A KR101781527B1 KR 101781527 B1 KR101781527 B1 KR 101781527B1 KR 1020160126836 A KR1020160126836 A KR 1020160126836A KR 20160126836 A KR20160126836 A KR 20160126836A KR 101781527 B1 KR101781527 B1 KR 101781527B1
- Authority
- KR
- South Korea
- Prior art keywords
- application
- open platform
- target application
- system callback
- hooking
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G06F8/665—
-
- G06F9/4448—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
Abstract
모바일 어플리케이션 검증 방법 및 이를 적용한 단말이 개시된다.
단말은 어플리케이션 계층과 모바일 오픈 플랫폼을 탑재하며, 어플리케이션 계층에는 모바일 오픈 플랫폼을 기반으로 제작된 타겟 어플리케이션과 해당 어플리케이션의 동작 중에, 어플리케이션과 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 어플리케이션의 정상 동작 여부를 검증하는 검증 에이전트가 포함된다. 타겟 어플리케이션의 구동 시작 시 단말의 검증 에이전트는 플랫폼으로 해당 어플리케이션의 핸들을 요청하여 프로세스 정보를 획득하고, 후킹 프로세스 정보를 등록한 후, 후킹 프로세스 정보를 이용해 어플리케이션의 동작 중에 어플리케이션이 플랫폼과 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 그 결과를 수집 및 모니터링한다.
이러한 구성에 따르면, 모바일 오픈 플랫폼을 기반으로 제작된 어플리케이션에 대하여 어플리케이션의 정상적 설치 및 동작 여부를 검증하고, 어플리케이션의 디버깅을 쉽게 하여 어플리케이션의 개발, 오류 파악, 수정에 편의성을 제공할 수 있다.A mobile application verification method and a terminal to which the method is applied are disclosed.
The terminal is equipped with an application layer and a mobile open platform. In the application layer, a target application created based on a mobile open platform and an API function group and a system callback function group exchanged between the application and the platform are hooked And a verification agent for verifying whether or not the normal operation of the apparatus is performed. At the start of the target application, the terminal's verification agent requests the handle of the application to obtain the process information, registers the hooking process information, and then uses the hooking process information to access API functions Group and system callback function groups are hooked up to collect and monitor the results.
According to this configuration, it is possible to verify whether the application is normally installed and operated for an application created based on the mobile open platform, and to easily debug the application, thereby providing convenience in development, error detection and correction of the application.
Description
본 발명은 모바일 어플리케이션 검증 방법 및 이를 적용한 단말에 관한 것으로, 더욱 상세하게는 위피(WIPI) 등의 모바일 오픈 플랫폼을 기반으로 제작된 어플리케이션에 대하여 어플리케이션의 정상적 설치 및 동작 여부를 검증하고, 어플리케이션의 디버깅을 쉽게 하여 어플리케이션의 개발, 오류 파악, 수정에 편의성을 제공하며, 그에 따라 어플리케이션 개발 기간을 단축할 수 있는 모바일 어플리케이션 검증 방법 및 이를 적용한 단말에 관한 것이다.The present invention relates to a method of verifying a mobile application and a terminal to which the method is applied. More particularly, the present invention relates to a method for verifying whether an application is normally installed and operated on an application built on a mobile open platform such as WIPI, To a mobile application verification method that can provide convenience in development, error identification, and correction of an application and shorten an application development period accordingly, and a terminal to which the method is applied.
최근 스마트폰 등의 단말이 폭넓게 보급되면서 제조사나 이동통신 사업자가 제공하는 어플리케이션 마켓(앱스토어 등)들이 많이 생겨나고 있다. 또한, 이러한 환경에서, 컨텐츠 개발자들이 어플리케이션을 상업적으로 제작하여 어플리케이션 마켓에 업로드하면, 개인 유저들이 단말에서 이를 다운로드하여 사용하는 방식으로 서비스 패턴이 변화하고 있다.Recently, as devices such as smart phones have become widespread, many application markets (app stores, etc.) provided by manufacturers and mobile communication providers are emerging. Also, in this environment, when a content developer commercially creates an application and uploads it to an application market, a service pattern is changed in a way that individual users download and use the application from the terminal.
한편, 종래에는, 제조사가 이동통신 사업자의 정책에 따라 어플리케이션을 제작하여 단말에 기본 탑재하거나 이동통신 사업자가 테스트 및 관리를 전담하는 형태로 어플리케이션이 제공되었으며, 이에 따라 일부 컨텐츠 개발자들만이 어플리케이션 제작에 참여할 수 있었다.Meanwhile, in the past, an application has been provided in a form in which a manufacturer manufactures an application according to the policy of a mobile communication provider and basically mounts the application in a terminal or a mobile communication company dedicated to testing and management. Accordingly, I was able to participate.
그러나, 위피(WIPI) 등의 모바일 오픈 플랫폼이 탑재된 단말이 상용화되면서 어플리케이션 제작 환경이 개방되고, 개인 유저들의 경우에도 어플리케이션을 쉽게 제작하여 앱스토어 등의 어플리케이션 마켓을 통해 판매할 수 있는 환경이 구축되면서 수많은 어플리케이션들이 제작되고 있다. 여기서, 모바일 오픈 플랫폼은 스마트폰 등의 단말 내에 탑재되어 어플리케이션을 수행할 수 있는 환경을 제공하는 플랫폼으로서, 운영체제(OS)와 함께 단말에 임베디드되는 형태로 개발된다. 어플리케이션은 단말에 내장된 고유 실행 환경인 모바일 오픈 플랫폼의 규격을 기반으로 개발되어야만 해당 단말 상에서 실행이 가능하다.However, as the terminal equipped with a mobile open platform such as WIPI is commercialized, the environment for creating an application is opened, and even for an individual user, an environment in which an application can be easily produced and sold through an application market such as an app store As a result, numerous applications are being produced. Here, the mobile open platform is a platform that is installed in a terminal such as a smart phone and provides an environment in which an application can be executed, and is developed in a form embedded with an operating system (OS) in a terminal. The application can be executed on the terminal only if it is developed based on the standard of the mobile open platform which is a unique execution environment built in the terminal.
어플리케이션 제작 환경이 개방됨에 따라, 이동통신 사업자는 대규모로 쏟아지는 수많은 어플리케이션들 중에서 양질의 어플리케이션을 제공하기 위하여, 어플리케이션 테스트 인력을 운영하고 있으나 고용된 인력에 의해 수동으로 하는 검증에는 오류 검출에 대한 한계가 있었다. 또한, 오류 검출 기준에 대한 객관화된 기준이 없고, 오류가 검출되는 경우에도 정확한 원인 분석이 이루어지지 않아서 대처 및 해결이 어렵다는 문제점이 있었다.As the application production environment is open, the mobile telecom operators are running the application test personnel to provide high quality applications among a large number of large-scale applications. However, there is a limit to the error detection in the manual test performed by the employed personnel there was. In addition, there is no objectified criterion for the error detection standard, and even when an error is detected, there is a problem in that it is difficult to cope with and solve the problem because accurate cause analysis is not performed.
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하기 위하여 제안된 것으로, 위피(WIPI) 등의 모바일 오픈 플랫폼을 기반으로 제작된 어플리케이션에 대하여 어플리케이션의 정상적 설치 및 동작 여부를 검증하고, 어플리케이션의 디버깅을 쉽게 하여 어플리케이션의 개발, 오류 파악, 수정에 편의성을 제공하며, 그에 따라 어플리케이션 개발 기간을 단축할 수 있는 모바일 어플리케이션 검증 방법 및 이를 적용한 단말을 제공함에 그 목적이 있다.The present invention has been proposed in order to solve the problems of the related art as described above, and it is an object of the present invention to verify whether an application is normally installed and operated for an application created based on a mobile open platform such as WIPI, The present invention has been made in view of the above problems, and it is an object of the present invention to provide a mobile application verification method capable of shortening an application development period by providing convenience for development, error grasping and correction of an application.
본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not to be construed as limiting the invention as defined by the appended art. It will be possible.
본 발명에 따른 모바일 어플리케이션 검증 방법은 어플리케이션 계층과, 상기 어플리케이션 계층의 실행 환경을 제공하는 모바일 오픈 플랫폼이 탑재되어 있는 단말의 어플리케이션 검증 방법에 있어서, 타겟 어플리케이션의 실행이 요청됨에 따라, 상기 단말이 상기 타겟 어플리케이션의 프로세스 정보를 획득하는 단계; 상기 단말이 상기 프로세스 정보에 의거하여 후킹 프로세스 정보를 등록하는 단계; 및 상기 타겟 어플리케이션의 동작 중에, 상기 단말이 상기 후킹 프로세스 정보에 의거하여 상기 타겟 어플리케이션이 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하는 단계를 포함한다.A method for verifying a mobile application according to the present invention is a method for verifying an application of a terminal equipped with an application layer and a mobile open platform for providing an execution environment of the application layer, Acquiring process information of a target application; The terminal registering hooking process information based on the process information; And checking whether the target application is operating normally by hooking up the API function group and the system callback function group that the terminal sends and receive to the target application based on the hooking process information during the operation of the target application.
바람직하게는, 상기 검증 단계는, 상기 타겟 어플리케이션의 동작 중에 API 함수의 호출이 요청되면 상기 단말이 상기 후킹 프로세스 정보에 포함된 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출하는 단계; 상기 단말이 상기 후킹 API 함수와 관련된 리소스 사용정보를 수집하는 단계; 및 상기 단말이 상기 API 함수를 호출하여 리소스를 할당하는 단계를 포함할 수 있다.Preferably, the verification step may include a step in which, when a call for an API function is requested during operation of the target application, the terminal first calls a hooking API function based on a hooking API table address included in the hooking process information; Collecting resource usage information related to the hooking API function by the terminal; And allocating a resource by calling the API function by the terminal.
바람직하게는, 상기 API 함수의 실행 후 메모리 아이디의 반환이 요청되면 상기 단말이 상기 메모리 아이디와 관련된 리소스 해제정보를 수집하는 단계; 및 상기 단말이 상기 메모리 아이디를 반환하여 리소스를 해제하는 단계를 더 포함할 수 있다.Preferably, when the return of the memory ID is requested after execution of the API function, the terminal collects resource release information related to the memory ID. And releasing resources by the terminal returning the memory ID.
바람직하게는, 상기 검증 단계는, 상기 타겟 어플리케이션의 동작 중에 이벤트 발생에 의해 시스템 콜백 함수의 호출이 요청되면 상기 단말이 상기 후킹 프로세스 정보에 포함된 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하는 단계; 상기 단말이 상기 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집하는 단계; 및 상기 단말이 상기 시스템 콜백 함수를 호출하는 단계를 포함할 수 있다.Preferably, in the verification step, when a call of a system callback function is requested by an event occurrence during operation of the target application, the terminal transmits a hooking system callback function based on a hooking system callback registration address included in the hooking process information Calling first; Collecting event log information related to the hooking system callback function by the terminal; And the terminal may call the system callback function.
본 발명에 따른 컴퓨터가 읽을 수 있는 기록매체는 모바일 오픈 플랫폼으로 타겟 어플리케이션의 실행을 요청하여 상기 모바일 오픈 플랫폼이 관리하는 상기 타겟 어플리케이션의 프로세스 정보를 획득하기 위한 명령; 상기 프로세스 정보에 의거하여 후킹 프로세스 정보를 등록하기 위한 명령; 및 상기 타겟 어플리케이션의 동작 중에, 상기 후킹 프로세스 정보에 의거하여 상기 타겟 어플리케이션과 상기 모바일 오픈 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하기 위한 명령을 포함한다.A computer-readable recording medium according to the present invention includes: instructions for requesting execution of a target application on a mobile open platform to obtain process information of the target application managed by the mobile open platform; Instructions for registering hooking process information based on the process information; And hooking an API function group and a system callback function group exchanged between the target application and the mobile open platform based on the hooking process information during operation of the target application to verify whether the target application is operating normally .
본 발명에 따른 단말은 어플리케이션 계층과, 상기 어플리케이션 계층의 실행 환경을 제공하는 모바일 오픈 플랫폼이 탑재되어 있는 단말에 있어서, 상기 어플리케이션 계층은, 상기 모바일 오픈 플랫폼을 기반으로 개발된 타겟 어플리케이션; 및 상기 타겟 어플리케이션의 동작 중에, 상기 타겟 어플리케이션과 상기 모바일 오픈 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하는 검증 에이전트를 포함한다.A terminal according to the present invention includes an application layer and a mobile open platform for providing an execution environment of the application layer, the application layer including: a target application developed based on the mobile open platform; And a verification agent that verifies whether the target application is operating normally by hooking API function groups and system callback function groups exchanged between the target application and the mobile open platform during operation of the target application.
바람직하게는, 상기 검증 에이전트는, 상기 타겟 어플리케이션의 구동 시 후킹 API 테이블 주소를 등록한 후, 상기 타겟 어플리케이션의 동작 중에 상기 타겟 어플리케이션으로부터 API 함수의 호출이 요청되면 상기 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출하고, 상기 후킹 API 함수와 관련된 리소스 사용정보를 수집하여 모니터링한 후 상기 모바일 오픈 플랫폼으로 상기 API 함수를 호출하여 리소스를 할당하도록 하는 API 동작 검증부를 포함할 수 있다.Preferably, the verification agent registers a hooking API table address when the target application is activated. When the target application calls the API function from the target application during the operation of the target application, the verification agent registers a hooking API Function, an API operation verifying unit for collecting and monitoring resource usage information related to the hooking API function, and then calling the API function to the mobile open platform to allocate resources.
바람직하게는, 상기 검증 에이전트는, 상기 타겟 어플리케이션의 구동 시 후킹 시스템 콜백 등록주소를 저장한 후, 상기 타겟 어플리케이션의 동작 중에 이벤트 발생에 의해 상기 모바일 오픈 플랫폼으로부터 시스템 콜백 함수의 호출이 요청되면 상기 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하고, 상기 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집하여 모니터링한 후 상기 타겟 어플리케이션으로 상기 시스템 콜백 함수를 호출하는 시스템 콜백 검증부를 포함할 수 있다.Preferably, the verification agent stores a hooking system callback registration address when the target application is operated, and when a call of the system callback function is requested from the mobile open platform by an event occurrence during the operation of the target application, And a system callback verification unit for calling the hooking system callback function on the basis of the system callback registration address, collecting and monitoring the event log information related to the hooking system callback function, and then calling the system callback function to the target application have.
본 발명에 따른 모바일 어플리케이션 검증 방법은 어플리케이션 계층과, 상기 어플리케이션 계층의 실행 환경을 제공하는 모바일 오픈 플랫폼이 탑재되어 있는 단말의 어플리케이션 검증 방법에 있어서, 상기 모바일 오픈 플랫폼을 기반으로 개발된 타겟 어플리케이션을 구동시키는 단계; 상기 타겟 어플리케이션으로부터 API 함수의 호출이 요청되면, 기 등록된 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출하여 후킹 API 함수와 관련된 리소스 사용정보를 수집 및 모니터링하는 단계; 및 상기 모니터링 후, 상기 모바일 오픈 플랫폼의 프로세스 정보에 포함된 API 테이블 주소에 의거하여 상기 호출 요청된 API 함수를 호출하여 상기 타겟 어플리케이션에 리소스가 할당되도록 하는 단계를 포함한다.
바람직하게는, 상기 API 함수의 실행 후 메모리 아이디의 반환이 요청되면, 상기 메모리 아이디와 관련된 리소스 해제정보를 수집하는 단계; 및 상기 메모리 아이디를 반환하여 상기 리소스를 해제하는 단계를 더 포함할 수 있다.
바람직하게는, 상기 타겟 어플리케이션으로부터 이벤트 발생에 의해 시스템 콜백 함수의 호출이 요청되면, 기 등록된 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하여 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집 및 모니터링하는 단계; 및 상기 모니터링 후, 상기 모바일 오픈 플랫폼의 프로세스 정보에 포함된 시스템 콜백 등록주소에 의거하여 상기 호출 요청된 시스템 콜백 함수를 호출하여, 상기 타겟 어플리케이션으로 상기 시스템 콜백 함수가 호출되고 상기 이벤트가 처리되도록 하는 단계를 더 포함할 수 있다.
본 발명의 어플리케이션 계층과, 상기 어플리케이션 계층의 실행 환경을 제공하는 모바일 오픈 플랫폼이 탑재되어 있는 단말의 어플리케이션 검증 방법은, 상기 모바일 오픈 플랫폼을 기반으로 개발된 타겟 어플리케이션을 구동시키는 단계; 상기 타겟 어플리케이션으로부터 이벤트 발생에 의해 시스템 콜백 함수의 호출이 요청되면, 기 등록된 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하여 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집 및 모니터링하는 단계; 및 상기 모니터링 후, 상기 모바일 오픈 플랫폼의 프로세스 정보에 포함된 시스템 콜백 등록주소에 의거하여 상기 호출 요청된 시스템 콜백 함수를 호출하여, 상기 타겟 어플리케이션으로 상기 시스템 콜백 함수가 호출되고 상기 이벤트가 처리되도록 하는 단계를 포함한다.
본 발명의 어플리케이션 계층과, 상기 어플리케이션 계층의 실행 환경을 제공하는 모바일 오픈 플랫폼이 탑재되어 있는 단말장치는, 상기 어플리케이션 계층은, 상기 모바일 오픈 플랫폼을 기반으로 개발된 타겟 어플리케이션; 및 상기 모바일 오픈 플랫폼과 연동하여 상기 타겟 어플리케이션을 구동시키고, 상기 타겟 어플리케이션과 상기 모바일 오픈 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하는 검증 에이전트를 포함한다.
바람직하게는, 상기 검증 에이전트는, 상기 타겟 어플리케이션으로부터 API 함수의 호출이 요청되면, 기 등록된 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출하여 후킹 API 함수와 관련된 리소스 사용정보를 수집 및 모니터링하고, 상기 모니터링 후, 상기 모바일 오픈 플랫폼의 프로세스 정보에 포함된 API 테이블 주소에 의거하여 상기 호출 요청된 API 함수를 호출하여, 상기 타겟 어플리케이션에 리소스가 할당되도록 할 수 있다.
바람직하게는, 상기 검증 에이전트는, 상기 타겟 어플리케이션으로부터 이벤트 발생에 의해 시스템 콜백 함수의 호출이 요청되면, 기 등록된 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하여 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집 및 모니터링하고, 상기 모니터링 후, 상기 모바일 오픈 플랫폼의 프로세스 정보에 포함된 시스템 콜백 등록주소에 의거하여 상기 호출 요청된 시스템 콜백 함수를 호출하여, 상기 타겟 어플리케이션으로 상기 시스템 콜백 함수가 호출되고 상기 이벤트가 처리되도록 할 수 있다.
바람직하게는, 상기 검증 에이전트는, 상기 API 함수의 실행 후 메모리 아이디의 반환이 요청되면, 상기 메모리 아이디와 관련된 리소스 해제정보를 수집한 후, 상기 메모리 아이디를 반환하여 상기 리소스를 해제할 수 있다.A method of verifying a mobile application according to the present invention is a method of verifying an application of a terminal equipped with an application layer and a mobile open platform for providing an execution environment of the application layer, ; If the calling of the API function is requested from the target application, collecting and monitoring resource usage information related to the hooking API function by first calling the hooking API function based on the pre-registered hooking API table address; And, after the monitoring, invoking the API function requested by the API based on the API table address included in the process information of the mobile open platform to allocate the resource to the target application.
Preferably, when the return of the memory ID is requested after execution of the API function, collecting resource release information related to the memory ID is performed. And releasing the resource by returning the memory ID.
Preferably, when a call to the system callback function is requested by an event occurrence from the target application, the hooking system callback function is firstly called based on the registered hooking system callback registration address to obtain event log information related to the hooking system callback function Collecting and monitoring; And after the monitoring, calling the system callback function requested based on the system callback registration address included in the process information of the mobile open platform so that the system callback function is called to the target application and the event is processed Step < / RTI >
A method of verifying an application of a terminal equipped with an application layer of the present invention and a mobile open platform providing an execution environment of the application layer includes the steps of: driving a target application developed based on the mobile open platform; If a call to the system callback function is requested by the target application, the hooking system callback function is first called based on the pre-registered hooking system callback registration address to collect and monitor event log information related to the hooking system callback function step; And after the monitoring, calling the system callback function requested based on the system callback registration address included in the process information of the mobile open platform so that the system callback function is called to the target application and the event is processed .
A terminal device equipped with an application layer of the present invention and a mobile open platform providing an execution environment of the application layer includes a target application developed based on the mobile open platform; And a verification agent for activating the target application in cooperation with the mobile open platform, and for hooking up a group of API functions and a system callback function group exchanged between the target application and the mobile open platform to verify whether the target application operates normally .
Preferably, when the calling of the API function is requested from the target application, the verification agent first calls the hooking API function based on the address of the pre-registered hooking API table to collect and monitor resource usage information related to the hooking API function After the monitoring, the API function requested by the call may be called based on the API table address included in the process information of the mobile open platform to allocate the resource to the target application.
Preferably, when the system callback function call is requested by the target application from the target application, the verification agent first calls the hooking system callback function based on the registered hooking system callback registration address, The system callback function is called and the system callback function is called based on the system callback registration address included in the process information of the mobile open platform, May be invoked and cause the event to be processed.
The verification agent may collect resource release information related to the memory ID and release the resource after returning the memory ID if the memory ID is requested to be returned after execution of the API function.
본 발명의 모바일 어플리케이션 검증 방법 및 이를 적용한 단말에 따르면, 위피(WIPI) 등의 모바일 오픈 플랫폼을 기반으로 제작된 어플리케이션에 대하여 어플리케이션의 정상적 설치 및 동작 여부를 쉽게 검증할 수 있다.According to the mobile application verification method of the present invention and the terminal to which the present invention is applied, it is possible to easily verify whether the application is normally installed and operated for an application created based on a mobile open platform such as WIPI.
또한, 개발 과정에서 어플리케이션의 디버깅을 쉽게 하여 어플리케이션의 개발, 오류 파악, 수정에 편의성을 제공하며, 그에 따라 어플리케이션 개발 기간을 단축할 수 있다.In addition, it is possible to easily debug an application in the development process, thereby providing convenience in development, error detection and correction of the application, thereby shortening the application development period.
또한, API(Application Platform Interface) 후킹(Hooking)을 통해 단말에서 실행된 어플리케이션에서 사용하는 메모리 할당량, 파일 핸들(FILE Handle) 개수, 타이머(Timer) 개수 등의 리소스에 대한 사항을 정확히 수집함으로써 어플리케이션 종료 시 리소스 해제를 하지 않음으로써 발생하는 비정상 동작을 방지할 수 있다.In addition, by accurately collecting resources such as a memory allocation amount, a number of file handles, and a number of timers used in an application executed in a terminal through API (Application Platform Interface) hooking, It is possible to prevent an abnormal operation that occurs due to not releasing resources at the time.
또한, 어플리케이션에서 등록하는 시스템 콜백(CallBack) 함수를 후킹(Hooking)함으로써 어플리케이션의 이벤트 동작에 대한 로그를 기록할 수 있다.In addition, a log of an event operation of an application can be recorded by hooking a system callback function registered in an application.
도 1은 본 발명의 일 실시예에 따른 단말의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 모바일 어플리케이션 검증 방법의 흐름도이다.
도 3 및 도 4는 도 2의 일부 단계를 예시한 세부 흐름도이다.
도 5는 본 발명의 일 실시예에서, 모바일 어플리케이션이 사용하는 프로세스 정보를 예시한 테이블이다.1 is a configuration diagram of a terminal according to an embodiment of the present invention.
2 is a flowchart of a mobile application verification method according to an embodiment of the present invention.
Figures 3 and 4 are detailed flow charts illustrating some steps of Figure 2.
5 is a table illustrating process information used by a mobile application in an embodiment of the present invention.
이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예에 따른 모바일 어플리케이션 검증 방법 및 이를 적용한 단말에 대해서 상세하게 설명한다.Hereinafter, a mobile application verification method according to a preferred embodiment of the present invention and a terminal using the same will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 단말의 구성도이다.1 is a configuration diagram of a terminal according to an embodiment of the present invention.
도 1을 참조하면, 일 실시예에 따른 단말은 단말 운영체제(110), 모바일 오픈 플랫폼(120)과 하나 이상의 어플리케이션이 탑재된 어플리케이션 계층(130)을 포함하여 구성된다.Referring to FIG. 1, a terminal according to an embodiment includes a
단말 운영체제(110)는 단말을 구동하기 위한 시스템 소프트웨어로서, 단말의 물리적인 구성을 이루는 입력부, 디스플레이부, 메모리부, 마이크로프로세서와 같은 하드웨어를 제어한다.The
모바일 오픈 플랫폼(120)은 단말의 하드웨어와 어플리케이션 계층(130) 사이에 위치하여, 어플리케이션 계층(130)에 위치한 다양한 어플리케이션들이 단말 상에서 실행될 수 있도록 하는 환경을 제공한다. 모바일 오픈 플랫폼(120)은 컨텐츠 개발자들에게 어플리케이션을 제작하기 위한 API(Application Platform Interface) 함수들을 제공하는 것으로, 위피(WIPI), 안드로이드(Android) 등이 이에 해당한다. 컨텐츠 개발자에 의해 제작되는 각 어플리케이션은 모바일 오픈 플랫폼(120)에서 제공하는 API 함수 그룹을 통해 원하는 기능을 수행한다. 단말의 실시형태에 따라, 특히 단말이 스마트폰 형태의 모바일 기기인 경우, 단말 운영체제(110) 및 모바일 오픈 플랫폼(120)은 하나의 계층으로 통합 구현될 수도 있다.The mobile
어플리케이션 계층(130)은 모바일 오픈 플랫폼(120)이 제공하는 환경 하에서 구현되는 다양한 어플리케이션들이 위치하는 공간이다. 어플리케이션 계층(130)에 탑재되는 각 어플리케이션은 모바일 오픈 플랫폼(120)이 제공하는 실행 환경 하에서 구현된다. 특히, 어플리케이션 계층(130)에는 컨텐츠 개발자가 모바일 오픈 플랫폼(120)을 기반으로 개발한 임의의 타겟 어플리케이션(134)과 타겟 어플리케이션(134)의 동작을 검증하기 위한 검증 에이전트(131)가 위치한다.The
검증 에이전트(131)는 타겟 어플리케이션(134)과 함께 구동되어 타겟 어플리케이션(134)의 설치, 동작 등이 정상적으로 이루어지는지, 오류는 없는지 등을 검증하는 역할을 한다. 컨텐츠 개발자는 타겟으로 하는 특정 종류의 모바일 오픈 플랫폼(120)에 기반하여 타겟 어플리케이션(134)을 제작하고, 보급(Release) 전에 검증 에이전트(131)를 이용해 타겟 어플리케이션(134)의 동작 검증 및 오류 수정 과정을 거친 후 검증이 완료된 타겟 어플리케이션(134)을 앱스토어 등의 어플리케이션 마켓에 업로드하여 판매할 수 있다.The
전술한 검증 에이전트(131)는 타겟 어플리케이션(134)과 모바일 오픈 플랫폼(120) 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹(Hooking)하여 타겟 어플리케이션(134)의 정상 동작 여부를 검증한다. 이를 위하여, 검증 에이전트(131)는 타겟 어플리케이션(134)의 구동 시작 시 후킹 API 테이블 주소 및 후킹 시스템 콜백 등록주소를 포함한 후킹 프로세스 정보를 등록한다.The
검증 에이전트(131)에는 API 동작 검증부(132) 및 시스템 콜백 검증부(133)가 포함될 수 있다. API 동작 검증부(132)는 타겟 어플리케이션(134)의 동작 중에 타겟 어플리케이션(134)으로부터 API 함수의 호출이 요청되면 기 등록된 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출하고, 후킹 API 함수와 관련된 리소스 사용정보(메모리 할당에 관한 정보 등)를 수집하여 모니터링한 후 모바일 오픈 플랫폼(120)으로 본래의 API 함수를 호출하여 타겟 어플리케이션(134)에 리소스를 할당하도록 한다. API 함수의 실행 후 모바일 오픈 플랫폼(120)이 리소스 해제를 위해 메모리 아이디의 반환을 요청하면 검증 에이전트(131)의 API 동작 검증부(132)가 해당 메모리 아이디와 관련된 리소스 해제정보를 수집한 후, 기 할당된 메모리 아이디를 타겟 어플리케이션(134)으로 반환하여 리소스를 해제하도록 한다.The
시스템 콜백 검증부(133)는 타겟 어플리케이션(134)의 동작 중에 이벤트 발생에 의해 모바일 오픈 플랫폼(120)으로부터 시스템 콜백 함수의 호출이 요청되면, 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하고, 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집하여 모니터링한 후 타겟 어플리케이션(134)으로 본래의 시스템 콜백 함수를 호출한다.The system
이러한 일 실시예에 따르면, 컨텐츠 개발자가 타겟 어플리케이션(134)에 전달되는 모든 이벤트를 알 수 있고, 타겟 어플리케이션(134)에서 사용하는 메모리 할당, 파일 리소스, 디바이스 리소스, 타이머 리소스 등에 관한 사항을 알 수 있다. 그러므로, 컨텐츠 개발자는 타겟 어플리케이션(134)의 문제를 쉽게 디버깅할 수 있으며, 그에 따라 문제점의 파악 및 수정, 개발 기간 단축 등에 있어 편의성을 제공할 수 있다.According to one embodiment of the present invention, a content developer can know all events transmitted to the
도 2는 본 발명의 일 실시예에 따른 모바일 어플리케이션 검증 방법의 흐름도로서, 도 1과 같이 어플리케이션 계층(130)과, 어플리케이션 계층(130)의 실행 환경을 제공하는 모바일 오픈 플랫폼(120)이 탑재되어 있는 단말의 어플리케이션 검증 방법을 예시하고 있다.FIG. 2 is a flowchart of a mobile application verification method according to an embodiment of the present invention. As shown in FIG. 1, an
단말에 설치된 검증 에이전트(131)는 정상 설치 및 동작 여부를 검증하여야 하는 타겟 어플리케이션(134)을 제어하고, 그 결과를 수집하는 기능을 담당하며, 검증 대상이 되는 타겟 어플리케이션(134)을 검증하기 위하여 시스템 콜백(CallBack) 함수 그룹 및 API(Application Platform Interface) 함수 그룹의 후킹(Hooking)을 구현한다.The
검증 에이전트(131)는 검증할 타겟 어플리케이션(134)의 실행을 요청(S110)하여 이를 수신한 모바일 오픈 플랫폼(120)이 타겟 어플리케이션(134)을 구동시키면(S120), 모바일 오픈 플랫폼(120)으로 타겟 어플리케이션(134)의 핸들(Handle)을 요청하여 이를 획득한다(S130). 여기서, 핸들은 모바일 오픈 플랫폼(120)에서 관리하는 프로세스 정보에 대한 것이며, 프로세스 정보는 타겟 어플리케이션(134)의 시스템 콜백 등록주소 및 모바일 오픈 플랫폼(120)의 API 테이블 주소를 포함한다.The
검증 에이전트(131)는 S130을 통해 획득한 프로세스 정보에 의거하여 후킹 프로세스 정보, 즉 후킹 API 테이블 주소 및 시스템 콜백 등록주소를 등록한다(S140).The
이후, 검증 에이전트(131)는 타겟 어플리케이션(134)의 동작 중에, 타겟 어플리케이션(134)의 실행과 함께 검증 에이전트(131)가 등록한 후킹 프로세스 정보에 의거하여 타겟 어플리케이션(134)과 모바일 오픈 플랫폼(120) 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 타겟 어플리케이션(134)의 정상 동작 여부를 검증한다(S150). 이때, 타겟 어플리케이션(134)의 동작 중에 타겟 어플리케이션(134)으로부터 API 함수가 호출되거나 모바일 오픈 플랫폼(120)에서 시스템 콜백 함수가 시스템적으로 호출될 경우, 모바일 오픈 플랫폼(120)의 프로세스 정보에 포함된 API 테이블 주소 및 시스템 콜백 등록주소가 호출되는 대신에 검증 에이전트(131)에서 등록한 후킹 API 테이블 주소 및 시스템 콜백 등록주소가 호출된다(S150).The
이와 같이, 모바일 어플리케이션의 검증 시, 어플리케이션의 프로세스 동작에 대한 오류를 쉽게 찾을 수 있는 API 후킹 기술과 시스템 콜백 후킹 기술을 적용할 수 있다.As described above, when the mobile application is verified, an API hooking technique and a system callback hooking technique that can easily find an error in the process operation of an application can be applied.
API 후킹을 통해 단말에서 실행된 모바일 어플리케이션이 사용하는 메모리 할당량, 파일 핸들 개수, 타이머 개수 등 리소스에 대한 사항을 정확히 수집함으로써 해당 어플리케이션의 종료 시 리소스 해제를 하지 않음으로써 발생하는 비정상 동작을 방지할 수 있다. 또한, 어플리케이션에서 등록하는 시스템 콜백 함수를 후킹함으로써 어플리케이션의 이벤트 동작에 대한 로그를 기록할 수 있다.Through API hooking, it collects precise information about resources such as memory allocation, file handle count, and timer count used by mobile application executed in terminal, thereby preventing abnormal operation caused by not releasing resources at the end of the application have. In addition, by hooking a system callback function registered in an application, a log of an event operation of the application can be recorded.
도 3 및 도 4는 도 2의 일부 단계를 예시한 세부 흐름도이다.Figures 3 and 4 are detailed flow charts illustrating some steps of Figure 2.
도 3은 도 2에 나타난 S150의 검증 단계에서 API 함수 호출 방법을 예시하고 있다.FIG. 3 illustrates an API function calling method in the verification step of S150 shown in FIG.
구동이 시작된 타겟 어플리케이션(134)이 동작할 때, 단말이 검증 에이전트(131)에서 후킹한 API 테이블을 통해 리소스에 관련된 API 함수를 호출하게 되면, 타겟 어플리케이션(134)이 의도한 실제 API 함수가 호출되는 것이 아니라, 검증 에이전트(131)에서 등록한 후킹 API 함수가 호출된다. 검증 에이전트(131)는 검증에 필요한 리소스 사용정보를 수집한 후 모바일 오픈 플랫폼(120)으로 본래의 API 함수를 호출해 줌으로써, 타겟 어플리케이션(134)에서 사용하는 메모리 할당, 파일 리소스, 디바이스 리소스, 타임 리소스의 사용량 등에 대한 리소스 사용정보를 수집할 수 있다. 해당 정보의 수집은 타겟 어플리케이션(134)의 라이프 사이클(Life Cycle) 동안에 사용되는 리소스가 해제되지 않는 한 유효하다.When the
도 3을 참조하면, 타겟 어플리케이션(134)의 동작 중에 API 함수의 호출이 요청(S210)되면 검증 에이전트(131)가 기 등록한 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출(S220)하여 후킹 API 함수와 관련된 리소스 사용정보를 수집하여 저장하고, 사용자에게 모니터링한다(S230). 정보 수집이 끝난 후 검증 에이전트(131)는 모바일 오픈 플랫폼(120)으로 본래의 API 함수를 호출하여 타겟 어플리케이션(134)에 리소스를 할당할 수 있도록 한다(S240).Referring to FIG. 3, when a call of the API function is requested (S210) during the operation of the
해당 API 함수의 실행 후 모바일 오픈 플랫폼(120)이 메모리 아이디의 반환을 요청(S250)하면 검증 에이전트(131)는 이를 후킹하여 해당 메모리 아이디와 관련된 리소스 해제정보를 수집한 후(S260), 타겟 어플리케이션(134)으로 메모리 아이디를 반환하여 기 할당된 리소스가 해제될 수 있도록 한다(S270).After the execution of the corresponding API function, the mobile
도 4는 도 2에 나타난 S150의 검증 단계에서 시스템 콜백 호출 방법을 예시하고 있다.FIG. 4 illustrates a system callback invocation method in the verification step of S150 shown in FIG.
사용자가 터치 패널이나 키패드 등의 입력부를 통해 하드웨어적으로 이벤트를 발생시킨 경우, 검증 에이전트(131)가 동작하지 않는다면 해당 이벤트의 처리를 위하여 모바일 오픈 플랫폼(120)이 적절한 시스템 콜백 함수를 호출하게 된다. 그러나, 일 실시예에서는, 타겟 어플리케이션(134)의 구동 시작 시 검증 에이전트(131)에서 타겟 어플리케이션(134)의 프로세스 정보를 변경하기 때문에, 이벤트 발생 시 검증 에이전트(131)에서 등록한 후킹 시스템 콜백 함수가 호출된다. 이때, 검증 에이전트(131)는 해당 이벤트에 대한 로그정보를 기록하고, 타겟 어플리케이션(134)에서 본래 등록한 시스템 콜백 함수(이벤트 핸들러)를 호출하게 된다.If the user generates an event in hardware through an input unit such as a touch panel or a keypad, if the
도 4를 참조하면, 타겟 어플리케이션(134)의 동작 중에 이벤트가 발생(S310)하여 모바일 오픈 플랫폼(120)으로부터 시스템 콜백 함수의 호출이 요청(S320)되면, 검증 에이전트(131)는 기 등록한 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출(S330)한 후 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집하여 기록하고, 사용자에게 모니터링한다(S340). 로그 기록이 끝나면 검증 에이전트(131)가 타겟 어플리케이션(134)으로 본래의 시스템 콜백 함수를 호출하여 이벤트가 처리될 수 있도록 한다(S350).4, when an event is generated during operation of the target application 134 (S310) and a call of the system callback function is requested (S320) from the mobile
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be embodied as a program and stored in a computer-readable recording medium (such as a CD-ROM, a RAM, a ROM, a floppy disk, a hard disk, or a magneto-optical disk). Such a process can be easily carried out by those skilled in the art and will not be described in detail.
일 실시예에 따른 컴퓨터가 읽을 수 있는 기록매체는 모바일 오픈 플랫폼(120)으로 타겟 어플리케이션(134)의 실행을 요청하여 모바일 오픈 플랫폼(120)이 관리하는 타겟 어플리케이션(134)의 프로세스 정보를 획득하기 위한 명령, 해당 프로세스 정보에 의거하여 후킹 프로세스 정보를 등록하기 위한 명령, 타겟 어플리케이션(134)의 동작 중에, 후킹 프로세스 정보에 의거하여 타겟 어플리케이션(134)과 모바일 오픈 플랫폼(120) 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 타겟 어플리케이션(134)의 정상 동작 여부를 검증하기 위한 명령을 포함한다.A computer readable recording medium according to an exemplary embodiment of the present invention requests the execution of a
도 5는 본 발명의 일 실시예에서, 모바일 어플리케이션이 사용하는 프로세스 정보를 예시한 테이블이다.5 is a table illustrating process information used by a mobile application in an embodiment of the present invention.
어플리케이션들(Application A, Application B, Application C)이 구동되는 경우, 모바일 오픈 플랫폼(120)은 도 5와 같이 해당 어플리케이션들의 프로세스 정보 구조체를 생성한다. 이때, 생성되는 프로세스 정보에는 API 테이블 주소(T110), 시스템 콜백 등록주소(T120, T130), 바이너리 영역정보(T140)가 포함된다.When the applications (application A, application B, and application C) are activated, the mobile
모바일 오픈 플랫폼(120)에서는 다음과 같이 API 테이블의 자료형이 정의된다.In the mobile
"typedef struct {"typedef struct {
TKnlApiLinkTable *pKnlApiLinkTable; TKnlApiLinkTable * pKnlApiLinkTable;
// 커널 API 함수 set // kernel API function set
TGrpApiLinkTable *pGrpApiLinkTable;TGrpApiLinkTable * pGrpApiLinkTable;
// 그래픽 API 함수 set // Graphics API function set
……... ...
} TApiLinkTable;"} TApiLinkTable; "
이때, 어플리케이션에서 사용하는 API 테이블 주소(T110)는 모바일 오픈 플랫폼(120)에 전역으로 정의되어 있는 변수의 주소 값이다.At this time, the API table address (T110) used in the application is an address value of a variable defined globally in the mobile open platform (120).
"TApiLinkTable* g_ppApiLinkTable = (TApiLinkTable*) & g_ApiLinkTable_TopLevel""TApiLinkTable * g_ppApiLinkTable = (TApiLinkTable *) & g_ApiLinkTable_TopLevel"
단말에 어플리케이션을 빌드(Build)할 경우 설치되는 어플리케이션의 바이너리 영역정보(T140)가 지정하는 바이너리의 일정 영역에 API 테이블 주소의 전역변수가 생성된다.When an application is to be built in the terminal, a global variable of the API table address is generated in a certain region of the binary specified by the binary region information T 140 of the installed application.
모바일 오픈 플랫폼(120)에서 어플리케이션의 프로세스 정보 구조체가 생성된 후, 검증 에이전트(131)가 구현하는 API 테이블 및 시스템 콜백의 후킹 방법을 예시하면 다음과 같다.An API table implemented by the
검증 에이전트(131)는 모바일 오픈 플랫폼(120)에서 어플리케이션의 핸들을 획득할 때, 프로세스 정보와 일치하는 일치하는 구조체를 다음과 같이 선언한다.When the
"/* platform TPress 정보 */"/ * platform TPress information * /
typedef struct tag_AGENTTPROCESS{typedef struct tag_AGENTTPROCESS {
char* apitableaddr;char * apitableaddr;
int systemA; int systemA;
int systemB; int systemB;
}* PAGENTTPROCESS;"} * PAGENTTPROCESS; "
또한, 검증 에이전트(131)는 모바일 오픈 플랫폼(120)에서 사용하는 API 테이블의 주소를 복사하기 위하여, 다음과 같이 모바일 오픈 플랫폼(120)에서 사용하는 API 테이블 데이터형 변수를 선언한다.In order to copy the address of the API table used in the mobile
"TApiLinkTable g_HookApiLinkTable_TopLevel={"TApiLinkTable g_HookApiLinkTable_TopLevel = {
(TKnlApiLinkTable*)&g_HookKnlApiLinkTable_GrLevel ,(TKnlApiLinkTable *) & g_HookKnlApiLinkTable_GrLevel,
// 커널 API 함수 set 더미 구조체 변수// kernel API function set dummy structure variable
(TGrpApiLinkTable*)&g_HookGrpApiLinkTable_GrLevel ,(TGrpApiLinkTable *) & g_HookGrpApiLinkTable_GrLevel,
// 그래픽 API 함수 set 더미 구조체 변수// Graphics API function set dummy structure variable
…...
};"}; "
또한, 검증 에이전트(131)는 다음과 같이 모바일 오픈 플랫폼(120)에서 획득한 어플리케이션의 핸들을 "tag_AGENTTPROCESS" 변수에 "TYPECAST" 한다.The
"PAGENTTPROCESS pProc = (PAGENTTPROCESS)appHandleId;""PAGENTTPROCESS pProc = (PAGENTTPROCESS) appHandleId;"
그리고, 검증 에이전트(131)는 모바일 오픈 플랫폼(120)에서 제공하는 API 테이블 주소를 "g_HookApiLinkTable_TopLevel" 변수에 복사한다.Then, the
"memcpy(&g_HookApiLinkTable_TopLevel, pProc->apitableaddr, sizeof(TApiLinkTable));""memcpy (& g_HookApiLinkTable_TopLevel, pProc-> apitableaddr, sizeof (TApiLinkTable));"
이와 같이 복사를 수행하게 되면 "g_HookApiLinkTable_TopLevel" 안에 모바일 오픈 플랫폼(120)의 API 함수가 저장한다. 모바일 오픈 플랫폼(120)에는 많은 API 함수들이 존재하나 검증 에이전트(131)는 검증에 필요한 API 함수들만 후킹하므로, 다음과 같이 필요로 하는 API 함수들만 수정한다.When copying is performed in this manner, the API function of the mobile
"g_HookApiLinkTable_TopLevel. pfnMC_knlAlloc = &HOOK_MC_knlAlloc;""g_HookApiLinkTable_TopLevel. pfnMC_knlAlloc = &HOOK_MC_knlAlloc;"
예컨대, "HOOK_MC_knlAlloc" 함수는 검증 에이전트(131)에서 정의한 후킹 API 함수이다.For example, the function "HOOK_MC_knlAlloc" is a hooking API function defined by the
이와 같이 후킹할 API 함수들이 배치(Assign) 된 경우, 다음과 같이 "g_HookApiLinkTable_TopLevel"을 프로세스 정보의 API 테이블 주소에 대입하여 후킹 API 테이블 주소를 등록하면 API 후킹이 완료된다.When API functions to be hooked are assigned as described above, API hooking is completed when "g_HookApiLinkTable_TopLevel" is substituted into the API table address of the process information and the hooking API table address is registered as follows.
"*(pProc->apitableaddr) = &g_HookApiLinkTable_TopLevel;""* (pProc-> apitableaddr) = &g_HookApiLinkTable_TopLevel;"
한편, 시스템 콜백 후킹 방법은 다음과 같이 프로세스 정보의 시스템 콜백 등록주소에 검증 에이전트(131)가 정의하는 후킹 시스템 콜백 등록주소를 대입하면 완료된다.On the other hand, the system callback hooking method is completed when the hooking system callback registration address defined by the
"pProc-> systemA = (M_Uint32)Hook systemA;"pProc-> systemA = (M_Uint32) Hook systemA;
pProc-> systemB = (M_Uint32)Hook systemB;"pProc-> systemB = (M_Uint32) Hook systemB;
단말에서 타겟 어플리케이션(134)이 실행된 후 프로세스의 라이프 사이클(Life Cycle)에 의해 검증 에이전트(131)가 동작하는데, 검증 에이전트(131)가 동작하는 동안에 타겟 어플리케이션(134)에서 사용하는 리소스에 대한 사항들을 수집함으로써 타겟 어플리케이션(134)에서 정상적으로 리소스를 해제하지 못함에 따라 발생되는 어플리케이션 오류를 미연에 방지할 수 있다.The
또한, 이벤트 로그정보의 기록을 통해 어플리케이션 오류에 대한 정보를 개발자에게 알려줄 수 있으며, 오류 사항을 정확하게 재현함으로써 오류 동작에 대한 재현율이 높아져 개발자가 오류를 수정하고 양질의 컨텐츠를 만드는데 기여할 수 있다.In addition, it is possible to inform the developer about the application error through the recording of the event log information, and by recreating the error precisely, the recall rate for the error operation is increased, thereby making it possible for the developer to correct errors and to make good quality contents.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand.
따라서, 이상에서 기술한 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이므로, 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 하며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Therefore, it should be understood that the above-described embodiments are provided so that those skilled in the art can fully understand the scope of the present invention. Therefore, it should be understood that the embodiments are to be considered in all respects as illustrative and not restrictive, The invention is only defined by the scope of the claims.
본 발명에 따른 모바일 어플리케이션 검증 방법 및 이를 적용한 단말은 모바일 어플리케이션을 쉽게 디버깅할 수 있게 됨에 따라, 개인 유저들이 개발자로서 모바일 어플리케이션을 개발하는 과정에서 오류의 정확한 원인을 분석하고, 발생 가능한 문제들을 쉽게 해결하여 어플리케이션 개발에 소요되는 비용, 노력 및 시간을 줄일 수 있게 된다. 그리고, 모바일 어플리케이션을 개방된 어플리케이션 마켓에 업로드하여 보급(Release)하기 전에 객관화된 기준에 의해 쉽게 검증할 수 있게 됨에 따라, 양질의 모바일 어플리케이션들을 저비용으로 단시간 내에 생성할 수 있는 제반 환경을 구축하게 된다.The mobile application verification method according to the present invention and the terminal using the same can easily debug the mobile application, so that the individual user can analyze the exact cause of the error in the process of developing the mobile application as a developer, Thereby reducing the cost, effort, and time required for application development. In addition, since the mobile application can be easily verified by objective criteria before uploading it to the open application market and releasing the mobile application, a high-quality mobile application can be created in a short time at a low cost .
110: 단말 운영체제
120: 모바일 오픈 플랫폼
130: 어플리케이션 계층
131: 검증 에이전트
132: API 동작 검증부
133: 시스템 콜백 검증부
134: 타겟 어플리케이션110: terminal operating system
120: Mobile Open Platform
130: Application layer
131: Verification Agent
132: API operation verification unit
133: system callback verification unit
134: Target Application
Claims (8)
상기 모바일 오픈 플랫폼을 기반으로 개발된 타겟 어플리케이션을 구동시키는 단계;
상기 타겟 어플리케이션으로부터 API 함수의 호출이 요청되면, 기 등록된 후킹 API 테이블 주소에 의거하여 후킹 API 함수를 먼저 호출하여 후킹 API 함수와 관련된 리소스 사용정보를 수집 및 모니터링하는 단계;
상기 모니터링 후, 상기 모바일 오픈 플랫폼의 프로세스 정보에 포함된 API 테이블 주소에 의거하여 상기 호출 요청된 API 함수를 호출하여 상기 타겟 어플리케이션에 리소스가 할당되도록 하는 단계;
상기 단말의 하드웨어로부터의 이벤트 발생에 따라 상기 모바일 오픈 플랫폼으로부터 상기 타겟 어플리케이션에 대한 시스템 콜백 함수의 호출이 요청되면, 상기 단말의 하드웨어로부터 발생되는 이벤트 별로 기 등록된 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하여 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집 및 모니터링하는 단계; 및
상기 모니터링 후, 상기 모바일 오픈 플랫폼의 프로세스 정보에 포함된 시스템 콜백 등록주소에 의거하여 상기 호출 요청된 시스템 콜백 함수를 호출하여, 상기 타겟 어플리케이션으로 상기 시스템 콜백 함수가 호출되고 상기 이벤트가 처리되도록 하는 단계를 포함하며,
상기 API 함수의 실행 후 메모리 아이디의 반환이 요청되면 상기 메모리 아이디와 관련된 리소스 해제정보를 수집하고, 상기 메모리 아이디를 반환하고 리소스를 해제하는 단계를 더 포함하는 어플리케이션 검증 방법.1. An application verification method for a terminal equipped with an application layer and a mobile open platform for providing an execution environment of the application layer,
Driving a target application developed based on the mobile open platform;
If the calling of the API function is requested from the target application, collecting and monitoring resource usage information related to the hooking API function by first calling the hooking API function based on the pre-registered hooking API table address;
After the monitoring, calling the API function requested to be called based on the API table address included in the process information of the mobile open platform to allocate resources to the target application;
When a call of a system callback function for the target application is requested from the mobile open platform according to an event from the hardware of the terminal, the hooking system callback registration address is registered for each event generated from the hardware of the terminal, Collecting and monitoring event log information related to a hooking system callback function by first calling a system callback function; And
After the monitoring, invoking the system callback function requested based on the system callback registration address included in the process information of the mobile open platform so that the system callback function is called to the target application and the event is processed / RTI >
Collecting resource release information related to the memory ID if the memory ID is requested to be returned after execution of the API function, and returning the memory ID and releasing the resource.
상기 모바일 오픈 플랫폼을 기반으로 개발된 타겟 어플리케이션을 구동시키는 단계;
상기 단말의 하드웨어로부터의 이벤트 발생에 따라 상기 모바일 오픈 플랫폼으로부터 상기 타겟 어플리케이션에 대한 시스템 콜백 함수의 호출이 요청되면, 상기 단말의 하드웨어로부터 발생되는 이벤트 별로 기 등록된 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하여 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집 및 모니터링하는 단계; 및
상기 모니터링 후, 상기 모바일 오픈 플랫폼의 프로세스 정보에 포함된 시스템 콜백 등록주소에 의거하여 상기 호출 요청된 시스템 콜백 함수를 호출하여, 상기 타겟 어플리케이션으로 상기 시스템 콜백 함수가 호출되고 상기 이벤트가 처리되도록 하는 단계를 포함하며,
API 함수의 실행 후 메모리 아이디의 반환이 요청되면 상기 메모리 아이디와 관련된 리소스 해제정보를 수집하고, 상기 메모리 아이디를 반환하고 리소스를 해제하는 단계를 더 포함하는 것을 특징으로 하는 어플리케이션 검증 방법. 1. An application verification method for a terminal equipped with an application layer and a mobile open platform for providing an execution environment of the application layer,
Driving a target application developed based on the mobile open platform;
When a call of a system callback function for the target application is requested from the mobile open platform according to an event from the hardware of the terminal, the hooking system callback registration address is registered for each event generated from the hardware of the terminal, Collecting and monitoring event log information related to a hooking system callback function by first calling a system callback function; And
After the monitoring, invoking the system callback function requested based on the system callback registration address included in the process information of the mobile open platform so that the system callback function is called to the target application and the event is processed / RTI >
Further comprising collecting resource release information related to the memory ID when the return of the memory ID is requested after execution of the API function, and returning the memory ID and releasing the resource.
상기 어플리케이션 계층은,
상기 모바일 오픈 플랫폼을 기반으로 개발된 타겟 어플리케이션; 및
상기 모바일 오픈 플랫폼과 연동하여 상기 타겟 어플리케이션을 구동시키고, 상기 타겟 어플리케이션과 상기 모바일 오픈 플랫폼 간에 주고 받는 API 함수 그룹 및 시스템 콜백 함수 그룹을 후킹하여 상기 타겟 어플리케이션의 정상 동작 여부를 검증하는 검증 에이전트를 포함하며,
상기 검증 에이전트는,
상기 단말의 하드웨어로부터의 이벤트 발생에 따라 상기 모바일 오픈 플랫폼으로부터 상기 타겟 어플리케이션에 대한 시스템 콜백 함수의 호출이 요청되면, 상기 단말의 하드웨어로부터 발생되는 이벤트 별로 기 등록된 후킹 시스템 콜백 등록주소에 의거하여 후킹 시스템 콜백 함수를 먼저 호출하여 후킹 시스템 콜백 함수와 관련된 이벤트 로그정보를 수집 및 모니터링하고, 상기 모니터링 후, 상기 모바일 오픈 플랫폼의 프로세스 정보에 포함된 시스템 콜백 등록주소에 의거하여 상기 호출 요청된 시스템 콜백 함수를 호출하여, 상기 타겟 어플리케이션으로 상기 시스템 콜백 함수가 호출되고 상기 이벤트가 처리되도록 하며,
상기 검증 에이전트는,
API 함수의 실행 후 메모리 아이디의 반환이 요청되면, 상기 메모리 아이디와 관련된 리소스 해제정보를 수집한 후, 상기 메모리 아이디를 반환하고 리소스를 해제하는 것을 특징으로 하는 단말장치.1. A terminal device equipped with an application layer and a mobile open platform for providing an execution environment of the application layer,
The application layer comprises:
A target application developed based on the mobile open platform; And
And a verification agent for activating the target application in cooperation with the mobile open platform and for verifying whether the target application is operating normally by hooking an API function group and a system callback function group exchanged between the target application and the mobile open platform In addition,
The verification agent comprising:
When a call of a system callback function for the target application is requested from the mobile open platform according to an event from the hardware of the terminal, the hooking system callback registration address is registered for each event generated from the hardware of the terminal, The system callback function is first called to collect and monitor the event log information related to the hooking system callback function, and after the monitoring, the system callback function registered in the system callback registration address included in the process information of the mobile open platform To invoke the system callback function in the target application to cause the event to be processed,
The verification agent comprising:
If the memory ID is requested to be returned after execution of the API function, collects resource release information related to the memory ID, returns the memory ID, and releases the resource.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160126836A KR101781527B1 (en) | 2016-09-30 | 2016-09-30 | Method for verifying mobile application and terminal using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160126836A KR101781527B1 (en) | 2016-09-30 | 2016-09-30 | Method for verifying mobile application and terminal using the same |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110003244A Division KR101763804B1 (en) | 2011-01-12 | 2011-01-12 | Method for verifying mobile application and terminal using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160118190A KR20160118190A (en) | 2016-10-11 |
KR101781527B1 true KR101781527B1 (en) | 2017-10-23 |
Family
ID=57161816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160126836A KR101781527B1 (en) | 2016-09-30 | 2016-09-30 | Method for verifying mobile application and terminal using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101781527B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446216A (en) * | 2018-02-05 | 2018-08-24 | 捷开通讯(深圳)有限公司 | The method, apparatus and storage device of trace flow track |
WO2023113828A1 (en) * | 2021-12-17 | 2023-06-22 | Visa International Service Association | Simulator application on mobile device for integration testing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006031248A (en) * | 2004-07-14 | 2006-02-02 | Canon Inc | Software evaluation system for generating log by hooking function call |
US20070220492A1 (en) * | 2006-03-16 | 2007-09-20 | Microsoft Corporation | Application verifier infrastructure and checks |
-
2016
- 2016-09-30 KR KR1020160126836A patent/KR101781527B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006031248A (en) * | 2004-07-14 | 2006-02-02 | Canon Inc | Software evaluation system for generating log by hooking function call |
US20070220492A1 (en) * | 2006-03-16 | 2007-09-20 | Microsoft Corporation | Application verifier infrastructure and checks |
Also Published As
Publication number | Publication date |
---|---|
KR20160118190A (en) | 2016-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101763804B1 (en) | Method for verifying mobile application and terminal using the same | |
CN108039964B (en) | Fault processing method, device and system based on network function virtualization | |
US20150095892A1 (en) | Systems and methods for evaluating a change pertaining to a service or machine | |
US11762763B2 (en) | Orchestration for automated performance testing | |
US7818625B2 (en) | Techniques for performing memory diagnostics | |
CN105607994A (en) | Mobile terminal software testing method and system | |
JP2017201470A (en) | Setting support program, setting support method, and setting support device | |
US20120159566A1 (en) | Access control framework | |
US20220147431A1 (en) | Distributed website load testing system running on mobile devices | |
CN109543417B (en) | Vulnerability mining method and device based on Qemu platform | |
KR101781527B1 (en) | Method for verifying mobile application and terminal using the same | |
CN110063042A (en) | A kind of response method and its terminal of database failure | |
WO2021164179A1 (en) | Data monitoring method and apparatus | |
CN111552610A (en) | Full link monitoring method and device | |
CN106484601B (en) | User data analysis method and system for client | |
CN111694734A (en) | Software interface checking method and device and computer equipment | |
KR20150030297A (en) | Verification apparatus, terminal device, system, method and computer-readable medium for verifying application | |
US20020170045A1 (en) | Method for programmatic representation and enforcement of resource controls | |
CN108647139B (en) | System test method, device, storage medium and electronic device | |
CN108628620B (en) | POS application development implementation method and device, computer equipment and storage medium | |
CN112286622A (en) | Virtual machine migration processing and strategy generating method, device, equipment and storage medium | |
CN110569046A (en) | Data processing method, device, equipment and storage medium | |
CN115580522A (en) | Method and device for monitoring running state of container cloud platform | |
CN111797016B (en) | Application program testing method, device, storage medium and device | |
WO2021096346A1 (en) | A computer-implemented system for management of container logs and its method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |