KR101214893B1 - Apparatus and method for detecting similarity amongf applications - Google Patents

Apparatus and method for detecting similarity amongf applications Download PDF

Info

Publication number
KR101214893B1
KR101214893B1 KR1020110136167A KR20110136167A KR101214893B1 KR 101214893 B1 KR101214893 B1 KR 101214893B1 KR 1020110136167 A KR1020110136167 A KR 1020110136167A KR 20110136167 A KR20110136167 A KR 20110136167A KR 101214893 B1 KR101214893 B1 KR 101214893B1
Authority
KR
South Korea
Prior art keywords
similarity
application
file
information
match
Prior art date
Application number
KR1020110136167A
Other languages
Korean (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 KR1020110136167A priority Critical patent/KR101214893B1/en
Priority to PCT/KR2012/007641 priority patent/WO2013089340A1/en
Application granted granted Critical
Publication of KR101214893B1 publication Critical patent/KR101214893B1/en

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

PURPOSE: A similarity detection device of an application, and a method thereof are provided to determine forgery of an Android application through repackaging and similarity between applications, thereby protecting a right of an application developer. CONSTITUTION: An input unit(110) receives a similarity measurement request message of an application. A file extraction unit(120) extracts file information from a reference application and a compared object application related to the message. A file analysis unit analyzes the coincidence between the reference application and the compared object application by comparing the applications based on the file information. A similarity analysis unit(160) analyzes repackaging, forgery, or similarity based on the analysis result obtained from the file analysis unit. [Reference numerals] (110) Input unit; (120) File extraction unit; (130) DEX signature analysis unit; (140) Developer signature analysis unit; (150) APK file analysis unit; (160) Similarity analysis unit; (170) Analysis output unit

Description

어플리케이션의 유사성 검출 장치 및 방법{APPARATUS AND METHOD FOR DETECTING SIMILARITY AMONGF APPLICATIONS}Apparatus and method for detecting similarity in applications {APPARATUS AND METHOD FOR DETECTING SIMILARITY AMONGF APPLICATIONS}

본 발명은 모바일 기기에서 사용되는 어플리케이션을 분석하는 기술에 관한 것으로서, 특히 모바일 플랫폼 기반으로 동작하는 어플리케이션들의 유사도를 측정하여 일치여부를 검출하는데 적합한 어플리케이션의 유사성 검출 장치 및 방법에 관한 것이다.
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for analyzing an application used in a mobile device, and more particularly, to an apparatus and method for detecting similarity of an application suitable for detecting a match by measuring similarity of applications operating on a mobile platform.

오늘날 모바일 기기는 현대인의 필수품이 되었으며, 개인당 하나 이상 소지한 모바일 기기를 통하여 통화 및 메시지 발송, 무선인터넷의 접속을 가능하게 함으로써, 다양한 유비쿼터스 환경을 구현하고 있다.Today, mobile devices have become a necessity of modern people, and various ubiquitous environments are realized by enabling call, message sending, and wireless Internet access through one or more mobile devices per person.

더욱이 휴대 전화와 개인휴대 단말기(PDA)의 장점을 결합한 스마트 단말의 인기는 해외 뿐만 아니라 국내에서도 크게 높아지고 있다. 이러한 스마트 단말에는 사용자가 다양한 종류의 어플리케이션을 설치할 수 있으므로, 기본적인 통화기능 이외에도 금융거래, 영화 및 공연 예매, 네비게이션, 게임 어플리케이션 등을 설치하여 구동시킬 수 있다.Moreover, the popularity of smart terminals, which combines the advantages of mobile phones and personal digital assistants (PDAs), is increasing significantly in Korea as well as abroad. Since the user can install various kinds of applications in the smart terminal, it is possible to install and drive financial transactions, movie and performance booking, navigation, game applications, etc. in addition to the basic call function.

스마트 단말의 사용이 증가함에 따라 스마트 단말에 설치될 수 있는 어플리케이션도 다양하게 출시되고 있으며, 이러한 스마트 단말의 어플리케이션은 사용자가 온라인 마켓에 접속하여 해당 어플리케이션의 특징, 기능, 사용자 후기 등을 참고하여 다운 받을 수 있다.As the use of smart terminals increases, various applications that can be installed on smart terminals are released. The applications of these smart terminals are downloaded by referring to the characteristics, functions, and user reviews of the corresponding applications by accessing the online market. I can receive it.

모바일 환경에서는 다양한 어플리케이션이 제작되어 온라인 마켓을 통해 유·무료로 배포되고 있으며, 배포 경로 또한 획일적이지 않고 다양하다. 특히 안드로이드(Android) 어플리케이션은 하나의 통일된 온라인 마켓이 아닌 다양한 사업자에 의해 운영되고 있으므로, 상대적으로 어플리케이션의 고유성이나 유사성, 무결성 등을 확인하기는 어려운 측면이 있다.In the mobile environment, various applications are produced and distributed for free through the online market, and the distribution paths are not uniform but varied. In particular, the Android (Android) application is operated by a variety of operators rather than a single unified online market, it is relatively difficult to check the uniqueness, similarity, integrity, etc. of the application.

이러한 이유로 안드로이드 어플리케이션들 사이의 유사도 검출을 수행하기 위한 다양한 연구가 이루어지게 되었으며, 종래의 대표적인 유사도 검출 방법으로는 패키지명을 이용한 분류 방법과 바이너리 파일을 대상으로 하는 파일 디퍼런스(File Difference) 기술 그리고 해시 함수를 이용한 비교 방법 등이 있다.
For this reason, various researches have been conducted to perform similarity detection between Android applications. Typical typical similarity detection methods include a classification method using a package name, a file difference technique for a binary file, and Comparison methods using hash functions.

한국공개특허 제2011-0100923호 (2010.09.15. 공개)Korean Patent Publication No. 2011-0100923 (published Sep. 15, 2010) 한국공개특허 제2011-0084693호 (2011.07.26. 공개)Korean Patent Publication No. 2011-0084693 (published Jul. 26, 2011)

상기한 바와 같이 안드로이드 어플리케이션의 유사도 검출을 위한 종래기술에 있어서, 패키지명을 이용한 분류 방법은 타인에 의해 손쉽게 리패키징 될 수 있으므로 정확한 분류 방법이 될 수 없으며, 또한 똑같은 구성 파일일 지라도 패키징 될 때의 상황에 따라 안드로이드 어플리케이션의 확장자인 APK(Android PacKage)의 내부 구성 상태가 달라지므로 APK 파일을 대상으로 행해지는 CRC/Hash 검증 방법은 아무런 의미가 없다. 그 대안으로 DEX_Signature(SHA1)와 DEX_CRC를 사용하는 방법이 있으나 이 방법으로는 어플리케이션의 동일성까지는 확인할 수 있으나 유사성을 산출할 수 없었다. As described above, in the prior art for detecting similarity of the Android application, the classification method using the package name cannot be an accurate classification method because it can be easily repackaged by others, and even when the same configuration file is packaged, Since the internal configuration status of APK (Android PacKage), which is an Android application extension, varies depending on the situation, the CRC / Hash verification method performed on the APK file has no meaning. An alternative is to use DEX_Signature (SHA1) and DEX_CRC. However, this method can check the identity of the application but cannot calculate the similarity.

한편, 파일 디퍼린스 체킹(File Difference Checking) 방법에서는 동일성 확인과 함께 유사도를 계산할 수는 있으나, 자바의 클래스 파일을 포함하는 DEX (Dalvik EXecutable) 파일이 달빅 가상머신(Dalvik VMWare)을 위해 최적화된 파일임을 감안할 때, 어플리케이션 코드 일부만 수정되더라도 바이너리 간의 유사도는 크게 바뀔 수 있어 신뢰할 만한 대상이 되지 않는 다는 문제점이 있었다.On the other hand, in the File Difference Checking method, the similarity can be calculated together with the identity check, but the DEX (Dalvik Executable) file including the class file of Java is optimized for the Dalvik VMWare. Considering that, even if only a part of the application code is modified, the similarity between the binary can be greatly changed, there is a problem that it is not a reliable target.

이에 본 발명의 실시예는, 모바일 플랫폼 기반으로 동작하는 어플리케이션들의 유사도를 측정하여 일치여부를 검출할 수 있는 어플리케이션의 유사성 검출 장치 및 방법을 제공할 수 있다.Accordingly, an embodiment of the present invention may provide an apparatus and method for detecting similarity of an application capable of detecting a match by measuring similarity of applications operating on a mobile platform.

또한 본 발명의 실시예는, 안드로이드 모바일 플랫폼 기반으로 동작하는 어플리케이션들의 특성에 기반한 역공학 정보를 활용하여 각 어플리케이션 간의 유사도를 측정할 수 있는 어플리케이션의 유사성 검출 장치 및 방법을 제공할 수 있다.In addition, an embodiment of the present invention may provide an apparatus and method for detecting similarity of an application capable of measuring similarity between respective applications by using reverse engineering information based on characteristics of applications operating on an Android mobile platform.

또한 본 발명의 실시예는, 안드로이드 모바일 플랫폼 기반으로 동작하는 어플리케이션에서 DEX 시그니처(signature), 개발자 서명, APK 내부 파일에 대한 분석과, 클래스(class) 및 메소드(method) 파일의 분석 및 비교를 통하여 각 어플리케이션 간의 유사도를 측정할 수 있는 어플리케이션의 유사성 검출 장치 및 방법을 제공할 수 있다.
In addition, an embodiment of the present invention, through the analysis of the DEX signature (signature), developer signatures, internal files of the APK, and analysis and comparison of class (method) files in the application running on the Android mobile platform An apparatus and method for detecting similarity of an application capable of measuring similarity between respective applications can be provided.

본 발명의 일 실시예에 따른 어플리케이션의 유사성 검출 장치는, 어플리케이션의 유사성 측정 요청 메시지를 입력 받는 입력부와, 상기 메시지와 관련된 기준 어플리케이션과 비교 대상 어플리케이션으로부터 파일 정보를 추출하는 파일 추출부와, 상기 추출된 파일 정보를 토대로 상기 기준 어플리케이션과 상기 비교 대상 어플리케이션을 비교하여 일치 여부를 분석하는 파일 분석부와, 상기 파일 분석부의 분석 결과 정보를 토대로 리패키징, 위변조 여부 또는 유사도 중 적어도 하나 이상을 분석하는 유사성 분석부를 포함할 수 있다.An apparatus for detecting similarity of an application according to an embodiment of the present invention may include an input unit for receiving a similarity measurement request message of an application, a file extractor for extracting file information from a reference application and a comparison target application associated with the message, and the extraction. A file analysis unit comparing the reference application and the comparison target application based on the file information and analyzing at least one of repackaging, forgery or similarity based on analysis result information of the file analysis unit It may include an analysis unit.

그리고 상기 파일 정보는, DEX 시그니처, 개발자 서명, APK 내부 파일 정보, DEX 파일 내 클래스 및 메소드 정보 중 적어도 하나인 것을 특징으로 할 수 있다.The file information may be at least one of a DEX signature, a developer signature, an APK internal file information, a class and method information in the DEX file.

그리고 상기 파일 분석부는, DEX 헤더에 삽입된 DEX 시그니처를 비교하여 일치 여부를 판단하는 DEX 시그니처 분석부와, 상기 DEX 시그니처가 일치하는 경우, 개발자 서명의 일치 여부를 판단하는 개발자 서명 분석부와, APK 내부 파일 정보의 일치 여부를 비교하는 APK 파일 분석부를 포함할 수 있다.The file analyzer may include a DEX signature analyzer configured to compare DEX signatures inserted in a DEX header to determine whether the DEX signature is matched, a developer signature analyzer configured to determine whether a developer signature is matched when the DEX signature is matched, and an APK. It may include an APK file analysis unit for comparing the match of the internal file information.

그리고 상기 유사성 분석부는, 상기 DEX 시그니처가 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단할 수 있다.When the DEX signatures do not match, the similarity analyzer may compare class and method information among the extracted file information and determine similarity by measuring a similarity.

그리고 상기 유사성 분석부는, 상기 개발자 서명 및 상기 APK 내 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 기준 어플리케이션과 동일한 것으로 판단하고, 상기 개발자 서명은 일치하나, 상기 APK 내 파일 정보가 일치하지 않는 경우, 상기 비교 대상 어플리케이션은 상기 개발자의 리패키징 어플리케이션으로 판단할 수 있다.The similarity analyzer determines that the comparison target application is the same as the reference application when the developer signature and the file information in the APK match, and the developer signature matches, but the file information in the APK does not match. In this case, the comparison target application may be determined as the repackaging application of the developer.

그리고 상기 유사성 분석부는, 상기 개발자 서명이 일치하지 않으나, APK 내 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 개발자가 아닌 타인에 의한 리패키징 어플리케이션으로 판단하고, 상기 개발자 서명이 일치하지 않고, 또한 상기 APK 내 파일 정보도 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단할 수 있다.The similarity analyzer determines that the comparison target application is a repackaging application by someone other than the developer when the developer signature does not match but the file information in the APK matches, and the developer signature does not match. Also, if the file information in the APK does not match, class and method information of the extracted file information may be compared, and similarity may be measured to determine whether forgery by another person.

그리고 상기 유사성 검출 장치는, 상기 유사성 분석부로부터 전달 받은 유사성 분석 결과 정보를 사용자의 모바일 기기 또는 어플리케이션 스토어 서버로 전송하는 분석 결과 출력부를 더 포함할 수 있다.The similarity detection apparatus may further include an analysis result output unit configured to transmit the similarity analysis result information received from the similarity analysis unit to a user's mobile device or an application store server.

본 발명의 일 실시예에 따른 어플리케이션의 유사성 검출 방법은, 어플리케이션의 유사성 측정 요청 메시지를 입력 받는 과정과, 상기 메시지와 관련된 기준 어플리케이션과 비교 대상 어플리케이션으로부터 파일 정보를 추출하는 과정과, 상기 추출된 파일 정보를 토대로 상기 기준 어플리케이션과 상기 비교 대상 어플리케이션을 비교하여 일치 여부를 분석하는 과정과, 상기 일치 여부에 대한 분석 결과 정보를 토대로 리패키징, 위변조 여부, 또는 유사도 중 적어도 하나 이상을 분석하는 과정을 포함할 수 있다.The method for detecting similarity of an application according to an embodiment of the present invention may include receiving a similarity measurement request message of an application, extracting file information from a reference application and a comparison target application associated with the message, and extracting the extracted file. Comparing the reference application with the comparison target application based on the information and analyzing the match; and analyzing at least one or more of repackaging, forgery, or similarity based on the analysis result information on the match. can do.

그리고 상기 파일 정보는, DEX 시그니처, 개발자 서명, APK 내 파일 정보, DEX 파일 내 클래스 및 메소드 정보 중 적어도 하나인 것을 특징으로 할 수 있다.The file information may be at least one of a DEX signature, a developer signature, file information in an APK, class and method information in a DEX file, and the like.

그리고 상기 일치 여부를 분석하는 과정은, DEX 헤더에 삽입된 DEX 시그니처를 비교하여 일치 여부를 판단하는 과정과, 상기 DEX 시그니처가 일치하는 경우, 개발자 서명의 일치 여부를 판단하는 과정과, APK 내부 파일 정보의 일치 여부를 비교하는 과정을 포함할 수 있다.The analyzing of the matching may include: comparing the DEX signatures inserted in the DEX header to determine whether to match; and if the DEX signatures match, determining whether or not the developer signature is matched; And comparing the information with each other.

그리고 상기 유사도를 분석하는 과정은, 상기 DEX 시그니처가 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 과정을 포함할 수 있다.The analyzing of the similarity may include comparing class and method information among the extracted file information and determining similarity by measuring a similarity if the DEX signature does not match. .

그리고 상기 유사도를 분석하는 과정은, 상기 개발자 서명 및 상기 APK 내 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 기준 어플리케이션과 동일한 것으로 판단하는 과정과, 상기 개발자 서명은 일치하나, 상기 APK 내 파일 정보가 일치하지 않는 경우, 상기 비교 대상 어플리케이션은 상기 개발자의 리패키징 어플리케이션으로 판단하는 과정을 더 포함할 수 있다.The analyzing of the similarity may include determining that the comparison target application is the same as the reference application when the developer signature and the file information in the APK match, and the developer signature matches, but not the file in the APK. If the information does not match, the comparison target application may further include determining that the developer is a repackaging application.

그리고 상기 유사도를 분석하는 과정은, 상기 개발자 서명이 일치하지 않으나, APK 내 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 개발자가 아닌 타인에 의한 리패키징 어플리케이션으로 판단하는 과정과, 상기 개발자 서명이 일치하지 않고 또한 상기 APK 내 파일 정보도 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 과정을 더 포함할 수 있다.The process of analyzing the similarity may include determining that the comparison target application is a repackaging application by someone other than the developer when the developer signature does not match but the file information in the APK matches. If the information does not match and the file information in the APK does not match, the method may further include comparing class and method information among the extracted file information, and determining similarity to determine whether forgery by another person.

그리고 상기 유사성 검출 방법은, 상기 유사도를 분석하는 과정을 통해 분석된 유사성 분석 결과 정보를 사용자의 모바일 기기 또는 어플리케이션 스토어 서버로 전송하는 과정을 더 포함할 수 있다.
The similarity detecting method may further include transmitting similarity analysis result information analyzed through analyzing the similarity to a user's mobile device or an application store server.

상기와 같은 본 발명의 실시예에 따른 어플리케이션의 유사성 검출 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상이 있다.According to the apparatus and method for detecting similarity of an application according to the embodiment of the present invention as described above, there are one or more effects as follows.

본 발명의 실시예에 따른 어플리케이션의 유사성 검출 장치 및 방법에 의하면, 안드로이드 어플리케이션의 리패키징을 통한 위변조 여부를 비교적 간단히 판단할 수 있고, 앱 간의 유사성까지도 보다 정확하게 판단해 낼 수 있다. 이를 통해 앱 개발자의 권익을 보호할 수 있는 방안 중의 하나로 저작권 보호 차원으로도 활용을 가능하게 할 수 있는 효과가 있다.
According to the apparatus and method for detecting similarity of an application according to an embodiment of the present invention, it is possible to relatively easily determine whether forgery through repackaging an Android application, and to accurately determine similarity between apps. This is one of the ways to protect the rights of app developers, which can be used as a copyright protection.

도 1은 본 발명의 실시예에 따른 어플리케이션의 유사성 검출 장치 구조를 도시한 블록도,
도 2는 본 발명의 실시예에 따른 유사성 검출 장치의 동작 절차를 도시한 흐름도,
도 3은 본 발명의 실시예에 따른 유사성 검출 장치를 통해 출력된 분석 결과 정보를 도시한 도면.
1 is a block diagram illustrating a structure of an apparatus for detecting similarity of an application according to an embodiment of the present invention;
2 is a flowchart illustrating an operation procedure of an apparatus for detecting similarity according to an embodiment of the present invention;
3 is a diagram illustrating analysis result information output through a similarity detection apparatus according to an exemplary embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention, and methods of achieving the same will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be based on the contents throughout this specification.

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Each block of the accompanying block diagrams and combinations of steps of the flowchart may be performed by computer program instructions. These computer program instructions may be loaded into a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus so that the instructions, which may be executed by a processor of a computer or other programmable data processing apparatus, And means for performing the functions described in each step are created. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of each step of the block diagram. Computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps may be performed on the computer or other programmable data processing equipment to create a computer-implemented process to create a computer or other programmable data. Instructions that perform processing equipment may also provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block or step may represent a portion of a module, segment or code that includes one or more executable instructions for executing a specified logical function (s). It should also be noted that in some alternative embodiments, the functions noted in the blocks or steps may occur out of order. For example, the two blocks or steps shown in succession may in fact be executed substantially concurrently or the blocks or steps may sometimes be performed in the reverse order, depending on the functionality involved.

본 발명의 실시예는, 안드로이드 모바일 플랫폼 기반으로 동작하는 어플리케이션들의 특성에 기반한 역공학 정보를 활용하여 각 어플리케이션 간의 유사도를 측정하기 위한 것으로서, 파일 정보 추출을 통한 DEX 시그니처, 개발자 서명, Apk 내부 파일의 분석과, 클래스(class) 및 메소드(method) 파일의 분석 및 비교를 통하여 각 어플리케이션 간의 유사도를 측정하는 것이다.An embodiment of the present invention is to measure the similarity between each application by using reverse engineering information based on the characteristics of the applications operating on the Android mobile platform, and extracts the DEX signature, developer signature, and Apk internal file through file information extraction. The similarity between each application is measured through analysis and analysis and comparison of class and method files.

이러한 안드로이드는 미국의 구글사를 통해 공개된 자바 기반의 모바일 운영체제로서, 달빅 가상 머신을 통해 자바로 작성된 어플리케이션을 별도의 프로세서에서 실행할 수 있다. 그리고 안드로이드의 모든 소스 코드는 오픈되어 배포되고 있으므로, 각 기업이나 사용자들은 각자 안드로이드 프로그램을 독자적으로 개발하여 모바일에 탑재할 수 있다.Android is a Java-based mobile operating system published by Google Inc. in the United States, and applications written in Java can be executed on a separate processor through a Dalvik virtual machine. And since all the source code of Android is open and distributed, each company or user can develop their own Android program and put it on mobile.

이에 안드로이드 마켓은 복수의 모바일 기기 사용자와, 복수의 어플리케이션 제공자가 유무선 네트워크망을 통해 접속하고, 각 어플리케이션 개발자로부터 어플리케이션이 업로드된 경우 이에 대한 판매가 이루어지는 서버가 될 수 있으며, 사용자들은 이 서버를 통해 다양한 안드로이드 마켓을 통하여 개발자들이 업로드한 어플리케이션을 무료 또는 유료로 제공받을 수 있다.Therefore, the Android Market may be a server where a plurality of mobile device users and a plurality of application providers are connected through a wired / wireless network, and an application is sold when an application is uploaded from each application developer. Through the Android Market, developers can upload free or paid applications.

본 발명의 실시예는 이러한 안드로이드 마켓 서버와 연동하여 기업체 또는 사용자로부터 유사도를 측정하고자 하는 각각의 어플리케이션 정보를 전달 받아 어느 한 어플리케이션을 기준으로 다른 어플리케이션과의 유사도를 측정할 수 있다.An embodiment of the present invention may receive the respective application information to measure the similarity from the enterprise or the user in conjunction with the Android market server can measure the similarity with other applications based on any one application.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 어플리케이션의 유사성 검출 장치 구조를 도시한 블록도이다.1 is a block diagram illustrating a structure of an apparatus for detecting similarity of an application according to an embodiment of the present invention.

도 1을 참조하면, 유사성 검출 장치(100)는 입력부(110), 파일 정보 추출부(120), DEX 시그니처 분석부(130), 개발자 서명 분석부(140), APK 파일 분석부(150), 유사성 분석부(160) 및 분석 결과 출력부(170) 등을 포함할 수 있다.Referring to FIG. 1, the similarity detection apparatus 100 may include an input unit 110, a file information extractor 120, a DEX signature analyzer 130, a developer signature analyzer 140, an APK file analyzer 150, The similarity analyzer 160 and the analysis result output unit 170 may be included.

구체적으로 입력부(110)는 모바일 기기 사용자, 어플리케이션 개발자 또는 안드로이드 마켓 서버 운영자로부터 특정 어플리케이션에 대한 유사성 측정 요청 메시지를 입력 받을 수 있다. 이때, 유사성 측정 요청 메시지에는 비교 기준이 되는 어플리케이션과 이와 비교할 어플리케이션이 포함될 수 있다. 일 실시예에서, 기준 어플리케이션은 개발자의 오리지널 어플리케이션이 될 수 있으며, 비교할 어플리케이션에는 오리지널 어플리케이션에서 변경된 것으로 의심되는 어플리케이션이 될 수도 있다.In more detail, the input unit 110 may receive a similarity measurement request message for a specific application from a mobile device user, an application developer, or an Android market server operator. In this case, the similarity measurement request message may include an application as a comparison criterion and an application to be compared with this. In one embodiment, the reference application may be an original application of the developer, and the application to be compared may be an application suspected of being changed in the original application.

이에 입력부(110)는 입력 받은 유사성 측정 요청 메시지를 파일 정보 추출부(120)로 전달할 수 있다. 파일 정보 추출부(120)는 유사성 측정 요청 메시지에 포함된 각 어플리케이션으로부터 유사성 측정 시 필요한 파일 정보들을 추출할 수 있다.Accordingly, the input unit 110 may transfer the received similarity measurement request message to the file information extracting unit 120. The file information extractor 120 may extract file information necessary for measuring similarity from each application included in the similarity measurement request message.

일 실시예에서, 파일 정보 추출부(120)는 어플리케이션 APK 파일을 역공학으로 추출하여 DEX 시그니처(SHA-1) 정보, 개발자 서명 정보, APK 내부 파일 정보(파일 리스트, 해쉬 정보 등) 그리고 DEX 내 헤더 정보와, 클래스 및 메소드 정보 등을 추출할 수 있다.In one embodiment, the file information extraction unit 120 extracts the application APK file by reverse engineering, DEX signature (SHA-1) information, developer signature information, APK internal file information (file list, hash information, etc.) and the DEX Header information and class and method information can be extracted.

각 어플리케이션은 APK 파일로 압축되어 있으므로, 이를 디플레이트(deflate) 압축 알고리즘을 통해 해제시켜, MANIFEST 파일(AndroidManifest.xml), DEX 파일(classes.dex), 리소스 파일(resources.arsc) 및 META-INF 폴더의 서명 정보 등을 확인할 수 있다. 여기서 DEX 파일에 대한 정적 분석을 통해 DEX 헤더를 추출하고, 실제 데이터 영역의 클래스 정보와, 메소드 정보를 함께 추출할 수 있다.Since each application is compressed as an APK file, it is decompressed by the deflate compression algorithm, and the MANIFEST file (AndroidManifest.xml), DEX file (classes.dex), resource file (resources.arsc) and META-INF are released. You can check the signature information of the folder. Here, the DEX header can be extracted through static analysis of the DEX file, and class information and method information of the actual data area can be extracted together.

이와 같이 파일 정보 추출부(120)를 통해 추출된 파일 정보들은 DEX 시그니처 분석부(130), 개발자 서명 분석부(140) 및 APK 파일 분석부(150)로 전달될 수 있다.The file information extracted through the file information extractor 120 may be transferred to the DEX signature analyzer 130, the developer signature analyzer 140, and the APK file analyzer 150.

DEX 시그니처 분석부(13)는 DEX 생성시 헤더에 심어지는 DEX 시그니처 정보를 비교하여 두 어플리케이션 간 DEX 시그니처 정보의 일치 여부를 분석할 수 있다. 이를 통해 DEX 시그니처 정보가 일치하는 경우에는 소스 코드는 변경된 것이 아니며, 서로 동일한 어플리케이션이거나 단순 리패키징을 수행한 경우가 될 수 있으므로, 이를 DEX 시그니처 비교 분석 결과 정보로서 개발자 서명 분석부(140)에 전달할 수 있다.The DEX signature analyzer 13 may analyze whether or not the DEX signature information is matched between the two applications by comparing the DEX signature information that is planted in the header when the DEX is generated. If the DEX signature information is matched, the source code is not changed, and may be the same application or a simple repackaging. Therefore, the DEX signature information may be transmitted to the developer signature analysis unit 140 as DEX signature comparison analysis result information. Can be.

그러나 DEX 시그니처 정보가 일치하지 않는 경우에는 소스 코드에 변경이 발생된 것이므로, 불일치 분석 정보를 포함하는 DEX 시그니처 비교 분석 결과 정보를 유사성 분석부(160)로 전달할 수 있다.However, when the DEX signature information does not match, since a change has occurred in the source code, the DEX signature comparison analysis result information including the mismatch analysis information may be transmitted to the similarity analysis unit 160.

한편, 개발자 서명 분석부(140)에서는 APK 파일 내에 포함된 서명 코드, 개발자 아이디, 안드로이드 마켓 서버에 등록시 수행하는 서명 또는 구글 인증 디지털 서명 등을 토대로 두 어플리케이션 간의 일치 여부를 분석할 수 있다. Meanwhile, the developer signature analyzer 140 may analyze whether the two applications match each other based on the signature code included in the APK file, the developer ID, the signature performed when registering with the Android Market server, or the Google authentication digital signature.

그리고 일치 또는 비일치로 분석된 결과는 개발자 서명 비교 분석 결과 정보로서, APK 파일 분석부(150)로 전달할 수 있다.The matched or inconsistent analysis result may be transmitted to the APK file analyzer 150 as developer signature comparison analysis result information.

APK 파일 분석부(150)에서는 개발자 서명 분석부(140)로부터 전달 받은 개발자 서명 비교 분석 결과 정보를 확인하고, 기준 어플리케이션과 비교 어플리케이션 간의 APK 내의 파일 정보들에 대한 일치 여부를 비교할 수 있다.The APK file analyzer 150 may check the developer signature comparison analysis result information received from the developer signature analyzer 140, and compare the file information in the APK between the reference application and the comparison application.

즉, APK 내 DEX 파일을 제외한 파일의 구성 정보, 파일 이름 및 파일 크기 등을 확인할 수 있으며, 모두 일치하는 경우에는 일치, 하나라도 틀린 경우에는 불일치한 것으로 분석할 수 있다. 이에 분석된 정보는 개발자 서명 비교 분석 결과 정보와 함께 APK 내부 파일 비교 분석 결과 정보에 포함시켜 유사성 분석부(160)로 전달할 수 있다.In other words, you can check the configuration information, file name, and file size of files except DEX files in APK, and if they match all, they can be matched. The analyzed information may be included in the APK internal file comparison analysis result information together with the developer signature comparison analysis result information and transmitted to the similarity analysis unit 160.

한편, DEX 시그니처 분석부(130), 개발자 서명 분석부(140) 및 APK 파일 분석부(150)는 파일 정보 추출부(120)로부터 추출된 파일 정보를 토대로 기준이 되는 어플리케이션과 비교하고자 하는 어플리케이션을 서로 간에 비교하여 일치 여부를 판단하는 것으로서, 파일 분석부로 통칭할 수 있다.Meanwhile, the DEX signature analyzer 130, the developer signature analyzer 140, and the APK file analyzer 150 compare an application to be compared with an application as a reference based on the file information extracted from the file information extractor 120. Comparing with each other to determine whether or not to match, may be referred to collectively as a file analysis unit.

유사성 분석부(160)는 DEX 시그니처 분석부(130) 및 APK 파일 분석부(150)로부터 APK 내부 파일 비교 분석 결과 정보를 전달 받을 수 있으며, 전달 받은 비교 분석 결과 정보를 토대로 유사성 여부를 판단하게 되고, 이를 토대로 유사도 측정 결과 정보를 생성할 수 있다. 유사성 분석부(160)는 전달받은 비교 분석 결과 정보를 확인하여 DEX 시그니처 및 개발자 서명이 일치하는 경우로서, APK 내 파일의 비교 결과도 일치하는 경우에는 오리지널 개발자의 어플리케이션으로 판단할 수 있다. 즉, 비교 대상 어플리케이션은 기준 어플리케이션과 동일한 어플리케이션으로 판단할 수 있다.The similarity analysis unit 160 may receive the information of the comparison result of the comparison of the internal APK file from the DEX signature analysis unit 130 and the APK file analysis unit 150, and determine the similarity based on the received comparison analysis result information. Based on this, similarity measurement result information can be generated. The similarity analysis unit 160 checks the received comparison analysis result information and matches the DEX signature and developer signature. If the comparison result of the files in the APK also matches, it may be determined as an application of the original developer. That is, the comparison target application may be determined as the same application as the reference application.

그러나, DEX 시그니처 및 개발자 서명은 일치하나, APK 내 파일의 비교 결과는 일치하지 않는 경우, 오리지널 개발자의 리패키징 어플리케이션으로 판단할 수 있다. 그리고 DEX 시그니처는 일치하나, 개발자 서명은 일치하지 않는 경우로서, APK 내 파일의 비교 결과가 일치하는 경우에는 타인에 의한 리패키징 어플리케이션으로 판단할 수 있다. However, if the DEX signature and developer signature match, but the comparison result of the files in the APK does not match, it can be determined as the repackaging application of the original developer. When the DEX signatures match but the developer signatures do not match, and the comparison result of the files in the APK matches, it can be determined as a repackaging application by another person.

한편, DEX 시그니처가 일치하지 않는 경우와, DEX 시그니처는 일치하나 개발자 서명 및 APK 내 파일의 비교 결과가 일치하지 않는 경우에는 유사성 분석 및 유사도 검출을 수행할 수 있다.Meanwhile, similarity analysis and similarity detection may be performed when the DEX signatures do not match and when the DEX signatures match but the developer signature and the comparison result of the files in the APK do not match.

유사성 여부 판단은 DEX 파일 내 클래스 및 매소드 정보를 토대로 일치 여부를 판단할 수 있으며, 일치 여부를 유사도로서 추출할 수 있다. 즉, 기준 어플리케이션에 포함된 모든 클래스 및 매소드 정보가 비교 어플리케이션의 모든 클래스 및 매소드 정보와 일치하는 경우에는 유사도가 100%가 될 수 있으며, 불일치하는 파일이 존재하는 경우, 비율에 따라 유사도를 산출하여 측정할 수 있다.The similarity determination can be determined based on the class and method information in the DEX file, and can be extracted as the similarity. That is, if all the class and method information included in the reference application match all the class and method information of the comparison application, the similarity may be 100%, and if there is a mismatched file, the similarity is calculated according to the ratio. It can be measured.

분석 결과 출력부(170)는 분석된 결과를 출력하는 것으로서, 유사성 분석부(160)를 통해 유사성 분석 결과 정보를 전달 받을 수 있으며, 전달 받은 유사성 분석 결과 정보를 유사성 측정을 요청한 안드로이드 마켓 서버에 전달하거나, 어플리케이션 개발자 또는 모바일 사용자 기기 등으로 전송할 수 있다. 이때, 유사성 분석 결과 정보에는 각 비교 파일 간 일치 여부 목록 정보 및 유사도 측정 결과 정보를 포함할 수 있으며, 유사성 측정 요청자의 추가 요청에 의해 해당 정보를 제공할 수도 있다.The analysis result output unit 170 outputs the analyzed result, and may receive the similarity analysis result information through the similarity analysis unit 160, and deliver the received similarity analysis result information to the Android market server requesting the similarity measurement. Or to an application developer or mobile user device. In this case, the similarity analysis result information may include match list information between each comparison file and similarity measurement result information, and the corresponding information may be provided by an additional request of the similarity measurement requester.

도 2는 본 발명의 실시예에 따른 유사성 검출 장치의 동작 절차를 도시한 흐름도이다.2 is a flowchart illustrating an operation procedure of a similarity detection apparatus according to an embodiment of the present invention.

도 2를 참조하면, 200단계에서 유사성 검출 장치(100)의 입력부(110)는 유사성 측정 요청 메시지를 입력 받게 되고, 입력된 유사성 측정 요청 메시지는 파일 정보 추출부(120)로 전달하게 된다. 이에 파일 정보 추출부(120)는 202단계에서 메시지에 포함된 어플리케이션 APK 파일에서 유사성 측정에 필요한 DEX 시그니처, 개발자 서명, APK 내 파일 리스트 및 해쉬 정보 중 적어도 하나의 파일 정보를 추출하게 된다. Referring to FIG. 2, in step 200, the input unit 110 of the similarity detection apparatus 100 receives a similarity measurement request message, and the input similarity measurement request message is transmitted to the file information extraction unit 120. In operation 202, the file information extractor 120 extracts at least one file information of a DEX signature, a developer signature, a file list in the APK, and hash information required for similarity measurement from the application APK file included in the message.

추출된 파일 정보는 DEX 시그니처 분석부(130)를 전달되어 DEX 시그니처 분석부(130)는 DEX 생성시 삽입되는 DEX 시그니처를 기준 어플리케이션과, 비교 어플리케이션 간의 비교 분석을 통하여 일치 여부를 판단하게 된다. 이에 DEX 시그니처가 서로 일치하는 경우에는 206단계로 진행하여 DEX 시그니처 분석부(130)에서 파일 추출 정보와 DEX 시그니처 비교 분석 결과 정보를 개발자 서명 분석부(140)로 전달하게 되며, 개발자 서명 분석부(140)는 각 어플리케이션 간의 개발자 서명이 일치하는지 여부를 비교 분석하게 된다.The extracted file information is delivered to the DEX signature analyzer 130, and the DEX signature analyzer 130 determines whether the DEX signature inserted when the DEX is generated is compared through a comparative analysis between the reference application and the comparison application. If the DEX signatures coincide with each other, the process proceeds to step 206 and the DEX signature analysis unit 130 passes the file extraction information and the DEX signature comparison analysis result information to the developer signature analysis unit 140. 140) compares and analyzes whether the developer signatures of the respective applications match.

