KR102133251B1 - 애플리케이션 프로그램 보호 방법 및 장치 - Google Patents

애플리케이션 프로그램 보호 방법 및 장치 Download PDF

Info

Publication number
KR102133251B1
KR102133251B1 KR1020130126695A KR20130126695A KR102133251B1 KR 102133251 B1 KR102133251 B1 KR 102133251B1 KR 1020130126695 A KR1020130126695 A KR 1020130126695A KR 20130126695 A KR20130126695 A KR 20130126695A KR 102133251 B1 KR102133251 B1 KR 102133251B1
Authority
KR
South Korea
Prior art keywords
application
authentication
authentication information
application module
data
Prior art date
Application number
KR1020130126695A
Other languages
English (en)
Other versions
KR20150047001A (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 KR1020130126695A priority Critical patent/KR102133251B1/ko
Priority to US14/521,932 priority patent/US9953157B2/en
Publication of KR20150047001A publication Critical patent/KR20150047001A/ko
Application granted granted Critical
Publication of KR102133251B1 publication Critical patent/KR102133251B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2123Dummy operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

본 발명에 따라, 애플리케이션 생성 장치는, 애플리케이션 모듈을 생성할 때 애플리케이션 모듈에 포함되는 인증 엘리먼트를 이용해 제1인증정보를 생성하고, 이를 애플리케이션 모듈에 삽입하여 함께 배포한다. 그리고 배포된 애플리케이션 모듈을 실행하는 사용자의 디지털 장치는 애플리케이션 모듈을 실행할 때, 애플리케이션 모듈에 포함된 인증 엘리먼트와, 제1인증정보를 확인하고, 상기 인증 엘리먼트에 대한 제2인증정보를 생성하고, 상기 제1 및 제2인증정보를 비교한 결과에 따라 애플리케이션 모듈을 실행 여부를 제어한다.

Description

애플리케이션 프로그램 보호 방법 및 장치{METHOD AND APPARATUS FOR PROTECTING APPLICATION PROGRAM}
본 발명은 애플리케이션에 포함된 데이터를 보호하는 방법 및 장치에 관한 것이다.
최근 전자장치(특히 모바일(mobile) 단말 장치)에서 제공하는 다양한 서비스 및 부가 기능들이 점차 확대되고 있다. 이러한 전자장치의 효용 가치를 높이고 사용자들의 다양한 욕구를 만족시키기 위해서 전자장치에서 실행 가능한 다양한 어플리케이션들이 개발되고 있다.
전자장치에는 해당 장치의 제조사에 의해 제작되어 해당 장치에 설치되는 기본 어플리케이션들과, 인터넷을 통하여 어플리케이션 판매 웹사이트로부터 다운로드 되는 추가 어플리케이션들 등이 저장되고 실행될 수 있다. 상기 추가 어플리케이션들은 일반 개발자들에 의해 개발되고, 상기 판매 웹사이트에 등록될 수 있다. 따라서, 누구든지 자신이 개발한 어플리케이션들을 상기 어플리케이션 판매 웹사이트를 통하여 자유롭게 상기 전자장치의 사용자에게 판매할 수 있다. 이에 따라 현재 전자장치에는 그 제품에 따라 수만에서 수십 만개의 어플리케이션들이 무료 또는 유료로 제공되고 있다.
한편, 어플리케이션들이 불법적으로 변경되어 사용 또는 배포되는 등의 문제가 발생될 수고 있다. 특히, 역 컴파일을 통해 애플리케이션 소스 코드에 포함된 정보를 불법적으로 변경하는 등의 문제가 발생될 수 있다. 이러한 문제점를 해결하기 위하여, 클래스, 함수, 변수명들을 분석하기 어렵게 만들지만 완벽하게 애플리케이션 소스 코드를 완벽하게 보호하지는 못하고 있다.
또한 다양한 보안 메커니즘을 적용하여, 어플리케이션의 불법적이 변경 및 배포를 방지하기 위한 방안을 연구하고 있지만, 역 컴파일을 통해 애플리케이션 소스 코드에 대한 불법적인 위조 또는 변조를 방지하는 데는 한계가 있다.
상기한 문제점을 해결하기 위해 본 발명은 애플리케이션을 보다 안전하게 보호할 수 있는 방법 및 장치를 제공한다.
본 발명의 다양한 실시예의 일 측면에 따른 디지털 장치에서 애플리케이션을 보호하는 방법은, 상기 애플리케이션의 애플리케이션 데이터를 포함하는 애플리케이션 모듈을 수신하는 과정과, 상기 애플리케이션 데이터는 제1 인증 정보를 포함하며, 상기 애플리케이션 모듈을 실행하기 위한 요청을 입력받는 과정과, 상기 애플리케이션 데이터로부터 상기 제1 인증 정보를 식별하는 과정과, 상기 제1 인증 정보는 상기 애플리케이션 모듈이 생성될 때, 상기 애플리케이션 데이터에 삽입되며, 상기 애플리케이션 모듈을 실행하기 위한 요청에 응답하여, 상기 애플리케이션 데이터에 포함된 인증 엘리먼트를 이용하여 상기 전자 장치에서 제2 인증정보를 생성하는 과정과, 상기 애플리케이션 데이터의 적어도 하나의 영역이 인증 엘리먼트로 설정되며, 상기 제1 인증정보가 상기 제2 인증정보와 동일한 경우, 상기 요청에 응답하여 상기 애플리케이션 모듈을 실행하는 과정을 포함하며, 상기 인증 엘리먼트는 상기 애플리케이션 모듈에 포함된 정보 중 판독 전용 데이터를 저장하는 영역을 포함한다.
본 발명의 다양한 실시예의 일 측면에 따른 애플리케이션을 보호하는 디지털 장치는, 통신부 및 적어도 하나의 제어부를 포함하며, 상기 제어부는, 외부 전자 장치로부터 상기 애플리케이션의 애플리케이션 데이터를 포함하는 애플리케이션 모듈을 수신하도록 상기 통신부를 제어하고, 상기 애플리케이션 데이터는 제1 인증정보를 포함하며, 상기 애플리케이션 데이터로부터 상기 제1 인증정보를 식별하고, 상기 애플리케이션 모듈을 실행하기 위한 요청에 응답하여, 상기 애플리케이션 데이터에 포함된 인증 에이전트를 이용하여 제2 인증 정보를 생성하고, 상기 애플리케이션 데이터의 적어도 하나의 영역이 인증 엘리먼트로 설정되며, 상기 제1 인증정보가 상기 제2 인증정보와 동일한 경우, 상기 요청에 응답하여 상기 애플리케이션 모듈을 실행하고, 상기 인증 엘리먼트는 상기 애플리케이션 모듈에 포함된 정보 중 판독 전용 데이터를 저장하는 영역을 포함한다.
삭제
본 발명의 다양한 실시예의 다른 측면에 따른 애플리케이션을 보호하는 방법은, 애플리케이션 데이터를 생성하는 과정과, 상기 애플리케이션 데이터에 포함된 영역들 중 적어도 하나의 데이터 영역에 대응하는 인증 엘리먼트를 설정하는 과정과, 상기 설정된 인증 엘리먼트를 이용하여 상기 적어도 하나의 데이터 영역에 대한 제1 인증정보를 생성하는 과정과, 상기 생성된 제1 인증정보는 애플리케이션 모듈이 생성될 때, 상기 애플리케이션 데이터에 삽입되며, 상기 생성된 제1 인증정보를 포함하는 상기 애플리케이션 데이터를 포함하는 상기 애플리케이션 모듈을 생성하는 과정과, 상기 애플리케이션 모듈의 실행을 위한 적어도 하나의 외부 장치로 상기 애플리케이션 모듈을 전송하는 과정을 포함하며, 상기 인증 엘리먼트는 애플리케이션 모듈이 상기 적어도 하나의 외부 전자 장치에 의해 실행되기 이전에 상기 애플리케이션 모듈이 실행되는 지를 결정하기 위해 상기 제1 인증 정보와 비교되는 제2 인증 정보를 생성하도록 이용되며, 상기 인증 요소는 상기 애플리케이션 모듈에 포함된 정보 중 판독 전용 데이터를 저장하는 영역을 포함한다.
본 발명의 다양한 실시예의 다른 측면에 따른 애플리케이션 생성 장치는 통신부 및 적어도 하나의 제어부를 포함하며, 상기 적어도 하나의 제어부는, 애플리케이션의 애플리케이션 데이터를 생성하고, 상기 애플리케이션 데이터에 포함된 영역들 중 적어도 하나의 데이터 영역에 대응하는 인증 엘리먼트를 설정하고, 상기 설정된 인증 엘리먼트를 이용하여 상기 적어도 하나의 데이터 영역에 제1 인증정보를 생성하고, 상기 제1인증정보는 애플리케이션 모듈이 생성될 때, 상기 애플리케이션 데이터에 삽입되며, 상기 생성된 제1 인증정보를 포함하는 상기 애플리케이션 데이터를 포함하는 상기 애플리케이션 모듈을 생성하고, 상기 애플리케이션 모듈의 실행을 위한 적어도 하나의 외부 장치로 상기 통신부를 통해 상기 애플리케이션 모듈을 전송하며, 상기 인증 엘리먼트는 애플리케이션 모듈이 상기 적어도 하나의 외부 전자 장치에 의해 실행되기 이전에 상기 애플리케이션 모듈이 실행되는 지를 결정하기 위해 상기 제1 인증 정보와 비교되는 제2 인증 정보를 생성하도록 이용되며, 상기 인증 요소는 상기 애플리케이션 모듈에 포함된 정보 중 판독 전용 데이터를 저장하는 영역을 포함한다.
도 1은 본 발명이 적용되는 시스템의 일 예를 나타낸 도면,
도 2는 본 발명의 일 실시예에 따른 애플리케이션 생성 장치의 구성을 나타낸 도면,
도 3은 본 발명의 일 실시예에 따른 애플리케이션의 생성 방법의 순서를 예시하는 흐름도,
도 4는 본 발명의 일 실시예에 따른 애플리케이션의 생성 방법이 적용되는 애플리케이션 데이터의 구조를 예시하는 도면,
도 5는 본 발명의 일 실시예에 따른 애플리케이션의 생성 방법에 의해 생성되는 데이터를 예시하는 도면,
도 6은 본 발명의 일 실시예에 따른 디지털 장치의 구성을 나타낸 도면,
도 7은 본 발명의 일 실시예에 따른 디지털 장치에 구비된 애플리케이션 처리 장치의 구성을 예시하는 도면,
도 8은 본 발명의 일 실시예에 따른 애플리케이션 처리 방법의 동작 과정을 도시하는 흐름도.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다. 도면에서 동일한 구성요소들에 대해서는 비록 다른 도면에 표시되더라도 가능한 한 동일한 참조번호 및 부호로 나타내고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
본 발명은 애플리케이션의 보호를 위한 것으로, 보다 구체적으로는 애플리케이션을 역 컴파일(Decompile)을 통해 불법 변조하여 원본 애플리케이션을 추출하거나, 또는 원본 애플리케이션에 포함된 콘텐츠를 추출하거나, 권한이 없는 디지털 장치나 사용자가 불법적으로 원본 애플리케이션을 사용하는 것을 방지하기 위한 것이다.
이를 위해 본 발명에 따른, 애플리케이션 생성 장치는, 애플리케이션 모듈을 생성할 때, 해당 애플리케이션 모듈에 포함되는 엘리먼트 중에서 적어도 하나의 인증 엘리먼트를 설정하고, 상기 설정된 적어도 하나의 인증 엘리먼트에 대한 인증 정보(예, 제1인증정보)를 생성한다. 인증 엘리먼트는 애플리케이션 모듈의 보안을 위해 애플리케이션 모듈에 포함되는 개체로서, 위조 또는 변조의 가능성이 존재하는 프로그램 영역을 포함할 수 있다. 예컨대, 상기 인증 엘리먼트는 ELF 파일 포맷의 데이터에 포함된 텍스트 영역, 읽기 전용 데이터 영역 등을 포함할 수 있으며, 상기 제1인증정보는 ELF 파일 포맷의 데이터에 포함된 텍스트 영역, 읽기 전용 데이터 영역 등에 대한 해쉬(HAsh) 값을 연산한 정보를 포함할 수 있다. 그리고 애플리케이션 생성 장치는 생성된 상기 제1인증정보를 포함하는 애플리케이션 모듈을 배포한다.
그리고 사용자의 디지털 장치에서 애플리케이션 모듈이 실행될 때, 사용자 디지털 장치는 배포된 애플리케이션 모듈을 실행한다. 우선, 사용자 디지털 장치는 애플리케이션 모듈에 포함된 인증 정보(예, 상기 제1인증정보)를 추출한다. 그리고, 사용자 디지털 장치는 애플리케이션 모듈에 포함된 인증 엘리먼트를 확인하고, 상기 인증 엘리먼트에 대한 인증 정보(예, 제2인증정보)를 생성한다. 이후, 애플리케이션 모듈은 상기 제1인증정보와 상기 제2인증정보를 비교하여, 일치하면 애플리케이션을 정상적으로 실행하도록 구성될 수 있다.
이러한 본 발명이 적용되는 시스템을 도1에 도시하였다. 도1은 본 발명이 적용되는 시스템의 일예를 나타낸 도면이다.
도1을 참조하면, 시스템은 애플리케이션 생성 장치(200), 애플리케이션 서비스 서버(300), 사용자 디지털 장치(100), 통신망(400)을 포함한다.
사용자 디지털 장치(100)는 개인용 컴퓨터, 휴대폰, 스마트폰, 태블릿PC 등과 같이 애플리케이션을 설치 및 실행할 수 있는 다양한 전저장치를 포함할 수 있다.
애플리케이션 생성 장치(200)는 애플리케이션 모듈을 생성하는 장치로서, 개인용 컴퓨터, 휴대용 단말 등과 같은 사용자 디지털 장치(100)에서 사용되는 다양한 운영체제 플랫폼을 지원할 수 있다. 애플리케이션 생성 장치(200)는 사용자 디지털 장치(100)로 애플리케이션 모듈을 배포할 수 있다. 예컨대, 애플리케이션 생성 장치(200)는 생성한 애플리케이션 모듈을 애플리케이션 서비스 서버(200)를 통해 사용자 디지털 장치(100)에게 배포할 수 있다.
애플리케이션 서비스 서버(300)는 애플리케이션 생성 장치(200)에서 공급된 애플리케이션 모듈을 적법한 절차에 따라 유/무선 통신망(400)을 통해 사용자 디지털 장치에 배포한다.
유/무선 통신망(400)은 각종 유선 통신망 또는 무선 통신망, 예를 들어, 이동 통신망, 인터넷망 등을 포함한다.
또한, 다른 예로써, 애플리케이션 생성 장치(200)는 소정의 프로토콜(USB 통신, 시리얼 통신, 근거리 무선 통신, Wi-Fi 통신 등)을 통해 사용자 디지털 장치(100)와 직접적으로 연결되어, 생성한 애플리케이션 모듈을 사용자 디지털 장치(100)에게 배포할 수도 있다.
상기한 시스템에서 애플리케이션 생성 장치(200)는 본 발명의 일 실시예에 따라, 도 2와 같이 구성될 수 있다. 도2는 본 발명의 일 실시예에 따른 애플리케이션 생성 장치의 구성을 나타낸 도면이다.
도2를 참조하면, 애플리케이션 생성 장치(200)는 애플리케이션 생성부(210), 인증 정보 생성부(220), 통신부(230), 메모리부(240)를 포함할 수 있다.
통신부(230)는 애플리케이션 생성부(210)의 제어하에 외부의 장치와 데이터를 송수신하여 통신을 수행한다.
메모리부(240)는 애플리케이션 생성 장치(200)의 제어를 위한 제어프로그램 및 외부로부터 입력되는 신호 또는 데이터를 기억하거나, 애플리케이션 생성 장치(200)에서 수행되는 작업을 위한 기억영역으로 사용된다.
애플리케이션 생성부(210)는 애플리케이션 생성 장치(200)의 전반적으로 제어한다. 즉, 애플리케이션 생성부(210)는 인증 정보 생성부(220), 통신부(230), 메모리부(240)를 제어할 수 있다. 그리고 애플리케이션 생성부(210)는 애플리케이션모듈을 생성하며, 애플리케이션 생성 과정에서 인증 정보 생성부(220)와 연동하여 인증 정보를 생성한다.
인증 정보 생성부(220)는 애플리케이션 생성부(210)의 제어하에, 애플리케이션 모듈에 포함시킬 인증 정보를 생성한다. 다시 말해, 인증 정보 생성부(220)는 애플리케이션 생성부(210)가 애플리케이션 모듈 생성하는 과정에서 애플리케이션 데이터에 포함된 인증 엘리먼트를 확인하고, 확인된 인증 엘리먼트에 대한 인증 정보를 생성한다. 이하, 인증 정보 생성부(220)가 생성하는 상기 인증 정보는 제1인증정보라 한다. 예컨대, 상기 제1인증정보는 인증 엘리먼트에 대해 해쉬 값을 연산한 값을 포함할 수 있다.
애플리케이션 생성부(210)는 상기 제1인증정보를 애플리케이션 데이터에 삽입한 애플리케이션 모듈을 생성한다. 그리고, 애플리케이션 생성부(210)는 상기 애플리케이션 모듈에 인증 에이전트 실행 모듈을 더 포함하도록 구성할 수 있다. 인증 에이전트 실행 모듈은, 사용자 디지털 장치가 인증 에이전트를 실행할 수 있게 하기 위한 모듈이다. 인증 에이전트는 해당 애플리케이션 모듈이 사용자 디지털 장치에서 실행되는 시점에 해당 애플리케이션 모듈에 포함된 인증 엘리먼트를 확인하고, 디지털 장치 상에서 상기 인증 엘리먼트에 대한 인증 정보를 생성하는 에이전트이다. 이하, 상기 인증 에이전트가, 디지털 장치 상에서 생성하는 상기 인증 정보는 제2인증정보라 한다.
즉, 상기 제1인증정보는 애플리케이션 모듈을 생성하는 동작 과정에서, 애플리케이션 데이터에 구비된 인증 엘리먼트에 대해 생성된 후, 애플리케이션 모듈에 삽입되는 인증정보이고, 상기 제2인증정보는 애플리케이션 모듈을 실행하는 과정에서 상기 애플리케이션 모듈에 구비된 인증 엘리먼트에 대해 생성된 인증정보일 수 있다.
한편, 애플리케이션 생성부(210)는 전술한 애플리케이션 모듈을 통신부(230)를 통해 애플리케이션 서비스 서버(300)에 제공하거나, 또는 상기 통신부(230)를 통해 사용자 디지털 장치(100)로 직접 전달할 수도 있다.
이러한, 애플리케이션 생성 장치(200)의 동작 과정을 도3에 도시하였다. 도 3은 본 발명의 일 실시예에 따른 애플리케이션 생성 과정을 나타낸 도면이다.
도3을 참조하면, 애플리케이션 생성 장치(200)는 301단계에서 애플리케이션 데이터를 생성한다. 그리고 애플리케이션 생성 장치(200)는 303단계에서 애플리케이션 생성 과정에서 애플리케이션에 삽입되는 인증 엘리먼트를 확인한다. 예컨대, 상기 인증 엘리먼트는 애플리케이션 데이터에 포함된 텍스트(text) 영역, 읽기 전용 데이터(rodata) 영역, 등을 포함할 수 있다.
이후, 305단계에서 애플리케이션 생성 장치(200)는 상기 과정(303단계)에서 확인된 인증 엘리먼트에 대한 인증 정보(제1인증정보)를 확인한다. 그리고 307단계에서 애플리케이션 생성 장치(200)는 상기 제1인증정보를 애플리케이션 데이터에 삽입한다. 그리고 애플리케이션 생성 장치(200)는 인증 에이전트 실행 모듈과, 애상기 제1인증정보를 포함하는 애플리케이션 데이터를 포함하는 애플리케이션 모듈을 생성한다. 이후, 309단계에서 애플리케이션 생성 장치(200)는 애플리케이션 모듈을 배포한다.
본 발명의 다른 실시예에서는, 307단계에서, 상기 제1인증정보를 포함하는 애플리케이션 데이터만을 애플리케이션 모듈에 삽입할 수도 있다.
도 4는 본 발명의 일 실시예에 따른 애플리케이션의 생성 방법이 적용되는 애플리케이션 데이터의 구조를 예시하는 도면이다. 도 4에서 예시하는 어플리케이션 데이터는 ELF 파일 포맷의 데이터 구조임를 예시한다.
ELF(Executable and Linkable Format)은 실행 파일, object 코드, 공유 라이브러리, 그리고 코어 덤프의 파일 형식에 대한 공통 표준이다. 이러한 ELF 파일 포맷은 x86 기반의 Unix와 Unix-like system을 위한 표준 바이너리 파일로 사용되고 있다. 그리고, ELF 파일 포맷은 유연하고 확장성이 있는 설계를 포함하므로, 특정 Processor나 Architecture에 종속되지 않으며, 다양한 서로 다른 플랫폼에 적용될 수 있다.
ELF 파일 포맷은 디스크에 저장된 프로그램 또는 프로그램의 조각을 저장하기 위한 형식으로 컴파일과 링킹의 결과로 생성된다. ELF 파일 포맷의 데이터 구조는 적어도 두개의 영역으로 나눌 수 있다. 실행파일의 경우, 코드 저장하는 text 영역, 전역 변수를 저장하는 data 영역, 보통 문자열 상수가 포함된 rodata 영역, memory 상에 저장되어야만 하는 영역을 어떻게 기술하는지를 나타내는 header 영역을 포함할 수 있다.
도 4를 참조하면, 애플리케이션 데이터, 즉 ELF 파일 포맷의 데이터는 ELF 해더 영역(401), 프로그램 해더 테이블 영역(402), 텍스트 영역(403), 로우 데이터 영역(404), 데이터 영역(405), 해더 테이블 영역(406) 등을 포함할 수 있다.
상기 애플리케이션 데이터에 포함되는 영역들을 아래 표 1에서 설명하는 데이터들이 수록될 수 있다.
영역 명 영역 특성
bss 초기화 되지 않은 데이트를 가지는 섹션으로, 프로그램의 메모리 이미지에 기여하고 있다. 정의에 의해서, 시스템은 프로그램이 수행될 때, 데이터를 0으로 초기화 한다. 파일의 공간은 차지하지 않기에 SHT_NOBITS의 섹션 타입을 가진다.
comment 섹션이 버전 제어 정보를 가진다.
data/ data1 초기화 된 데이터를 가지는 섹션으로 프로그램의 메모리 이미지에 기여한다.
debug 심벌의 디버깅을 위한 정보를 가지는 섹션이다. 내용은 명시되지 않는다.
dynamic 동적인 링킹 정보를 가지는 섹션이다. 섹션의 성질은 SHF_ALLOC bit을 가질 것이다. SHF_WRITE bit이 설정되는 것은 프로세서 의존적이다.
dynstr 동적인 링킹을 위해서 필요한 스트링들을 가지는 섹션이다. 심벌 테이블의 엔트리와 관련된 이름을 표시하는 스트링이 가장 일반적이다.
dynsym 동적인 링킹 심벌 테이블을 가지는 섹션이다.
fini 프로세스의 종료 코드에 기여하는 실행가능 명령들을 가지는 섹션이다. 즉, 프로그램이 일반적인 종료를 할 때, 시스템은 이 섹션에 있는 코드를 실행하기 위해서 준비할 것이다.
got 전역 옵셋 테이블을 가지는 섹션이다.
init 프로세스의 초기화 코드에 기여하는 실행가능 명령들을 가지는 섹션이다. 즉, 프로그램이 실행을 시작할 때, 시스템은 주(main) 프로그램의 진입점(entry point)를 부르기 전에 이 섹션에 있는 코드를 수행하기 위해서 준비할 것이다.
interp 프로그램의 해석기(interpreter)의 경로 명(path name)을 가지는 섹션이다. 만약 파일이 적재 가능한 세그먼트를 가지고 있고, 이 세그먼트가 섹션을 가질 때, 섹션의 성질(attributes)는 SHF_ALLOC bit을 포함할 것이며, 그렇지 않다면 이 bit이 OFF될 것이다.
.line 심벌 디버깅을 위한 라인 정보를 가지는 섹션으로, 기계어 코드와 프로그램의 소스사이의 일치하는 부분을 기술한다. 섹션의 내용은 정해지지 않았다.
.note “Note Section” 형식으로 들어있는 정보를 가지는 섹션이다.
.plt 프로시져(procedure)의 링크 테이블을 가지는 섹션이다.
Procedure는 함수와 동일하게 생각하면 될 것이다. 여러곳에있는 정보를 얻다보니, 말이조금씩 차이가 난다.
.relname /
.relaname
재배치 정보를 가지는 섹션이다. 만약 파일이 적재 가능한 세그먼트를 가지며, 이 세그먼트가 재배치 및 섹션의 성질을 포함하고 있다면, SHF_ALLOC bit이 설정될 것이다.그렇지 않다면, 이 bit는 OFF될 것이다. 일반적으로 name은 재배치가 적용되는 섹션에 의해서 제공될 것이다. 예를들어 .text에 대한 재배치 섹션은 일반적으로 .rel.text나 .rela.text라는 이름을 가지게 된다.
rodata and
.rodata1
읽기 전용 데이터를 가지는 섹션으로 프로세스의 쓰기가 되지 않는 세그먼트 이미지를 만드는데 기여한다.
shstrtab 섹션의 이름들을 가지는 섹션이다.
symtab 이 섹션에 있는 “Symbol Table”이 기술하는 것과 같은 심벌 테이블을 가지는 섹션이다. 만약 파일이 적재가능한 세그먼트를 가지고, 그 세그먼트가 심벌 테이블을 포함한다면, 섹션의 성질들은 SHF_ALLOC bit를 포함할 것이다. 그렇지 않다면 이 bit는 OFF된다.
text “text”를 가지는 섹션으로 프로그램의 실행가능한 명령을 지니고 있다.
한편, 상기 영역 중, 적어도 하나의 영역이 인증 엘리먼트로 설정될 수 있으며, 특히 상기 텍스트(text) 영역, 읽기 전용 데이터(rodata) 영역, 등이 위조 또는 변조될 가능성이 높으므로, 상기 텍스트(text) 영역, 읽기 전용 데이터(rodata) 영역이 인증 엘리먼트로 설정되는 것이 바람직하다.
나아가, 상기 애플리케이션 데이터에 포함되는 영역들은 전술한 표 1에서 예시하였으나, 본 발명이 이를 한정하는 것은 아니며, 상기 애플리케이션 데이터에 포함되는 영역들은 애플리케이션의 데이터 구조나, 상기 애플리케이션이 설치 및 수행되는 장치의 운영체제 환경에 따라 다양하게 변경될 수 있음은 물론이다.
도 5는 본 발명의 일 실시예에 따른 애플리케이션의 생성 방법에 의해 생성되는 데이터를 예시하는 도면으로써, 본 발명의 일 실시예에 따른 애플리케이션의 생성 방법을 처리하는 프로그램 모듈과 상기 프로그램 모듈에 의해 생성되는 데이터를 예시한다. 상기 프로그램 모듈은 전술한 애플리케이션 생성부(210)와, 인증정보 생성부(22)에 포함될 수 있다. 즉, 상기 애플리케이션 생성부(210)는 컴파일러 모듈(510), 어셈블러 모듈(520), 링커 모듈(530)을 포함할 수 있고, 상기 인증정보 생성부(22)는 인증정보 생성 모듈(540)을 포함할 수 있다.
예컨대, 상기 애플리케이션 소스코드(500)는 C 언어, C++ 언어 등을 기반으로 구성된 소스코드 파일 일 수 있다. 상기 애플리케이션 소스코드(500)는 사용자에 의해 입력되거나, 또는 사용자에 의해 설계된 정보를 기반으로 상기 애플리케이션 생성부(210)가 생성한 데이터 일 수 있다.
애플리케이션 소스코드(500)는 컴파일러 모듈(510)에 입력되고, 상기 컴파일러 모듈을(510)은 상기 애플리케이션 소스코드(500)를 어셈블러 코드(501)로 변환한다. 그리고, 어셈블러 모듈(520)은 상기 어셈블러 코드(501)를 변환하여, 오브젝트 파일, 라이브러리 파일 등을 생성한다. 특히, 상기 어셈블러 모듈(520)은 인증에 사용될 해쉬 값을 더미 값으로 처리한 임시 인증정보(예, Dummy Hash 값)를 생성하여 제공할 수 있다. 그리고, 링커 모듈(530)은 오브젝트 파일, 라이브러리 파일, 및 임시 인증정보(예, Dummy Hash 값)를 포함하는 애플리케이션 데이터(예, ELF 파일 포맷에 기초한 실행 파일 데이터)(503)을 생성한다.
이상의 상기 애플리케이션 데이터(503)을 구성하는 과정은 전술한 도 3의 301단계를 통해 진행되는 과정일 수 있다.
한편, 상기 애플리케이션 데이터(503)는 인증정보 생성부(220)의 인증정보 생성 모듈(540)로 제공될 수 있다. 상기 인증정보 생성 모듈(540)은 상기 애플리케이션 데이터(503)에 수록된 정보를 확인한다. 특히, 상기 인증정보 생성 모듈(540)은 상기 애플리케이션 데이터(503)에서 정의하고 있는 인증 엘리먼트를 확인한다. 예컨대, 상기 인증 엘리먼트는 애플리케이션 소스코드(500)의 해더 영역에 수록될 수 있다. 그리고, 인증 엘리먼트는 상기 텍스트(text) 영역, 읽기 전용 데이터(rodata) 영역으로 설정될 수 있다. 상기 인증정보 생성 모듈(540)은 인증 엘리먼트, 즉 상기 텍스트(text) 영역, 읽기 전용 데이터(rodata) 영역에 대한 인증정보(504)를 생성한다. 상기 인증정보는 상기 인증 엘리먼트, 즉 상기 텍스트(text) 영역, 읽기 전용 데이터(rodata) 영역에 대한 해쉬 값을 연산한 정보를 포함할 수 있다. 그리고, 인증정보 생성 모듈(540)은 이렇게 생성한 인증정보(504)를 애플리케이션 생성부(210)의 링커 모듈(530)에 제공할 수 있다.
이러한, 상기 인증정보 생성 모듈(540)이 인증 엘리먼트를 확인하는 동작을 전술한 도 3의 303단계를 통해 진행되는 과정일 수 있으며, 상기 인증 엘리먼트에 대한 인증정보를 생성하는 동작은 전술한 도 3의 305계를 통해 진행되는 과정일 수 있다.
나아가, 인증정보 생성 모듈(540)이 상기 생성된 인증정보(504)를 링커 모듈(530)에 제공하는 동작은, 상기 어셈블러 모듈(520)이 제공한 상기 임시 인증정보(예, Dummy Hash 값)를 상기 생성된 인증정보(504)로 교체하는 동작을 더 포함할 수 있다. 이러한 상기 임시 인증정보(예, Dummy Hash 값)를 상기 생성된 인증정보(504)로 교체하는 동작은 전술한 도 3의 307계에 대응되는 과정일 수 있다.
다음으로, 링커 모듈(530)은 어셈블러 모듈(520)이 제공한 오브젝트 파일과, 라이브러리 파일, 그리고, 상기 인증정보 생성 모듈(540)이 제공한 인증정보를 조합하여 애플리케이션 모듈(예, ELF 파일 포맷에 기초한 실행 파일 데이터)(503)을 생성할 수 있다.
이와 같이, 상기 애플리케이션 모듈(예, ELF 파일 포맷에 기초한 실행 파일 데이터)(503)을 생성하는 동작은 전술한 도 3의 309단계를 통해 진행되는 과정일 수 있다.
도 6은 본 발명의 일 실시예에 따른 디지털 장치(100)의 구성을 나타낸 도면이다.
도 6을 참조하면, 장치(100)는 제어부(110), 통신모듈(120), 입/출력 모듈(130), 저장부(150), 전원공급부(160), 터치스크린(171), 및 터치스크린 컨트롤러(172)를 포함한다.
우선, 제어부(110)는 CPU(111), 장치(100)의 제어를 위한 제어프로그램이 저장된 롬(ROM, 112) 및 장치(100)의 외부로부터 입력되는 신호 또는 데이터를 기억하거나, 장치(100)에서 수행되는 작업을 위한 기억영역으로 사용되는 램(RAM, 113)을 포함할 수 있다. CPU(111), 롬(112), 및 램(113)은 내부버스(bus)를 통해 상호 연결될 수 있다. 또한, 제어부(110)는 통신모듈(120), 입/출력 모듈(130), 저장부(150), 전원공급부(160), 터치스크린(171), 및 터치스크린 컨트롤러(172)를 제어할 수 있다. 나아가, 제어부(110)는 싱글코어로 이루어지거나, 듀얼 코어, 트리플 코어, 또는 쿼드 코어 등과 같이 복수의 코어로 이루어질 수도 있다. 상기 코어의 수는 단말의 특성에 따라 본 발명의 기술분야에서 통상의 지식을 가진자에 의해 다양하게 구성될 수 있음은 물론이다.
통신모듈(120)은 셀룰러 모듈, 무선랜 모듈 및 근거리통신 모듈 중 적어도 하나를 포함할 수 있다.
셀룰러 모듈은 제어부(110)의 제어에 따라 적어도 하나-하나 또는 복수-의 안테나(도시되지 아니함)를 이용하여 이동 통신을 통해 장치(100)가 외부 장치와 연결되도록 한다. 셀룰러 모듈은 장치(100)에 입력되는 전화번호를 가지는 휴대폰(도시되지 아니함), 스마트폰(도시되지 아니함), 태블릿PC 또는 다른 장치(도시되지 아니함)와 음성 통화, 화상 통화, 문자메시지(SMS) 또는 멀티미디어 메시지(MMS)를 위한 무선 신호를 송/수신한다.
무선랜 모듈은 제어부(110)의 제어에 따라 무선 액세스 포인트(AP, access point)(도시되지 아니함)가 설치된 장소에서 인터넷에 연결될 수 있다. 무선랜 모듈은 미국전기전자학회(IEEE)의 무선랜 규격(IEEE802.11x)을 지원한다. 무선랜 모듈은 무선으로 연결되는 무선 액세스 포인트(AP, access point)에서 제공하는 위치 정보를 사용하여 무선랜 모듈을 구비하고 있는 단말의 위치정보를 확인하는 WPS(Wi-Fi Positioning System)를 구동할 수 있다.
근거리통신 모듈은 제어부(110)의 제어에 따라 장치(100)와 무선으로 근거리 통신을 처리하는 모듈로써, 블루투스(bluetooth), 적외선 통신(IrDA, infrared data association), 와이파이 다이렉트(WiFi-Direct) 통신, NFC(Near Field Communication) 등의 근거리 통신방식에 기초하여 통신을 처리할 수 있다.
나아가, 통신모듈(120)은 USB 통신 케이블, 시리얼 통신 케이블 등을 통해 연결된 다른 전자장치와 소정의 통신 방식(예컨대, USB 통신, 시리얼 통신 등)에 기초하여 데이터 통신을 수행할 수 있음은 물론이다.
입/출력 모듈(130)은 버튼(131), 스피커(132), 및 진동모터(133) 중, 적어도 하나를 포함할 수 있다.
버튼(131)은 상기 장치(100)의 하우징의 전면, 측면 또는 후면에 형성될 수 있으며, 전원/잠금 버튼(도시되지 아니함), 볼륨버튼(도시되지 아니함), 메뉴 버튼, 홈 버튼, 돌아가기 버튼(back button) 및 검색 버튼 중 적어도 하나를 포함할 수 있다.
스피커(132)는 제어부(110)의 제어에 따라 셀룰러 모듈, 무선랜 모듈 및 근거리통신 모듈의 다양한 신호(예, 무선신호, 방송신호 등)에 대응되는 사운드를 장치(100) 외부로 출력할 수 있다. 스피커(132)는 상기 장치(100)의 하우징의 적절한 위치 또는 위치들에 하나 또는 복수로 형성될 수 있다.
진동모터(133)는 제어부(110)의 제어에 따라 전기적 신호를 기계적 진동으로 변환할 수 있다. 상기 장치(100)의 하우징 내에 하나 또는 복수로 형성될 수 있다.
이와 같은, 스피커(132) 및 진동모터(133)는 장치(100)의 볼륨운영모드의 설정 상태에 따라, 동작할 수 있다. 예컨대, 장치(100)의 볼륨운영모드는 소리모드, 진동모드, 소리&진동모드, 무음모드 등으로 운영될 수 있으며, 이들 모드 중 하나의 모드로 설정될 수 있다. 제어부(110)는 상기 볼륨운영모드가 설정된 모드에 기초하여, 장치(100)가 수행하는 기능에 따라 상기 스피커(132) 또는 진동모터(133)의 동작을 지시하는 신호를 출력할 수 있다.
저장부(150)는 제어부(110)의 제어에 따라 입/출력 모듈(130), 터치스크린(171)의 동작에 대응되게 입/출력되는 신호 또는 데이터를 저장할 수 있다. 저장부(150)는 장치(100) 또는 제어부(110)의 제어를 위한 제어 프로그램 및 어플리케이션들을 저장할 수 있다.
“저장부”라는 용어는 저장부(150), 제어부(110)내 롬(112), 램(113) 또는 장치(100)에 장착되는 메모리 카드(도시되지 아니함)(예, SD 카드, 메모리 스틱)를 포함한다. 저장부는 비휘발성메모리, 휘발성메모리, 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD)를 포함할 수 있다.
그리고 저장부(150)는 본 발명의 일 실시예에 따라, 다운로드된 애플리케이션 모듈을 저장할 수 있다.
전원공급부(160)는 제어부(110)의 제어에 따라 장치(100)의 하우징에 배치되는 하나 또는 복수의 배터리(도시되지 아니함)에 전원을 공급할 수 있다. 하나 또는 복수의 배터리(도시되지 아니함)는 장치(100)에 전원을 공급한다. 또한, 전원공급부(160)는 장치에 구비된 커넥터와 연결된 유선 케이블을 통해 외부의 전원소스(도시되지 아니함)에서부터 입력되는 전원을 장치(100)로 공급할 수 있다. 또한, 전원공급부(160)는 무선 충전 기술을 통해 외부의 전원소스로부터 무선으로 입력되는 전원을 장치(100)로 공급할 수도 있다.
터치스크린(171)은 단말의 운영체제(OS; Operation System)에 기초하여, 사용자에게 다양한 서비스(예, 통화, 데이터 전송, 방송, 사진촬영)에 대응되는 유저 인터페이스를 디스플레이할 수 있다. 터치스크린(171)은 유저 인터페이스에 입력되는 적어도 하나의 터치에 대응되는 아날로그 신호를 터치스크린 컨트롤러(172)로 전송할 수 있다. 터치스크린(171)은 사용자의 신체(예, 엄지를 포함하는 손가락) 또는 터치 가능한 입력 수단(예, 스타일러스 펜)을 통해 적어도 하나의 터치를 입력받을 수 있다. 또한, 터치스크린(171)은 적어도 하나의 터치 중에서, 하나의 터치의 연속적인 움직임을 입력받을 수 있다. 터치스크린(171)은 입력되는 터치의 연속적인 움직임에 대응되는 아날로그 신호를 터치스크린 컨트롤러(172)로 전송할 수 있다.
터치스크린(171)은 예를 들어, 저항막(resistive) 방식, 정전용량(capacitive) 방식, 적외선(infrared) 방식 또는 초음파(acoustic wave) 방식으로 구현될 수 있다.
한편, 터치스크린 컨트롤러(172)는 제어부(110)에서 제공되는 디스플레이 데이터가 터치스크린(171)에 표시될 수 있도록, 터치스크린(171)의 출력값을 제어한다. 그리고, 터치스크린 컨트롤러(172)는 터치스크린(171)에서부터 수신된 아날로그 신호를 디지털 신호(예, X와 Y좌표)로 변환하여 제어부(110)로 전송한다.
이와 같은, 제어부(110)는 터치스크린(171)과 터치스크린 컨트롤러(172)로부터 제공되는 데이터를 사용하여, 사용자 입력을 처리할 수 있다. 즉, 제어부(110)는 터치스크린 컨트롤러(172)로부터 수신된 디지털 신호를 이용하여 터치스크린(171)을 제어할 수 있다. 예를 들어, 제어부(110)는 터치 이벤트 또는 호버링 이벤트에 응답하여 터치스크린(171)에 표시된 단축 아이콘(도시되지 아니함)이 선택되게 하거나 또는 단축 아이콘(도시되지 아니함)을 실행할 수 있다.
나아가, 전술한 본 발명의 다양한 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다.
또한, 본 발명의 다양한 실시예에 따른 방법들은 전술한 장치(100)의 저장부(150)에 프로그램 명령 형태로 구현되어 저장될 수 있으며,상기 프로그램 명령은, 본 발명의 예시적 실시예에 따른 방법들의 실행을 위해 제어부(110) 내에 포함된 램(RAM, 113)에 일시적으로 저장될 수 있다. 이에 따라, 제어부(110)는, 본 발명의 예시적 실시예에 따른 방법들에 따른 상기 프로그램 명령에 대응하여, 장치(100)에 포함된 하드웨어 구성요소들의 제어를 수행하고, 본 발명의 예시적 실시예에 따른 방법들을 실행하면서 발생되는 데이터를 일시 또는 지속적으로 저장부(150)에 저장하고, 본 발명의 예시적 실시예에 따른 방법들의 실행에 필요한 UI를 터치스크린 컨트롤러(172)에 제공할 수 있다.
나아가, 전술한 장치(100)는 인증 에이전트(미 도시)를 더 포함할 수 있다. 상기 인증 에이전트(미 도시)는 장치의 제어부(110)의 내부에 구비되거나, 장치(100) 내에 독립적인 모듈로 구비될 수 있다.
상기 인증 에이전트는 애플리케이션에 대한 인증을 수행한다. 제어부(110)는 사용자 요청에 대응하여 이동통신부(120) 또는 서브통신부(130)를 통해 애플리케이션 모듈을 애플리케이션 서비스 서버(300)로부터 다운로드하고, 장치(100)에 설치할 수 있다. 애플리케이션 모듈은 인증 에이전트 실행 모듈을 포함한다. 다운로드된 애플리케이션 모듈이 디지털 장치(100)에서 실행될 때, 제어부(110)는 애플리케이션 모듈에 포함된 인증 에이전트 실행 모듈을 이용해 인증 에이전트를 장치(100)에서 실행할 수 있다.
인증 에이전트는 적정 시점에서 해당 애플리케이션 모듈에 포함된 인증 엘리먼트를 추출하여, 인증서명(제2인증정보)을 생성한다. 그리고 인증 에이전트는 애플리케이션 모듈에서 인증 서명(제1인증정보)을 추출하고, 이(제1인증정보)를 상기 제1인증정보와 비교하여, 일치하면 애플리케이션이 정상적으로 실행될 수 있게 한다.
이러한 인증 에이전트의 애플리케이션 모듈 인증은 애플리케이션 모듈의 실행 과정상 다양한 시점에서 이뤄질 수 있다. 예를 들어, 인증 에이전트는 애플리케이션 모듈의 실행이 시작될 때, 해당 애플리케이션 모듈을 인증할 수 있다.
또는 인증 에이전트는 애플리케이션 모듈의 스테이지가 진행되는 과정에서 인증이 필요한 시점이 되면, 제어부(110)가 인증 에이전트를 통해 해당 애플리케이션 모듈을 인증할 수도 있다. 예를 들어, 애플리케이션 모듈의 실행을 시작하고, 애플리케이션 모듈에 포함된, 보안 기술이 적용된 특정 콘텐츠를 재생해야하는 시점에, 애플리케이션 모듈에 대한 인증을 수행할 수도 있다.
도 7은 본 발명의 일 실시예에 따른 디지털 장치에 구비된 애플리케이션 처리 장치의 구성을 예시하는 도면이다. 도 7을 참조하면, 애플리케이션 처리 장치는 애플리케이션(250)과, 인증 에이전트(185)를 포함할 수 있으며, 상기 애플리케이션 처리 장치는 전술한 제어부(110)에 포함될 수 있다.
사용자로부터 애플리케이션 모듈의 실행 요청에 대응하여, 상기 애플리케이션 처리 장치의 동작이 개시될 수 있다. 구체적으로, 애플리케이션 모듈의 실행 요청이 입력되면, 애플리케이션 모듈(250)이 실행되고, 인증 에이전트(185)를 설치한다.
인증 에이전트(185)는 애플리케이션 모듈(250)에서 인증 엘리먼트를 추출하여, 인증 서명(제2인증정보)을 생성한다. 그리고 인증 에이전트(185)는 애플리케이션 모듈의 생성시 상기 애플리케이션 모듈에 포함된 인증 서명(제1인증정보)을 추출하고, 상기 제1인증정보와 제2인증정보를 비교한다.
그리고, 상기 인증 에이전트(185)는 상기 제1인증정보와 제2인증정보를 비교한 결과 값에 기초하여, 상기 애플리케이션 모듈(250)의 실행 여부에 대응되는 값을 제공한다. 예컨대, 상기 제1인증정보와 제2인증정보가 동일하면, 상기 인증 에이전트(185)는 상기 애플리케이션 모듈(250)의 실행을 지시하는 값을 애플리케이션 모듈(250)에 제공한다. 반면, 상기 제1인증정보와 제2인증정보가 동일하지 않으면, 상기 인증 에이전트(185)는 상기 애플리케이션 모듈(250)의 실행이 불가함을 지시하는 값을 애플리케이션 모듈(250)에 제공하거나, 상기 애플리케이션 모듈(250)의 실행이 불가함을 나타내는 메시지를 디스플레이하거나 경고음을 발생한다.
이러한 사용자 디지털 장치(100)의 동작 과정은 후술하는 애플리케이션 처리방법에서 상세히 설명한다.
도 8은 본 발명의 일 실시예에 따른 애플리케이션 처리방법의 동작 과정을 도시하는 흐름도이다.
701단계에서, 디지털 장치(100)의 제어부(110)는 입/출력부(130) 또는 터치스크린(171) 등을 통해 특정 애플리케이션 모듈에 대한 실행 요청을 수신할 수 있다. 이에 따라, 제어부(110)는 상기 실행 요청된 상기 특정 애플리케이션 모듈에 접근하여 상기 특정 애플리케이션 모듈을 실행한다.
예컨대, 상기 특정 애플리케이션 모듈은 소정의 통신망을 통해 연결된 다른 전자기기(예컨대 서버 장치 등)에 수록되거나, 상기 디지털 장치(100)에 구비된 저장부(150)에 수록될 수 있다. 따라서, 제어부(110)는 통신모듈(120)을 통해 다른 전자기기(예컨대 서버 장치 등)와 연결하고, 다른 전자기기(예컨대 서버 장치 등)에 수록된 상기 특정 애플리케이션 모듈에 접근하거나, 장치(100)에 구비된 저장부(150)에 수록된 상기 특정 애플리케이션 모듈에 접근할 수 있다.
다음으로, 703단계에서, 제어부(110)는 인증 에이전트(185)를 생성 및 실행한다.
그리고 705단계에서 인증 에이전트(185)는 상기 특정 애플리케이션 모듈에 포함된 정보를 확인하여 제1인증정보를 추출한다. 상기 제1인증정보는 상기 특정 애플리케이션 모듈의 생성시 삽입되는 정보로서, 상기 특정 애플리케이션 모듈에 포함된 인증 엘리먼트에 대한 서명정보(예컨대, 인증 엘리먼트에 대한 해쉬 값)를 포함할 수 있다. 그리고 705단계에서 인증 에이전트(185)는 상기 특정 애플리케이션 모듈의 생성시 정의된 인증 엘리먼트를 확인한다. 상기 인증 엘리먼트는 상기 특정 애플리케이션 모듈에 포함된 해더(예, ELF 해더)에서 정의될 수 있으며, 상기 인증 엘리먼트에 대한 서명정보(예컨대, 인증 엘리먼트에 대한 해쉬 값)는, 해당 엘리먼트가 수록된 영역에 포함될 수 있다. 따라서, 인증 에이전트(185)는 상기 특정 애플리케이션 모듈을 생성하는 동작을 역으로 진행하여, 어플리케이션 소스 코드를 생성하고, 상기 어플리케이션 소스 코드에서 상기 특정 애플리케이션 모듈에 포함된 해더(예, ELF 해더)를 검출하고, 상기 해더에서 정의하고 있는 상기 인증 엘리먼트를 확인하고, 상기 확인된 인증 엘리먼트가 수록된 영역에서 상기 인증 엘리먼트에 대한 서명정보(예컨대, 인증 엘리먼트에 대한 해쉬 값)(제1인증정보)를 확인할 수 있다.
그리고, 707단계에서, 인증 에이전트(185)는 상기 확인된 인증 엘리먼트를 에 대한 인증 정보(제2인증정보)을 생성한다. 즉, 인증 에이전트(185)는 상기 705단계에서 확인된 어플리케이션 소스 코드를 컴파일링하는 동작을 진행하고, 상기 확인된 인증 엘리먼트를 에 대한 인증 정보(예컨대, 인증 엘리먼트에 대한 해쉬 값)(제2인증정보)를 생성하는 동작을 진행한다. 이러한, 제2인증정보를 생성하는 동작은 전술한 애플리케이션의 생성 방법의 동작을 설명하고 있는 도 5의 제1인증정보(504)를 생성하는 동작에 준하여 처리될 수 있다.
한편, 709단계에서 인증 에이전트(185)는 상기 제1인증정보와 제2인증정보를 비교하여 동일한지 여부를 확인한다.
만약, 상기 특정 애플리케이션 모듈이 불법적으로 변형되지 않았다면, 인증 엘리먼트가 변형되지 않고, 애플리케이션 생성 장치(200)에 의해 삽입된 제1인증정보와, 인증 에이전트(185)에서 확인된 제2인증정보가 동일하게 나타날 것이다. 하지만, 상기 특정 애플리케이션 모듈이 불법적으로 변조되었다면, 애플리케이션 생성 장치(200)에 의해 삽입된 제1인증정보와 인증 에이전트(185)에서 확인된 제2인증정보가 동일하게 유지되지 않는다.
때문에, 인증 에이전트(185)는 709단계에서 제1인증정보와, 상기 707단계에서 생성된 제2인증정보의 비교결과가 동일하다면, 711단계에서 인증 성공을 어플리케이션 모듈(250)에게 통보하여, 특정 애플리케이션 모듈(250)이 정상적으로 실행될 수 있게 한다. 만약, 비교 결과 동일하지 않다면, 713단계에서 특정 어플리케이션 모듈(250)에게 통보하여, 어플리케이션 모듈(250)의 실행을 중단한다. 나아가, 애플리케이션의 실행 중단의 대한 통지 및 이유가 터치스크린(171)에 디스플레이될 수도 있다.
이와 같이, 본 발명은 애플리케이션을 보다 안전하게 보호할 수 있는 방법 및 장치를 제공한다. 또한, 본 발명은 애플리케이션을 역 컴파일(Decompile)해 불법 변조하는 것을 방지할 수 있게 한다.
또한, 프로그램 수정에 대해 스스로 위조 또는 변조된 것을 감지하여, 어플리케이션의 동작을 제어함으로써 악의적으로 위조 또는 변조하여 사용되는 것을 방지할 수 있다.
또한, 기존 실행 파일 및 라이브러리의 포맷 변경이 없고 실행 파일 및 라이브러리 스스로 무결성을 검증하기 때문에 커널(Kernel)의 수정 없이 다양한 어플리케이션 파일의 생성에 적용할 수 있다.
인증정보로서 사용되는 해쉬(Hash) 값이 외부 파일과 같이 별도의 데이터로 제공하지 않고, 어플리케이션 내 자체적으로 포함시킨다. 이로써, 인증정보(예, 해쉬(Hash) 값)를 공개적으로 노출하지 않을 수 있다. 또한, 인증정보(예, 해쉬(Hash) 값)를 논리적으로 어플리케이션 내부에 수록함 숨김으로써 보안성능을 증대시킬 수 있다.
본 발명의 다양한 실시예들은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 임의의 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 본 발명의 다양한 실시예에 따른 방법은 제어부 및 메모리를 포함하는 컴퓨터 또는 전자장치에 의해 구현될 수 있고, 상기 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 따라서, 본 발명의 다양한 실시예에 따른 방법은 본 명세서의 임의의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명의 다양한 실시예는 이와 균등한 것을 적절하게 포함한다.
또한, 상기 컴퓨터 또는 전자장치는 유선 또는 무선으로 연결되는 프로그램 제공 장치로부터 상기 프로그램을 수신하여 저장할 수 있다. 상기 프로그램 제공 장치는 기 설정된 컨텐츠 보호 방법을 수행하도록 하는 지시들을 포함하는 프로그램, 컨텐츠 보호 방법에 필요한 정보 등을 저장하기 위한 메모리와, 유선 또는 무선 통신을 수행하기 위한 통신부와, 프로그램의 전송을 제어하는 제어부를 포함할 수 있다. 상기 프로그램 제공 장치는 상기 컴퓨터 또는 전자장치로부터 상기 프로그램의 제공 요청을 수신할 경우, 상기 컴퓨터 또는 전자장치에 상기 프로그램을 유선 또는 무선으로 제공할 수 있다. 또한, 상기 프로그램 제공 장치는 상기 컴퓨터 또는 전자장치로부터 상기 프로그램의 제공 요청이 없는 경우에도, 예를 들어 상기 컴퓨터 또는 전자장치가 특정 장소 내에 위치할 경우, 상기 컴퓨터 또는 전자장치에 상기 프로그램을 유선 또는 무선으로 제공하도록 형성될 수도 있다.

