WO2013089340A1 - Apparatus and method for detecting similarity between applications - Google Patents

Apparatus and method for detecting similarity between applications Download PDF

Info

Publication number
WO2013089340A1
WO2013089340A1 PCT/KR2012/007641 KR2012007641W WO2013089340A1 WO 2013089340 A1 WO2013089340 A1 WO 2013089340A1 KR 2012007641 W KR2012007641 W KR 2012007641W WO 2013089340 A1 WO2013089340 A1 WO 2013089340A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
similarity
information
match
signature
Prior art date
Application number
PCT/KR2012/007641
Other languages
French (fr)
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 주식회사 안랩
Publication of WO2013089340A1 publication Critical patent/WO2013089340A1/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

Definitions

  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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.
  • 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.
  • 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.
  • the similarity analyzer may compare class and method information among the extracted file information and determine similarity by measuring a similarity.
  • 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.
  • the comparison target application may be determined as the repackaging application of the developer.
  • 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 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.
  • 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.
  • 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.
  • the measuring of the similarity may include comparing class and method information in the extracted file information, and determining similarity by measuring the similarity if the DEX signature does not match. .
  • the process of measuring 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 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.
  • the process of measuring 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 measuring the similarity to a user's mobile device or an application store server.
  • the apparatus and method for detecting similarity of an application 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.
  • FIG. 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
  • FIG. 2 is a flowchart illustrating an operation procedure of an apparatus for detecting similarity according to an embodiment of the present invention
  • FIG. 3 is a diagram illustrating analysis result information output through a similarity detection apparatus according to an exemplary embodiment of the present invention.
  • Combinations of each block of the accompanying block diagram and each step of the flowchart may be performed by computer program instructions.
  • These computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment such that instructions executed through the processor of the computer or other programmable data processing equipment may not be included in each block or flowchart of the block diagram. It will create means for performing the functions described in each step.
  • 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.
  • instructions stored in may 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.
  • 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).
  • a specified logical function s.
  • the functions noted in the blocks or steps may occur out of order.
  • 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.
  • 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.
  • 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.
  • FIG. 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.
  • 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.
  • 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.
  • the similarity measurement request message may include an application as a comparison criterion and an application to be compared with this.
  • 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.
  • 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.
  • 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.
  • DEX signature SHA-1 information
  • developer signature information SHA-1 information
  • APK internal file information file list, hash information, etc.
  • DEX Header information and class and method information can be extracted.
  • each application 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.
  • 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.
  • 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.
  • 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.
  • the DEX signature comparison analysis result information including the mismatch analysis information may be transmitted to the similarity analysis unit 160.
  • 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.
  • the matched or inconsistent analysis result may be transmitted to the APK file analyzer 150 as developer signature comparison analysis result information.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the comparison result of the files in the APK matches, it can be determined as a repackaging application by another person.
  • 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.
  • 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.
  • 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.
  • 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.
  • FIG. 2 is a flowchart illustrating an operation procedure of a similarity detection apparatus according to an embodiment of the present invention.
  • 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.
  • 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.
  • 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.
  • step 208 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.
  • step 210 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.
  • the determined result information (similarity analysis result information) is transmitted to the analysis result output unit 170.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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. .
  • 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.
  • 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.
  • FIG. 3 is a diagram illustrating analysis result information output through a similarity detection apparatus according to an exemplary embodiment of the present invention.
  • 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.
  • similarity measurement requesters may accurately determine similarity between two applications through the result information.
  • an apparatus and method for detecting similarity of an application 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.

Landscapes

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

Abstract

The present invention relates to a technology for detecting similarity between applications, which measures the similarity between applications by utilizing information on the basis of the characteristics of the applications operating on the basis of an Android mobile platform by using analysis of a DEX signature, a developer's signature, and an inside APK file through file information extraction, and by using analysis and comparison of class and method files. According to the present invention, forgeries made by re-packaging Android applications and even similarity between apps can be relatively easily determined. Through this, the rights and interests of an application developer can be protected, and a user can precisely determine whether the corresponding application is normal.

Description