개발자 서명의 일치 여부를 비교하여 개발자 서명도 일치하는 경우에는 208단계로 진행하여 파일 추출 정보와 개발자 서명 비교 분석 결과 정보를 APK 파일 분석부(150)로 전달하고, APK 파일 분석부(150)에서는 APK 내 파일의 일치 여부를 판단하게 된다.If the developer signature is matched by comparing the developer signature, the process proceeds to step 208 and the file extraction information and the developer signature comparison analysis result information are transmitted to the APK file analyzer 150, and the APK file analyzer 150 It will determine whether the files in the APK match.

이에 APK내 파일 정보 또한 동일한 경우에는 210단계로 진행하여 APK 내부 파일 비교 분석 결과 정보를 유사성 분석부(160)로 전달하고, 유사성 분석부(160)에서는 DEX 시그니처, 개발자 서명 및 APK 내부 파일이 일치하는 두 어플리케이션이 동일한 개발자에 의해 만들어진 동일한 어플리케이션으로 판단하게 된다. 그리고 판단된 결과 정보(유사성 분석 결과 정보)를 분석 결과 출력부(170)로 전달하게 된다.If the file information in the APK is also the same, the process proceeds to step 210, and the result of comparing the APK internal file is analyzed and transmitted to the similarity analyzer 160, and the similarity analyzer 160 matches the DEX signature, the developer signature, and the APK internal file. The two applications are judged to be the same application made by the same developer. Then, the determined result information (similarity analysis result information) is transmitted to the analysis result output unit 170.