Claims (20)

  1. 디지털 장치에서 애플리케이션을 보호하는 방법에 있어서,
    상기 애플리케이션의 애플리케이션 데이터를 포함하는 애플리케이션 모듈을 수신하는 과정과, 상기 애플리케이션 데이터는 제1 인증 정보를 포함하며,
    상기 애플리케이션 모듈을 실행하기 위한 요청을 입력받는 과정과,
    상기 애플리케이션 데이터로부터 상기 제1 인증 정보를 식별하는 과정과, 상기 제1 인증 정보는 상기 애플리케이션 모듈이 생성될 때, 상기 애플리케이션 데이터에 삽입되며,
    상기 애플리케이션 모듈을 실행하기 위한 요청에 응답하여, 상기 애플리케이션 데이터에 포함된 인증 엘리먼트를 이용하여 상기 디지털 장치에서 제2 인증정보를 생성하는 과정과, 상기 애플리케이션 데이터의 적어도 하나의 영역이 인증 엘리먼트로 설정되며,
    상기 제1 인증정보가 상기 제2 인증정보와 동일한 경우, 상기 요청에 응답하여 상기 애플리케이션 모듈을 실행하는 과정을 포함하며,
    상기 인증 엘리먼트는 상기 애플리케이션 모듈에 포함된 정보 중 판독 전용 데이터를 저장하는 영역을 포함함을 특징으로 하는 애플리케이션 보호 방법.
  2. 제1항에 있어서,
    상기 제1 인증 정보가 제2 인증정보와 동일하지 않으면, 상기 애플리케이션 모듈의 실행을 중단하는 과정을 더 포함함을 특징으로 하는 애플리케이션 보호 방법.
  3. 제1항에 있어서, 상기 애플리케이션 모듈을 실행하기 위한 요청에 응답하여, 상기 애플리케이션 모듈에 포함된 인증 에이전트를 실행하는 과정을 더 포함함을 특징으로 하는 애플리케이션 보호 방법.
  4. 제1항에 있어서, 상기 제1인증정보는,
    상기 애플리케이션 모듈의 생성시, 상기 인증 엘리먼트에 대해 서명한 정보를 포함함 특징으로 하는 애플리케이션 보호 방법.
  5. 제1항에 있어서, 상기 인증 엘리먼트는,
    상기 애플리케이션 모듈에 포함된 정보 중, 애플리케이션의 실행 가능한 명령을 수록하는 영역을 포함함을 특징으로 하는 애플리케이션 보호 방법.
  6. 삭제
  7. 애플리케이션을 보호하는 디지털 장치에 있어서,
    통신부; 및
    적어도 하나의 제어부를 포함하며,
    상기 제어부는,
    외부 전자 장치로부터 상기 애플리케이션의 애플리케이션 데이터를 포함하는 애플리케이션 모듈을 수신하도록 상기 통신부를 제어하고, 상기 애플리케이션 데이터는 제1 인증정보를 포함하며,
    상기 애플리케이션 데이터로부터 상기 제1 인증정보를 식별하고,
    상기 애플리케이션 모듈을 실행하기 위한 요청에 응답하여, 상기 애플리케이션 데이터에 포함된 인증 에이전트를 이용하여 제2 인증 정보를 생성하고, 상기 애플리케이션 데이터의 적어도 하나의 영역이 인증 엘리먼트로 설정되며,
    상기 제1 인증정보가 상기 제2 인증정보와 동일한 경우, 상기 요청에 응답하여 상기 애플리케이션 모듈을 실행하고, 상기 인증 엘리먼트는 상기 애플리케이션 모듈에 포함된 정보 중 판독 전용 데이터를 저장하는 영역을 포함함을 특징으로 하는 디지털 장치.
  8. 제7항에 있어서, 상기 제어부는,
    상기 제1 인증정보가 제2 인증정보와 동일하지 않으면, 상기 애플리케이션 모듈의 실행을 중단함을 특징으로 하는 디지털 장치.
  9. 제7항에 있어서, 상기 제1인증정보는,
    상기 애플리케이션 모듈의 생성시, 상기 인증 엘리먼트에 대해 서명한 정보를 포함함을 특징으로 하는 디지털 장치.
  10. 제7항에 있어서, 상기 인증 엘리먼트는,
    상기 애플리케이션 모듈에 포함된 정보 중, 상기 애플리케이션 모듈의 실행 가능한 명령을 수록하는 영역을 포함함을 특징으로 하는 디지털 장치.
  11. 삭제
  12. 애플리케이션을 보호하는 방법에 있어서,
    애플리케이션 데이터를 생성하는 과정과,
    상기 애플리케이션 데이터에 포함된 영역들 중 적어도 하나의 데이터 영역에 대응하는 인증 엘리먼트를 설정하는 과정과,
    상기 설정된 인증 엘리먼트를 이용하여 상기 적어도 하나의 데이터 영역에 대한 제1 인증정보를 생성하는 과정과, 상기 생성된 제1 인증정보는 애플리케이션 모듈이 생성될 때, 상기 애플리케이션 데이터에 삽입되며,
    상기 생성된 제1 인증정보를 포함하는 상기 애플리케이션 데이터를 포함하는 상기 애플리케이션 모듈을 생성하는 과정과,
    상기 애플리케이션 모듈의 실행을 위한 적어도 하나의 외부 장치로 상기 애플리케이션 모듈을 전송하는 과정을 포함하며,
    상기 인증 엘리먼트는 애플리케이션 모듈이 상기 적어도 하나의 외부 전자 장치에 의해 실행되기 이전에 상기 애플리케이션 모듈이 실행되는 지를 결정하기 위해 상기 제1 인증 정보와 비교되는 제2 인증 정보를 생성하도록 이용되며,
    상기 인증 엘리먼트는 상기 애플리케이션 모듈에 포함된 정보 중 판독 전용 데이터를 저장하는 영역을 포함함을 특징으로 하는 애플리케이션 보호 방법.
  13. 제12항에 있어서, 상기 애플리케이션 모듈은,
    상기 애플리케이션 모듈을 실행하기 위한 상기 적어도 하나의 외부 장치에서, 상기 제1 인증정보 및 상기 인증 엘리먼트를 사용하여 상기 애플리케이션 데이터를 인증하는 인증 에이전트를 포함함을 특징으로 하는 애플리케이션 보호 방법.
  14. 제12항에 있어서, 상기 애플리케이션 데이터는,
    상기 인증 엘리먼트에 대한 인증을 처리하기 전에 임시로 생성되는 임시 인증정보를 포함함을 특징으로 하는 애플리케이션 보호 방법.
  15. 제14항에 있어서, 상기 애플리케이션 모듈을 생성하는 과정은,
    상기 임시 인증정보를 상기 제1인증정보로 변경하는 과정을 포함함을 특징으로 하는 애플리케이션 보호 방법.
  16. 제12항에 있어서, 상기 인증 엘리먼트는,
    상기 애플리케이션 데이터에 포함된 정보 중, 애플리케이션의 실행 가능한 명령을 수록하는 영역을 포함함을 특징으로 하는 애플리케이션 보호 방법.
  17. 삭제
  18. 애플리케이션 생성 장치에 있어서,
    통신부; 및
    적어도 하나의 제어부를 포함하며,
    상기 적어도 하나의 제어부는,
    애플리케이션의 애플리케이션 데이터를 생성하고,
    상기 애플리케이션 데이터에 포함된 영역들 중 적어도 하나의 데이터 영역에 대응하는 인증 엘리먼트를 설정하고,
    상기 설정된 인증 엘리먼트를 이용하여 상기 적어도 하나의 데이터 영역에 제1 인증정보를 생성하고, 상기 제1 인증정보는 애플리케이션 모듈이 생성될 때, 상기 애플리케이션 데이터에 삽입되며,
    상기 생성된 제1 인증정보를 포함하는 상기 애플리케이션 데이터를 포함하는 상기 애플리케이션 모듈을 생성하고,
    상기 애플리케이션 모듈의 실행을 위한 적어도 하나의 외부 장치로 상기 통신부를 통해 상기 애플리케이션 모듈을 전송하며,
    상기 인증 엘리먼트는 상기 애플리케이션 모듈이 상기 적어도 하나의 외부 전자 장치에 의해 실행되기 이전에 상기 애플리케이션 모듈이 실행되는 지를 결정하기 위해 상기 제1 인증 정보와 비교되는 제2 인증 정보를 생성하도록 이용되며,
    상기 인증 엘리먼트는 상기 애플리케이션 모듈에 포함된 정보 중 판독 전용 데이터를 저장하는 영역을 포함함을 특징으로 하는 애플리케이션 생성 장치.
  19. 제18항에 있어서, 상기 애플리케이션 모듈은,
    상기 애플리케이션 모듈을 실행하기 위한 상기 적어도 하나의 외부 장치에서, 상기 제1 인증정보 및 상기 인증 엘리먼트를 사용하여 상기 애플리케이션 데이터를 인증하는 인증 에이전트를 포함함을 특징으로 하는 애플리케이션 생성 장치.
  20. 제18항에 있어서,
    상기 애플리케이션 데이터는, 상기 인증 엘리먼트에 대한 인증을 처리하기 전에 임시로 생성되는 임시 인증정보를 포함하고,
    상기 제어부는, 상기 임시 인증정보를 상기 제1인증정보로 변경하도록 더 구성되는 것을 특징으로 하는 애플리케이션 생성 장치.