어플리케이션의 유사성 검출 장치 및 방법Apparatus and method for detecting similarity of 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.
상기한 바와 같이 안드로이드 어플리케이션의 유사도 검출을 위한 종래기술에 있어서, 패키지명을 이용한 분류 방법은 타인에 의해 손쉽게 리패키징 될 수 있으므로 정확한 분류 방법이 될 수 없으며, 또한 똑같은 구성 파일일 지라도 패키징 될 때의 상황에 따라 안드로이드 어플리케이션의 확장자인 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 measuring of the similarity may include comparing class and method information in the extracted file information, and determining similarity by measuring the similarity if the DEX signature does not match. .
그리고 상기 유사도를 측정하는 과정은, 상기 개발자 서명 및 상기 APK 내 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 기준 어플리케이션과 동일한 것으로 판단하는 과정과, 상기 개발자 서명은 일치하나, 상기 APK 내 파일 정보가 일치하지 않는 경우, 상기 비교 대상 어플리케이션은 상기 개발자의 리패키징 어플리케이션으로 판단하는 과정을 더 포함할 수 있다.The process of measuring 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 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 measuring 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 measuring 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 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은 본 발명의 실시예에 따른 어플리케이션의 유사성 검출 장치 구조를 도시한 블록도,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는 본 발명의 실시예에 따른 유사성 검출 장치의 동작 절차를 도시한 흐름도,2 is a flowchart illustrating an operation procedure of an apparatus for detecting similarity according to an embodiment of the present invention;
도 3은 본 발명의 실시예에 따른 유사성 검출 장치를 통해 출력된 분석 결과 정보를 도시한 도면.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 for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various forms, and only the embodiments are to make the disclosure of the present invention complete, and common knowledge in the art to which the present invention pertains. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In describing the embodiments of the present invention, if it is determined that a detailed description of a known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, terms to be described below are terms defined in consideration of functions in the embodiments of the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the contents throughout the specification.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Combinations of each block of the accompanying block diagram and each step of the flowchart may be performed by computer program instructions. These computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment such that instructions executed through the processor of the computer or other programmable data processing equipment may not be included in each block or flowchart of the block diagram. It will create means for performing the functions described in each step. 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.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from 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.