이를 통해 분석 결과 출력부(170)는 212단계에서 "동일한 어플리케이션" 또는 "유사성 100%"임을 나타내는 정보를 유사성 측정 요청자에게 출력하여 제공하게 된다.As a result, the analysis result output unit 170 outputs the information indicating that the "same application" or "similarity 100%" to the similarity measurement requester in step 212.

그러나 208 단계에서 두 어플리케이션 간의 APK 내 파일 정보가 동일하지 않은 경우에는 APK 내부 파일 비교 분석 결과 정보를 유사성 분석부(160)로 전달하고, 유사성 분석부(160)에서는 DEX 시그니처 및 개발자 서명은 동일하나 APK 내부 파일이 일치하지 않으므로 오리지널 개발자에 의해 리패키징된 즉, 업그레이드된 어플리케이션으로 판단하게 된다. 그리고 판단된 결과 정보를 분석 결과 출력부(170)로 전달하게 된다.However, if the file information in the APK is not the same between the two applications in step 208, the result of the APK internal file comparison analysis is transmitted to the similarity analyzer 160, and the similarity analyzer 160 has the same DEX signature and developer signature. Since the APK internal files do not match, they are determined to be repackaged by the original developer, that is, the upgraded application. The determined result information is transmitted to the analysis result output unit 170.