KR1020130126695A 2013-10-23 2013-10-23 애플리케이션 프로그램 보호 방법 및 장치 KR102133251B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130126695A KR102133251B1 (ko) 2013-10-23 2013-10-23 애플리케이션 프로그램 보호 방법 및 장치
US14/521,932 US9953157B2 (en) 2013-10-23 2014-10-23 Method and apparatus for protecting application program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130126695A KR102133251B1 (ko) 2013-10-23 2013-10-23 애플리케이션 프로그램 보호 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150047001A KR20150047001A (ko) 2015-05-04
KR102133251B1 true KR102133251B1 (ko) 2020-07-21

Family

ID=52827260

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130126695A KR102133251B1 (ko) 2013-10-23 2013-10-23 애플리케이션 프로그램 보호 방법 및 장치

Country Status (2)

Country Link
US (1) US9953157B2 (ko)
KR (1) KR102133251B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268935B2 (en) * 2014-02-24 2016-02-23 Ca, Inc. Smart containerization of mobile computing device resources
CN107368713B (zh) * 2017-07-28 2019-07-19 北京深思数盾科技股份有限公司 保护软件的方法和安全组件
CN113094666B (zh) * 2021-04-09 2022-06-24 每日互动股份有限公司 一种防止java程序被反编译的系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050177504A1 (en) * 2004-02-10 2005-08-11 Bottomline Technologies (De) Inc. System and method for remotely authorizing a payment transaction file over an open network
US20060015723A1 (en) * 2004-07-15 2006-01-19 Sony Corporation System and method for authorizing the use of stored information in an operating system
US20110179268A1 (en) * 2010-01-20 2011-07-21 Microsoft Corporation Protecting applications with key and usage policy

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL111151A (en) * 1994-10-03 1998-09-24 News Datacom Ltd Secure access systems
US6220510B1 (en) * 1997-05-15 2001-04-24 Mondex International Limited Multi-application IC card with delegation feature
US7085742B2 (en) * 2000-10-30 2006-08-01 Xybo Systems, Inc. Authenticating software licenses
US7143288B2 (en) * 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
US7802110B2 (en) * 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
US7805765B2 (en) * 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data
US7810153B2 (en) * 2005-01-28 2010-10-05 Microsoft Corporation Controlling execution of computer applications
US8838974B2 (en) * 2005-07-15 2014-09-16 The Mathworks, Inc. System and method for verifying the integrity of read-only components in deployed mixed-mode applications
JP4360422B2 (ja) * 2007-05-15 2009-11-11 フェリカネットワークス株式会社 認証情報管理システム、認証情報管理サーバ、認証情報管理方法及びプログラム
US9129098B2 (en) * 2007-09-28 2015-09-08 Abbyy Development Llc Methods of protecting software programs from unauthorized use
EP2199993A1 (en) * 2008-12-17 2010-06-23 Gemalto SA Method and token for managing one processing relating to an application supported or to be supported by a token
US8856953B2 (en) * 2010-09-01 2014-10-07 Red Hat, Inc. Access policy for package update processes
KR20120061548A (ko) * 2010-12-03 2012-06-13 에스케이플래닛 주식회사 어플리케이션 서비스 시스템 및 그 방법
KR101269089B1 (ko) 2011-08-19 2013-05-29 고려대학교 산학협력단 자가암호화를 이용한 소프트웨어 변조방지 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050177504A1 (en) * 2004-02-10 2005-08-11 Bottomline Technologies (De) Inc. System and method for remotely authorizing a payment transaction file over an open network
US20060015723A1 (en) * 2004-07-15 2006-01-19 Sony Corporation System and method for authorizing the use of stored information in an operating system
US20110179268A1 (en) * 2010-01-20 2011-07-21 Microsoft Corporation Protecting applications with key and usage policy