Claims (12)

  1. 기준 어플리케이션과 비교 대상 어플리케이션의 유사성 측정 요청 메시지를 입력 받는 입력부와,An input unit configured to receive a similarity measurement request message between the reference application and the comparison target application;
    상기 기준 어플리케이션과 비교 대상 어플리케이션으로부터 파일 정보를 추출하는 파일 추출부와,A file extraction unit for extracting file information from the reference application and the application to be compared;
    상기 추출된 파일 정보를 토대로 상기 기준 어플리케이션과 상기 비교 대상 어플리케이션을 비교하여 일치 여부를 분석하는 파일 분석부와,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,
    상기 파일 정보는, DEX 시그니처, 개발자 서명, APK 내부 파일 정보, DEX 파일 내 클래스 및 메소드 정보 중 적어도 하나인 것을 특징으로 하는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.
  2. 제 1 항에 있어서,The method of claim 1,
    상기 파일 분석부는,The file analysis unit,
    상기 기준 어플리케이션과 비교 대상 어플리케이션으로부터 추출된 상기 DEX 시그니처를 비교하여 일치 여부를 판단하는 DEX 시그니처 분석부와,A DEX signature analysis unit which compares the DEX signature extracted from the reference application and the application to be compared to determine whether the DEX signature matches;
    상기 DEX 시그니처가 일치하는 경우, 상기 기준 어플리케이션과 비교 대상 어플리케이션으로부터 추출된 개발자 서명의 일치 여부를 판단하는 개발자 서명 분석부와,A developer signature analysis unit determining whether or not the developer signature extracted from the reference application and the comparison target application is matched when the DEX signatures match;
    상기 기준 어플리케이션과 비교 대상 어플리케이션으로부터 추출된 상기 APK 내부 파일 정보의 일치 여부를 비교하는 APK 파일 분석부APK file analysis unit for comparing the match between the reference application and the APK internal file information extracted from the target application;
    를 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 장치.Apparatus for detecting similarity of the application, characterized in that it comprises a.
  3. 제 2 항에 있어서,The method of claim 2,
    상기 유사성 분석부는,The similarity analysis unit,
    상기 DEX 시그니처가 일치하지 않는 경우, 상기 기준 어플리케이션과 비교 대상 어플리케이션으로부터 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 것을 특징으로 하는 어플리케이션의 유사성 검출 장치.When the DEX signature does not match, similarity detection of the application, characterized in that for comparing the class and method information of the file information extracted from the reference application and the application to be compared, and measuring the similarity to determine whether the forgery by others Device.
  4. 제 2 항에 있어서,The method of claim 2,
    상기 유사성 분석부는,The similarity analysis unit,
    상기 개발자 서명 및 상기 APK 내부 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 기준 어플리케이션과 동일한 것으로 판단하고,If the developer signature and the APK internal file information match, it is determined that the comparison target application is the same as the reference application,
    상기 개발자 서명은 일치하나, 상기 APK 내부 파일 정보가 일치하지 않는 경우, 상기 비교 대상 어플리케이션은 상기 개발자의 리패키징 어플리케이션으로 판단하는 것을 특징으로 하는 어플리케이션의 유사성 검출 장치.If the developer signature matches, but the APK internal file information does not match, the comparison target application is determined to be a repackaging application of the developer, characterized in that the application similarity detection device.
  5. 제 2 항에 있어서,The method of claim 2,
    상기 유사성 분석부는,The similarity analysis unit,
    상기 개발자 서명이 일치하지 않으나, APK 내부 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 개발자가 아닌 타인에 의한 리패키징 어플리케이션으로 판단하고,If the developer signature does not match, but the information in the APK internal file matches, the comparison target application is determined to be a repackaging application by someone other than the developer,
    상기 개발자 서명이 일치하지 않고, 또한 상기 APK 내부 파일 정보도 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 것을 특징으로 하는 어플리케이션의 유사성 검출 장치.If the developer signature does not match, and also the information in the APK internal file 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 Application similarity detection device.
  6. 제 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.
  7. 입력부에서, 기준 어플리케이션과 비교 대상 어플리케이션의 유사성 측정 요청 메시지를 입력 받는 과정과,Receiving, by the input unit, a similarity measurement request message between the reference application and the comparison target application;
    파일 추출부에서, 상기 기준 어플리케이션과 비교 대상 어플리케이션으로부터 파일 정보를 추출하는 과정과,Extracting, by a file extracting unit, file information from the reference application and the application to be compared;
    파일 분석부에서, 상기 추출된 파일 정보를 토대로 상기 기준 어플리케이션과 상기 비교 대상 어플리케이션을 비교하여 일치 여부를 분석하는 과정과,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,
    상기 파일 정보는, DEX 시그니처, 개발자 서명, APK 내 파일 정보, DEX 파일 내 클래스 및 메소드 정보 중 적어도 하나인 것을 특징으로 하는 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.
  8. 제 7 항에 있어서,The method of claim 7, wherein
    상기 일치 여부를 분석하는 과정은,The process of analyzing the match is,
    상기 기준 어플리케이션과 비교 대상 어플리케이션으로부터 추출된 상기 DEX 헤더에 삽입된 DEX 시그니처를 비교하여 일치 여부를 판단하는 과정과,Comparing the DEX signature inserted into the DEX header extracted from the reference application and the application to be compared to determine whether or not there is a match;
    상기 DEX 시그니처가 일치하는 경우, 상기 기준 어플리케이션과 비교대상 어플리케이션으로부터 추출된 상기 개발자 서명의 일치 여부를 판단하는 과정과,Determining whether the developer signatures extracted from the reference application and the comparison target application match when the DEX signatures match;
    상기 기준 어플리케이션과 비교 대상 어플리케이션으로부터 추출된 상기 APK 내부 파일 정보의 일치 여부를 비교하는 과정Comparing or not matching the APK internal file information extracted from the reference application with the reference application;
    을 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 방법.The similarity detection method of an application comprising a.
  9. 제 8 항에 있어서,The method of claim 8,
    상기 유사도를 분석 하는 과정은,The process of analyzing the similarity,
    상기 DEX 시그니처가 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 과정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. 제 8 항에 있어서,The method of claim 8,
    상기 유사도를 분석하는 과정은,The process of analyzing the similarity,
    상기 개발자 서명 및 상기 APK 내부 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 기준 어플리케이션과 동일한 것으로 판단하는 과정과,Determining that the comparison target application is the same as the reference application when the developer signature and the APK internal file information match;
    상기 개발자 서명은 일치하나, 상기 APK 내부 파일 정보가 일치하지 않는 경우, 상기 비교 대상 어플리케이션은 상기 개발자의 리패키징 어플리케이션으로 판단하는 과정If the developer signature matches, but the APK internal file information 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.
  11. 제 8 항에 있어서,The method of claim 8,
    상기 유사도를 분석하는 과정은,The process of analyzing the similarity,
    상기 개발자 서명이 일치하지 않으나, APK 내부 파일 정보가 일치하는 경우, 상기 비교 대상 어플리케이션은 상기 개발자가 아닌 타인에 의한 리패키징 어플리케이션으로 판단하는 과정과,If the developer signature does not match, but the information in the APK internal file information, the comparison target application is determined to be a repackaging application by someone other than the developer;
    상기 개발자 서명이 일치하지 않고 또한 상기 APK 내부 파일 정보도 일치하지 않는 경우, 상기 추출된 파일 정보 중 클래스 및 메소드 정보를 비교하고, 유사도를 측정하여 타인에 의한 위변조 여부를 판단하는 과정If the developer signature does not match and the internal file information of 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.
  12. 제 7 항에 있어서,The method of claim 7, wherein
    상기 유사성 검출 방법은,The similarity detection method,
    상기 유사도를 측정하는 과정을 통해 분석된 유사성 분석 결과 정보를 사용자의 모바일 기기 또는 어플리케이션 스토어 서버로 전송하는 과정Transmitting similarity analysis result information analyzed by measuring the similarity to a user's mobile device or an application store server
    을 더 포함하는 것을 특징으로 하는 어플리케이션의 유사성 검출 방법.The similarity detection method of the application, further comprising.