이를 통해 분석 결과 출력부(170)는 212단계에서 "개발자에 의한 리 패키징" 또는 "업그레이드된 파일"임을 나타내는 정보를 유사성 측정 요청자에게 출력하여 제공하게 된다.As a result, the analysis result output unit 170 outputs the information indicating that it is a "repackaging by a developer" or an "upgraded file" to the requestor for similarity measurement in step 212.

다만, 개발자 서명 분석부(140)는 206단계에서 개발자의 서명이 일치하지 않는 경우, 이를 포함하는 개발자 서명 비교 분석 결과 정보를 APK 파일 분석부(150)로 전달하고, APK 파일 분석부(150)는 216단계에서 APK 내 파일의 일치 여부를 비교 분석하게 된다. 이에 APK 내 파일이 일치하는 경우에는 218단계에서 APK 내부 파일 비교 분석 결과 정보를 유사성 분석부(160)로 전달하고, 유사성 분석부(160)에서는 DEX 시그니처와 APK 내부 파일은 일치하나 개발자 서명이 다른 분석 결과를 토대로 비교 어플리케이션이 오리지널 개발자가 아닌 타인에 의해 리패키징된 것으로 판단하게 된다. 그리고 판단된 결과 정보를 분석 결과 출력부(170)로 전달하게 된다.However, if the signature of the developer does not match at step 206, the developer signature analyzer 140 transmits the developer signature comparison analysis result information including the same to the APK file analyzer 150, and the APK file analyzer 150. In step 216, the files in the APK are compared and analyzed. If the files in the APK match this, in step 218, the result of comparing the APK internal file comparison result is transmitted to the similarity analyzer 160, and the similarity analyzer 160 matches the DEX signature and the APK internal file, but the developer signature is different. Based on the analysis results, the comparison application is judged to be repackaged by someone other than the original developer. The determined result information is transmitted to the analysis result output unit 170.