Also Published As

Publication number Publication date
US9953157B2 (en) 2018-04-24
US20150113284A1 (en) 2015-04-23
KR20150047001A (ko) 2015-05-04

Similar Documents

Publication Publication Date Title
KR102546601B1 (ko) 정적 바이너리 계측을 사용하여 커널 제어-흐름 무결성을 보호하기 위한 방법 및 장치
US9680648B2 (en) Securely recovering a computing device
EP2626803B1 (en) Information processing device and method for preventing unauthorized application cooperation
US9465942B1 (en) Dictionary generation for identifying coded credentials
US8254568B2 (en) Secure booting a computing device
US8826405B2 (en) Trusting an unverified code image in a computing device
JP6227772B2 (ja) 動的ライブラリを保護する方法及び装置
US8417969B2 (en) Storage volume protection supporting legacy systems
CN102341805A (zh) 使用外围设备的完整性验证
CN106529218B (zh) 一种应用校验方法和装置
CN105103127A (zh) 基于编译器的混淆
CN105446713A (zh) 安全存储方法及设备
JP2009188984A (ja) 短距離無線通信を用いたサービスのプロビジョニング
CN103544434A (zh) 用于确保应用程序安全运行的方法和终端
WO2022078366A1 (zh) 应用保护方法、装置、设备及介质
KR102133251B1 (ko) 애플리케이션 프로그램 보호 방법 및 장치
KR101757407B1 (ko) 바이너리 병합 장치, 방법 및 컴퓨터 프로그램
CN115129332A (zh) 固件烧录方法、计算机设备及可读存储介质
CN102368852A (zh) 信息处理装置、信息处理方法以及程序
KR102145324B1 (ko) 라이브러리 인젝션을 통한 취약점 분석 방법 및 서버
KR20150053277A (ko) 소프트웨어의 실행을 제어하기 위한 장치 및 그 방법
CN110659477A (zh) 安卓设备的防刷机保护方法、系统及安卓设备和存储介质
US20180181727A1 (en) Electronic device, method for controlling thereof and computer-readable recording medium
CN110688663A (zh) 一种执行命令保护方法、装置及安卓设备和存储介质
JP2018005915A (ja) アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム

Legal Events

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