PCT/KR2012/007641 2011-12-16 2012-09-24 Apparatus and method for detecting similarity between applications WO2013089340A1 (en)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2013089340A1 true WO2013089340A1 (en) 2013-06-20

Family

ID=47840864

Family Applications (1)

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

Country Status (2)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699404A (en) * 2013-12-04 2014-04-02 四川长虹电器股份有限公司 Method for enabling different types of equipment with same core to correspond to multiple prefabricated application programs
CN104346568A (en) * 2013-07-26 2015-02-11 贝壳网际(北京)安全技术有限公司 Method and device for identifying malicious application program and mobile device
CN104392181A (en) * 2014-11-18 2015-03-04 北京奇虎科技有限公司 SO file protection method and device and android installation package reinforcement method and system
CN104572085A (en) * 2014-12-23 2015-04-29 华为技术有限公司 Method and device for analyzing application program
WO2018021806A1 (en) * 2016-07-28 2018-02-01 Samsung Electronics Co., Ltd. Method of detecting similar applications and electronic device adapted to the same
CN109933976A (en) * 2017-12-15 2019-06-25 深圳Tcl工业研究院有限公司 A kind of Android application similarity detection method, mobile terminal and storage device

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043919B2 (en) * 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US8875298B2 (en) * 2012-02-16 2014-10-28 Nec Laboratories America, Inc. Method for scalable analysis of android applications for security vulnerability
WO2014142430A1 (en) 2013-03-15 2014-09-18 주식회사 에스이웍스 Dex file binary obfuscation method in android system
KR102038964B1 (en) * 2013-03-18 2019-11-26 삼성전자주식회사 Method and apparatus for mutual authenticating between applications
CN103226583B (en) * 2013-04-08 2017-07-28 北京奇虎科技有限公司 A kind of method and apparatus of ad plug-in identification
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
KR101579175B1 (en) * 2014-02-21 2015-12-21 주식회사 안랩 Apparatus and method for detection of repackaging
CN104866734B (en) * 2014-02-25 2018-10-09 北京娜迦信息科技发展有限公司 A kind of guard method of DEX file and device
KR101518420B1 (en) * 2014-11-11 2015-05-07 주식회사 에스이웍스 Apparatus and method for managing apk file in a 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
JP7119096B2 (en) * 2018-01-04 2022-08-16 ライン プラス コーポレーション license verification device
US11436331B2 (en) 2020-01-16 2022-09-06 AVAST Software s.r.o. Similarity hash for android executables
KR102697612B1 (en) * 2021-12-13 2024-08-23 한양대학교 산학협력단 Method and system for computing similarity of android applications by applying data mining and data science technique