이를 통해 분석 결과 출력부(170)는 212단계에서 "타인에 의한 리패키징된 어플리케이션"임을 나타내는 정보를 유사성 측정 요청자에게 출력하여 제공하게 된다.As a result, the analysis result output unit 170 outputs the information indicating that the application is a "repackaged application by another person" to the similarity measurement requester in step 212.

그리고 216단계에서 APK 파일 분석부(150)가 APK 내 파일의 일치 여부를 비교 분석하여 두 어플리케이션에서 APK 내 파일이 서로 일치하지 않는 경우에는 리패키징을 통한 단순 변경이 아니므로 220단계로 진행하여 해당 판단 정보를 포함하는 APK 파일 판단 결과 정보를 유사성 분석부(160)로 전달하게 된다.In step 216, if the APK file analysis unit 150 compares and analyzes whether the files in the APK match each other, and the files in the APK do not match with each other in the two applications, the process is not a simple change through repackaging. The APK file determination result information including the determination information is transmitted to the similarity analysis unit 160.

이에 유사성 분석부(160)에서는 DEX 파일을 역공학 방식으로 추출한 클래스 및 메소드 정보를 토대로 각 어플리케이션 간의 유사성을 측정하고, 222단계에서는 비교 결과를 토대로 유사도를 측정하게 된다.The similarity analyzer 160 measures similarity between applications based on class and method information extracted from a DEX file by reverse engineering, and measures similarity based on a comparison result in step 222.

이때, DEX 시그니처 및 개발자 서명이 일치하진 않으나, 유사성 분석 결과 예를 들어, 클래스 및 메소드 정보의 유사도가 80%를 넘는 경우에는 타인에 의한 저작권 위반 또는 위변조 배포된 것으로 판단할 수 있다. 그리고 판단된 결과 정보를 분석 결과 출력부(170)로 전달하게 된다.In this case, the DEX signature and developer signature do not match, but if the similarity analysis results, for example, more than 80% of the class and method information, it may be determined that the copyright violation or forgery distribution by others. The determined result information is transmitted to the analysis result output unit 170.

이를 통해 분석 결과 출력부(170)는 212단계에서 "타인에 의한 저작권 위반 또는 위변조 배포로 의심됨"을 나타내는 정보를 유사성 측정 요청자에게 출력하여 제공하게 된다.As a result, the analysis result output unit 170 outputs and provides information indicating the "similarity to copyright violation or forgery distribution by another person" to the similarity measurement requester in step 212.

한편, 204단계에서 DEX 시그니처가 일치하지 않는 경우에는 220단계에서 유사성 분석부(160)를 통해 클래스 및 메소드 정보를 토대로 각 어플리케이션 간의 유사성을 측정하고, 222단계에서 비교 결과를 토대로 유사도를 측정하게 된다. If the DEX signatures do not match in step 204, the similarity analysis unit 160 measures similarity between applications based on class and method information in step 220, and in step 222, similarity is measured based on a comparison result. .

이때, DEX 시그니처가 일치하지 않는 경우에는 개발자 서명이 일치하지 않는 경우가 대부분이며, 개발자 서명이 일치하는 경우라도 이는 타인에 의한 저작권 위반 또는 위변조 배포된 것으로 판단하게 된다. 그리고 판단된 결과 정보는 분석 결과 출력부(170)로 전달하게 된다.In this case, if the DEX signatures do not match, most of the developer signatures do not match, and even if the developer signatures match, it is determined that the copyright violation or forgery distribution by others. The determined result information is transmitted to the analysis result output unit 170.

이를 통해 분석 결과 출력부(170)는 212단계에서 "타인에 의한 저작권 위반 또는 위변조 배포로 의심됨"을 나타내는 정보를 유사성 측정 요청자에게 출력하여 제공하게 된다.As a result, the analysis result output unit 170 outputs and provides information indicating the "similarity to copyright violation or forgery distribution by another person" to the similarity measurement requester in step 212.

도 3은 본 발명의 실시예에 따른 유사성 검출 장치를 통해 출력된 분석 결과 정보를 도시한 도면이다.3 is a diagram illustrating analysis result information output through a similarity detection apparatus according to an exemplary embodiment of the present invention.

도 3을 참조하면, 분석 결과 출력부(170)를 통해 출력되는 정보로서, 동일한 어플리케이션(310), 개발자에 의한 리패키징(업그레이드)(320), 타인에 의한 리패키징(330), 타인에 의한 저작권 위반 또는 위변조 배포가 의심됨(340), 세부 비교 결과 유사도 00%임(350) 중 적어도 하나의 정보가 출력될 수 있다.Referring to FIG. 3, as the information output through the analysis result output unit 170, the same application 310, a repackaging (upgrade) 320 by a developer, a repackaging 330 by another person, and a third party At least one of copyright violation or forgery distribution suspected (340), the detailed comparison result of the degree of similarity 00% (350) may be output.

또한, "비교 결과 보기"와 같이 구체적인 유사도 측정 결과 정보를 제공함으로서, 유사성 측정 요청자들은 이러한 결과 정보들을 통해 두 어플리케이션 간의 유사성을 정확하게 판단할 수 있다.In addition, by providing detailed similarity measurement result information such as “view comparison results,” similarity measurement requesters may accurately determine similarity between two applications through the result information.

이상 설명한 바와 같이, 본 발명의 실시예에 따른 어플리케이션의 유사성 검출 장치 및 방법은, 안드로이드 모바일 플랫폼 기반으로 동작하는 어플리케이션들의 특성에 기반한 역공학 정보를 활용하여 각 어플리케이션 간의 유사도를 측정하기 위한 것으로서, 파일 정보 추출을 통한 DEX 시그니처, 개발자 서명, APK 내부 파일의 분석과, 클래스 및 메소드 파일의 분석 및 비교를 통하여 각 어플리케이션 간의 유사도를 측정한다.As described above, an apparatus and method for detecting similarity of an application according to an embodiment of the present invention are for measuring similarity between applications using reverse engineering information based on characteristics of applications operating on an Android mobile platform. The similarity between each application is measured through analysis of DEX signature, developer signature, APK internal file through information extraction, and analysis and comparison of class and method files.

한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments, but is capable of various modifications within the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the claims below, but also by those equivalent to the claims.

100: 유사성 검출 장치 110: 입력부
120: 파일 정보 추출부 130: DEX 시그니처 분석부
140: 개발자 서명 분석부 150: APK 파일 분석부
160: 유사성 분석부 170: 분석 결과 출력부
100: similarity detection device 110: input unit
120: file information extraction unit 130: DEX signature analysis unit
140: developer signature analysis unit 150: APK file analysis unit
160: similarity analysis unit 170: analysis result output unit

Claims (14)