Citations (4)

* 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
KR20050065015A (en) * 2003-12-24 2005-06-29 (주) 뉴스텍시스템즈 System and method for checking program plagiarism
JP2009199172A (en) * 2008-02-19 2009-09-03 Hitachi Ltd Information processing system, method for specifying similar parts inside program, and program
US20100153923A1 (en) * 2008-12-15 2010-06-17 International Business Machines Corporation Method, computer program and computer system for assisting in analyzing program

Patent Citations (4)

* 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
KR20050065015A (en) * 2003-12-24 2005-06-29 (주) 뉴스텍시스템즈 System and method for checking program plagiarism
JP2009199172A (en) * 2008-02-19 2009-09-03 Hitachi Ltd Information processing system, method for specifying similar parts inside program, and program
US20100153923A1 (en) * 2008-12-15 2010-06-17 International Business Machines Corporation Method, computer program and computer system for assisting in analyzing program

Cited By (8)

* 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
CN103699404A (en) * 2013-12-04 2014-04-02 四川长虹电器股份有限公司 Method for enabling different types of equipment with same core to correspond to multiple prefabricated application programs
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
CN104572085A (en) * 2014-12-23 2015-04-29 华为技术有限公司 Method and device for analyzing application program
CN104572085B (en) * 2014-12-23 2018-04-20 华为技术有限公司 The analysis method and device of application program
WO2018021806A1 (en) * 2016-07-28 2018-02-01 Samsung Electronics Co., Ltd. Method of detecting similar applications and electronic device adapted to the same
CN109933976A (en) * 2017-12-15 2019-06-25 深圳Tcl工业研究院有限公司 A kind of Android application similarity detection method, mobile terminal and storage device

Also Published As

Publication number Publication date
KR101214893B1 (en) 2013-01-09

Similar Documents

Publication Publication Date Title
WO2013089340A1 (en) Apparatus and method for detecting similarity between applications
WO2013077538A1 (en) Device and method for analyzing api-based application
WO2014088262A1 (en) Apparatus and method for detecting fraudulent/altered applications
WO2015056885A1 (en) Detection device and detection method for malicious android application
WO2018182126A1 (en) System and method for authenticating safe software
WO2011055945A2 (en) Apparatus and method for detecting malicious sites
CN104933366B (en) A kind of application program for mobile terminal processing method
WO2011102605A2 (en) Service system that diagnoses the vulnerability of a web service in real time mode and provides the result information thereof
CN106845223B (en) Method and apparatus for detecting malicious code
WO2012091400A1 (en) System and method for detecting malware in file based on genetic map of file
WO2019072008A1 (en) Security scanning method and apparatus for mini program, and electronic device
JP2015508549A (en) Identify Trojanized applications for mobile environments
KR20140037994A (en) Analyzing system of repackage application through calculation of risk and method thereof
CN113704781B (en) File secure transmission method and device, electronic equipment and computer storage medium
WO2011090329A2 (en) Apparatus, system, and method for preventing infection by malicious code
WO2019066222A1 (en) Method and system for identifying open source software package on basis of binary file
WO2018199366A1 (en) Method and system for detecting whether obfuscation has been applied to dex file and evaluating security
KR102518980B1 (en) Method, device and computer-readable recording medium for analyzing and processing malicious code for container images
WO2014168408A1 (en) Device, system and method for diagnosing malware on basis of cloud
US10685298B2 (en) Mobile application compatibility testing
WO2019135425A1 (en) Open source software license verification method and system
WO2018194196A1 (en) Method and system for detecting application of obfuscation to and evaluating security of elf file
CN115048630A (en) Integrity verification method and device of application program, storage medium and electronic equipment
WO2014010847A1 (en) Apparatus and method for diagnosing malicious applications
WO2015126079A1 (en) Method and apparatus for detecting repackaging

Legal Events

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

Ref document number: 12857530

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12857530

Country of ref document: EP

Kind code of ref document: A1