어플리케이션의 유사성 측정 요청 메시지를 입력 받는 입력부와,
상기 메시지와 관련된 기준 어플리케이션과 비교 대상 어플리케이션으로부터 파일 정보를 추출하는 파일 추출부와,
상기 추출된 파일 정보를 토대로 상기 기준 어플리케이션과 상기 비교 대상 어플리케이션을 비교하여 일치 여부를 분석하는 파일 분석부와,
상기 파일 분석부의 분석 결과 정보를 토대로 리패키징, 위변조 여부 또는 유사도 중 적어도 하나 이상을 분석하는 유사성 분석부를 포함하되,
상기 파일 정보는, DEX 시그니처, 개발자 서명, APK 내부 파일 정보, DEX 파일 내 클래스 및 메소드 정보 중 적어도 하나인 것을 특징으로 하는
어플리케이션의 유사성 검출 장치.
An input unit for receiving a similarity measurement request message of an application;
A file extracting unit extracting file information from a reference application and a comparison target application related to the message;
A file analysis unit comparing the reference application with the comparison target application based on the extracted file information and analyzing whether or not there is a match;
Including a similarity analysis unit for analyzing at least one or more of repackaging, forgery or similarity based on the analysis result information of the file analysis unit,
The file information may include at least one of a DEX signature, a developer signature, an APK internal file information, a class and method information in a DEX file.
Application similarity detection device.
삭제delete 제 1항에 있어서,
상기 파일 분석부는,
DEX 헤더에 삽입된 DEX 시그니처를 비교하여 일치 여부를 판단하는 DEX 시그니처 분석부와,
상기 DEX 시그니처가 일치하는 경우, 개발자 서명의 일치 여부를 판단하는 개발자 서명 분석부와,
APK 내부 파일 정보의 일치 여부를 비교하는 APK 파일 분석부
를 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 장치.
The method of claim 1,
The file analysis unit,
A DEX signature analyzer which compares the DEX signatures inserted in the DEX headers to determine a match;
If the DEX signature is matched, the developer signature analysis unit for determining whether or not the developer signature,
APK file analysis unit to compare whether the information in the APK internal file information
Apparatus for detecting similarity of the application, characterized in that it comprises a.
제 3항에 있어서,
상기 유사성 분석부는,
상기 DEX 시그니처가 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 것을 특징으로 하는 어플리케이션의 유사성 검출 장치.
The method of claim 3,
The similarity analysis unit,
And comparing the class and method information among the extracted file information, and determining the degree of similarity to determine whether the forgery is caused by another person.
제 3항에 있어서,
상기 유사성 분석부는,
상기 개발자 서명 및 상기 APK 내 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 기준 어플리케이션과 동일한 것으로 판단하고,
상기 개발자 서명은 일치하나, 상기 APK 내 파일 정보가 일치하지 않는 경우, 상기 비교 대상 어플리케이션은 상기 개발자의 리패키징 어플리케이션으로 판단하는 것을 특징으로 하는 어플리케이션의 유사성 검출 장치.
The method of claim 3,
The similarity analysis unit,
If the developer signature and the file information in the APK match, the comparison target application is determined to be the same as the reference application,
And the developer signature matches, but the file information in the APK does not match, the comparison target application determines that the developer is a repackaging application.
제 3항에 있어서,
상기 유사성 분석부는,
상기 개발자 서명이 일치하지 않으나, APK 내 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 개발자가 아닌 타인에 의한 리패키징 어플리케이션으로 판단하고,
상기 개발자 서명이 일치하지 않고, 또한 상기 APK 내 파일 정보도 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 것을 특징으로 하는 어플리케이션의 유사성 검출 장치.
The method of claim 3,
The similarity analysis unit,
If the developer signature does not match, but the file information in the APK matches, the comparison target application is determined to be a repackaging application by someone other than the developer,
When the developer signature does not match, and also the file information in the APK does not match, comparing the class and method information of the extracted file information, and measuring the similarity to determine whether the forgery by others Application similarity detection device.
제 1항에 있어서,
상기 유사성 검출 장치는,
상기 유사성 분석부로부터 전달 받은 유사성 분석 결과 정보를 사용자의 모바일 기기 또는 어플리케이션 스토어 서버로 전송하는 분석 결과 출력부
를 더 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 장치.
The method of claim 1,
The similarity detection device,
Analysis result output unit for transmitting the similarity analysis result information received from the similarity analysis unit to the user's mobile device or application store server
Apparatus for detecting similarity of the application, further comprising.
입력부에서, 어플리케이션의 유사성 측정 요청 메시지를 입력 받는 과정과,
파일 추출부에서, 상기 메시지와 관련된 기준 어플리케이션과 비교 대상 어플리케이션으로부터 파일 정보를 추출하는 과정과,
파일 분석부에서, 상기 추출된 파일 정보를 토대로 상기 기준 어플리케이션과 상기 비교 대상 어플리케이션을 비교하여 일치 여부를 분석하는 과정과,
유사성 분석부에서, 상기 일치 여부에 대한 분석 결과 정보를 토대로 리패키징, 위변조 여부, 또는 유사도 중 적어도 하나 이상을 분석하는 과정을 포함하되,
상기 파일 정보는, DEX 시그니처, 개발자 서명, APK 내 파일 정보, DEX 파일 내 클래스 및 메소드 정보 중 적어도 하나인 것을 특징으로 하는
어플리케이션의 유사성 검출 방법.
Receiving, at an input unit, a similarity measurement request message of an application;
Extracting, by a file extracting unit, file information from a reference application and a comparison target application associated with the message;
In the file analysis unit, comparing the reference application and the comparison target application on the basis of the extracted file information to analyze the match;
In the similarity analysis unit, including the process of analyzing at least one or more of repackaging, forgery, or similarity based on the analysis result information on the match,
The file information is at least one of a DEX signature, a developer signature, file information in the APK, class and method information in the DEX file.
How to detect similarity in applications.
삭제delete 제 8항에 있어서,
상기 일치 여부를 분석하는 과정은,
DEX 헤더에 삽입된 DEX 시그니처를 비교하여 일치 여부를 판단하는 과정과,
상기 DEX 시그니처가 일치하는 경우, 개발자 서명의 일치 여부를 판단하는 과정과,
APK 내부 파일 정보의 일치 여부를 비교하는 과정
을 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 방법.
The method of claim 8,
The process of analyzing the match is,
Comparing the DEX signatures inserted in the DEX headers to determine a match;
If the DEX signatures match, determining whether the developer signatures match;
The process of comparing the match of file information inside APK
The similarity detection method of an application comprising a.
제 10항에 있어서,
상기 유사도를 분석하는 과정은,
상기 DEX 시그니처가 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 과정
을 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 방법.
The method of claim 10,
The process of analyzing the similarity,
If the DEX signature does not match, comparing the class and method information in the extracted file information, and measuring the similarity to determine whether the forgery by others
The similarity detection method of an application comprising a.
제 10항에 있어서,
상기 유사도를 분석하는 과정은,
상기 개발자 서명 및 상기 APK 내 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 기준 어플리케이션과 동일한 것으로 판단하는 과정과,
상기 개발자 서명은 일치하나, 상기 APK 내 파일 정보가 일치하지 않는 경우, 상기 비교 대상 어플리케이션은 상기 개발자의 리패키징 어플리케이션으로 판단하는 과정
을 더 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 방법.
The method of claim 10,
The process of analyzing the similarity,
Determining that the comparison target application is the same as the reference application when the developer signature and the file information in the APK match;
If the developer signature matches, but the file information in the APK does not match, the comparison target application is determined to be the repackaging application of the developer
The similarity detection method of the application, further comprising.
제 10항에 있어서,
상기 유사도를 분석하는 과정은,
상기 개발자 서명이 일치하지 않으나, APK 내 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 개발자가 아닌 타인에 의한 리패키징 어플리케이션으로 판단하는 과정과,
상기 개발자 서명이 일치하지 않고 또한 상기 APK 내 파일 정보도 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 과정
을 더 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 방법.
The method of claim 10,
The process of analyzing the similarity,
If the developer signature does not match, but the file information in the APK matches, the comparison target application is determined to be a repackaging application by someone other than the developer,
When the developer signature does not match and also the file information in the APK does not match, comparing the class and method information of the extracted file information, and measuring the similarity to determine whether the forgery by others
The similarity detection method of the application, further comprising.
제 8항에 있어서,
상기 유사성 검출 방법은,
상기 유사도를 분석하는 과정을 통해 분석된 유사성 분석 결과 정보를 사용자의 모바일 기기 또는 어플리케이션 스토어 서버로 전송하는 과정
을 더 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 방법.
The method of claim 8,
The similarity detection method,
Transmitting similarity analysis result information analyzed by analyzing the similarity to a user's mobile device or an application store server
The similarity detection method of the application, further comprising.
KR1020110136167A 2011-12-16 2011-12-16 Apparatus and method for detecting similarity amongf applications KR101214893B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110136167A KR101214893B1 (en) 2011-12-16 2011-12-16 Apparatus and method for detecting similarity amongf applications
PCT/KR2012/007641 WO2013089340A1 (en) 2011-12-16 2012-09-24 Apparatus and method for detecting similarity between applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110136167A KR101214893B1 (en) 2011-12-16 2011-12-16 Apparatus and method for detecting similarity amongf applications

Publications (1)

Publication Number Publication Date
KR101214893B1 true KR101214893B1 (en) 2013-01-09

Family

ID=47840864

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110136167A KR101214893B1 (en) 2011-12-16 2011-12-16 Apparatus and method for detecting similarity amongf applications

Country Status (2)

Country Link
KR (1) KR101214893B1 (en)
WO (1) WO2013089340A1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226583A (en) * 2013-04-08 2013-07-31 北京奇虎科技有限公司 Method and device for recognizing advertisement plugin
US20140059690A1 (en) * 2012-02-16 2014-02-27 Nec Laboratories America, Inc. Method for Scalable Analysis of Android Applications for Security Vulnerability
KR101440234B1 (en) * 2013-05-27 2014-09-12 (주)스마일게이트엔터테인먼트 The method and system for managing program integrity, and computer-radable recording medium storing program integrity management program recored theron
KR20140114229A (en) * 2013-03-18 2014-09-26 삼성전자주식회사 Method and apparatus for mutual authenticating between applications
KR101518420B1 (en) * 2014-11-11 2015-05-07 주식회사 에스이웍스 Apparatus and method for managing apk file in a android platform
KR101540089B1 (en) * 2013-12-26 2015-08-06 주식회사 엔젠소프트 System and method for verifying counterfeit of application
KR101545272B1 (en) 2013-03-15 2015-08-20 주식회사 에스이웍스 Method for Binary Obfuscating of Dalvix Executable File in Android
CN104866734A (en) * 2014-02-25 2015-08-26 北京娜迦信息科技发展有限公司 DEX (Dalvik VM executes) file protecting method and device
WO2015126079A1 (en) * 2014-02-21 2015-08-27 주식회사 안랩 Method and apparatus for detecting repackaging
US20150302182A1 (en) * 2008-10-21 2015-10-22 Lookout, Inc. Comparing applications and assessing differences
KR101749209B1 (en) * 2015-05-22 2017-06-20 한양대학교 산학협력단 Method and apparatus for hiding information of application, and method and apparatus for executing application
WO2019135425A1 (en) * 2018-01-04 2019-07-11 라인플러스 주식회사 Open source software license verification method and system
US11436331B2 (en) 2020-01-16 2022-09-06 AVAST Software s.r.o. Similarity hash for android executables

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346568A (en) * 2013-07-26 2015-02-11 贝壳网际(北京)安全技术有限公司 Method and device for identifying malicious application program and mobile device
CN103699404B (en) * 2013-12-04 2016-11-23 四川长虹电器股份有限公司 A kind of method of the corresponding multiple prefabricated application programs of same movement different type of machines
CN104392181A (en) * 2014-11-18 2015-03-04 北京奇虎科技有限公司 SO file protection method and device and android installation package reinforcement method and system
CN104572085B (en) * 2014-12-23 2018-04-20 华为技术有限公司 The analysis method and device of application program
KR20180013156A (en) * 2016-07-28 2018-02-07 삼성전자주식회사 Electronic device and method for detecting similar application using the same
CN109933976B (en) * 2017-12-15 2023-05-09 深圳Tcl工业研究院有限公司 Android application similarity detection method, mobile terminal and storage device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050065015A (en) * 2003-12-24 2005-06-29 (주) 뉴스텍시스템즈 System and method for checking program plagiarism

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100369252B1 (en) * 2000-05-09 2003-01-24 삼성에스디에스 주식회사 Software test system and method
JP2009199172A (en) * 2008-02-19 2009-09-03 Hitachi Ltd Information processing system, method for specifying similar parts inside program, and program
JP4839424B2 (en) * 2008-12-15 2011-12-21 インターナショナル・ビジネス・マシーンズ・コーポレーション Method for supporting program analysis, and computer program and computer system thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050065015A (en) * 2003-12-24 2005-06-29 (주) 뉴스텍시스템즈 System and method for checking program plagiarism

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150302182A1 (en) * 2008-10-21 2015-10-22 Lookout, Inc. Comparing applications and assessing differences
US9563749B2 (en) * 2008-10-21 2017-02-07 Lookout, Inc. Comparing applications and assessing differences
US20140059690A1 (en) * 2012-02-16 2014-02-27 Nec Laboratories America, Inc. Method for Scalable Analysis of Android Applications for Security Vulnerability
US8875298B2 (en) * 2012-02-16 2014-10-28 Nec Laboratories America, Inc. Method for scalable analysis of android applications for security vulnerability
KR101545272B1 (en) 2013-03-15 2015-08-20 주식회사 에스이웍스 Method for Binary Obfuscating of Dalvix Executable File in Android
KR20140114229A (en) * 2013-03-18 2014-09-26 삼성전자주식회사 Method and apparatus for mutual authenticating between applications
KR102038964B1 (en) * 2013-03-18 2019-11-26 삼성전자주식회사 Method and apparatus for mutual authenticating between applications
CN103226583A (en) * 2013-04-08 2013-07-31 北京奇虎科技有限公司 Method and device for recognizing advertisement plugin
KR101440234B1 (en) * 2013-05-27 2014-09-12 (주)스마일게이트엔터테인먼트 The method and system for managing program integrity, and computer-radable recording medium storing program integrity management program recored theron
KR101540089B1 (en) * 2013-12-26 2015-08-06 주식회사 엔젠소프트 System and method for verifying counterfeit of application
KR20150098935A (en) 2014-02-21 2015-08-31 주식회사 안랩 Apparatus and method for detection of repackaging
WO2015126079A1 (en) * 2014-02-21 2015-08-27 주식회사 안랩 Method and apparatus for detecting repackaging
KR101579175B1 (en) * 2014-02-21 2015-12-21 주식회사 안랩 Apparatus and method for detection of repackaging
CN104866734A (en) * 2014-02-25 2015-08-26 北京娜迦信息科技发展有限公司 DEX (Dalvik VM executes) file protecting method and device
KR101518420B1 (en) * 2014-11-11 2015-05-07 주식회사 에스이웍스 Apparatus and method for managing apk file in a android platform
US9535942B2 (en) 2014-11-11 2017-01-03 SEWORKS, Inc. Apparatus and method for managing APK file in an android platform
KR101749209B1 (en) * 2015-05-22 2017-06-20 한양대학교 산학협력단 Method and apparatus for hiding information of application, and method and apparatus for executing application
WO2019135425A1 (en) * 2018-01-04 2019-07-11 라인플러스 주식회사 Open source software license verification method and system
JP2021516379A (en) * 2018-01-04 2021-07-01 ライン プラス コーポレーションLINE Plus Corporation License verification device
US11436331B2 (en) 2020-01-16 2022-09-06 AVAST Software s.r.o. Similarity hash for android executables

Also Published As

Publication number Publication date
WO2013089340A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
KR101214893B1 (en) Apparatus and method for detecting similarity amongf applications
CN104123493B (en) The safety detecting method and device of application program
JP5694473B2 (en) Repackaging application analysis system and method through risk calculation
KR101740256B1 (en) Apparatus for mobile app integrity assurance and method thereof
Xue et al. RootAgency: A digital signature-based root privilege management agency for cloud terminal devices
CN106845223B (en) Method and apparatus for detecting malicious code
Jiang et al. Pdiff: Semantic-based patch presence testing for downstream kernels
US10547626B1 (en) Detecting repackaged applications based on file format fingerprints
CN106055341A (en) Application installation package checking method and device
TW201403368A (en) Computing environment security method and electronic computing system
US10148440B2 (en) Binary code authentication
Tang et al. Detecting permission over-claim of android applications with static and semantic analysis approach
CN112115473A (en) Method for security detection of Java open source assembly
Lim et al. Structural analysis of packing schemes for extracting hidden codes in mobile malware
CN106709281A (en) Patch releasing and obtaining method and device
Choi et al. Large-scale analysis of remote code injection attacks in android apps
Qiu et al. Libcapsule: Complete confinement of third-party libraries in android applications
KR101410255B1 (en) System, device, method and computer readable recording medium for determining potential risk of application files
KR101382549B1 (en) Method for pre-qualificating social network service contents in mobile environment
Lee et al. Consortium blockchain based forgery android APK discrimination DApp using hyperledger composer
CN115048630A (en) Integrity verification method and device of application program, storage medium and electronic equipment
Kedziora et al. Android malware detection using machine learning and reverse engineering
CN113902458A (en) Malicious user identification method and device and computer equipment
Cam et al. Detect repackaged android applications by using representative graphs
Zhao et al. HFA-MD: An efficient hybrid features analysis based Android Malware Detection Method

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161219

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171218

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181217

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 8