KR102086749B1 - Measuring Similarity System and Method of Android Application Using Text Mining - Google Patents

Measuring Similarity System and Method of Android Application Using Text Mining Download PDF

Info

Publication number
KR102086749B1
KR102086749B1 KR1020170014847A KR20170014847A KR102086749B1 KR 102086749 B1 KR102086749 B1 KR 102086749B1 KR 1020170014847 A KR1020170014847 A KR 1020170014847A KR 20170014847 A KR20170014847 A KR 20170014847A KR 102086749 B1 KR102086749 B1 KR 102086749B1
Authority
KR
South Korea
Prior art keywords
application file
similarity
bus mark
value
file
Prior art date
Application number
KR1020170014847A
Other languages
Korean (ko)
Other versions
KR20180089997A (en
Inventor
조성제
김규식
마수드
Original Assignee
단국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 단국대학교 산학협력단 filed Critical 단국대학교 산학협력단
Priority to KR1020170014847A priority Critical patent/KR102086749B1/en
Publication of KR20180089997A publication Critical patent/KR20180089997A/en
Application granted granted Critical
Publication of KR102086749B1 publication Critical patent/KR102086749B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 안드로이드 애플리케이션의 달빅실행파일(Dalvik Executable)에서 버스마크(Birthmark)추출하고, TF-IDF를 활용하여 애플리케이션 간의 유사도를 측정하는 기술에 관한 것으로, 원본 애플리케이션 파일의 버스마크 및 대조 애플리케이션 파일의 버스마크를 추출하고, 원본 애플리케이션 파일에서 대비 용어를 추출하는 특징추출부와, 대비 용어가 원본 애플리케이션 파일의 버스마크 및 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 버스마크의 포함 횟수를 벡터공간에 투영하여 원본 애플리케이션 파일과 대조 애플리케이션 파일의 유사도를 산출하는 유사도 산출부를 포함한다.The present invention relates to a technique of extracting a busmark from a Dalvik Executable of an Android application and measuring similarity between applications using TF-IDF. The feature extracting unit extracts a bus mark, extracts a contrast term from the original application file, and counts the number of times the contrast term is included in the bus mark of the original application file and the bus mark of the contrast application file. And a similarity calculator for projecting onto a vector space to calculate the similarity between the original application file and the control application file.

Description

텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템 및 방법 {Measuring Similarity System and Method of Android Application Using Text Mining}{Measuring Similarity System and Method of Android Application Using Text Mining}

본 발명은 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템 및 방법에 관한 것으로서, 보다 상세하게는 안드로이드 애플리케이션의 달빅실행파일(Dalvik Executable)에서 버스마크(Birthmark)추출하고, TF-IDF를 활용하여 애플리케이션 간의 유사도를 측정하는 기술에 관한 것이다.The present invention relates to a system and method for measuring similarity of an Android executable file using text mining, and more particularly, extracts a busmark from a Dalvik Executable of an Android application, and utilizes an TF-IDF application. It relates to a technique for measuring the similarity between the liver.

Comscore에 따르면, 미국의 안드로이드(Android) 사용자는 모바일 미디어를 사용하여 평균 하루에 2.8시간을 소비한다. 또한, Statista 보고서에 따르면 안드로이드 사용자는 2016년 6월에 220만 개가 넘는 애플리케이션을 선택할 수 있었다.According to Comscore, Android users in the United States spend an average of 2.8 hours per day using mobile media. In addition, according to a Statista report, Android users were able to select more than 2.2 million applications in June 2016.

이러한 애플리케이션은 맬웨어, 바이러스, 불법 도용 보안 서비스, Dex2Jar, apktool 및 jd-gui와 같은 툴을 통해 분석 및 리버스 엔지니어링을 하기가 비교적 용이하기 때문에 불법적으로 애플리케이션을 복사하거나 변형하는 데에도 사용되고 있다.These applications are also used to illegally copy or modify applications because they are relatively easy to analyze and reverse engineer with tools such as malware, viruses, anti-theft security services, Dex2Jar, apktool, and jd-gui.

종래의 안드로이드 애플리케이션 불법복제 탐지에 대한 기술은 크게 소스코드 레벨에서 복제를 탐지하거나, 실행코드 레벨에서 복제를 탐지하는 방법이 사용되었다. 일반적으로 비교대상 애플리케이션의 소스코드를 확보하는 것은 매우 어렵다. 따라서 실행파일만을 가지고 유사도를 분석하는 방법이 제안되었다. 실행파일로 유사도를 분석하는 방법은 해당 애플리케이션의 고유한 특징인 버스마크(Birthmark)를 추출하여 비교하는 것으로 실시된다. 버스마크에 이용되는 요소에는 JAVA 클래스 파일에서 사용되는 지역변수, 자바 메소드 호출 순서, 클래스 상속구조, 애플리케이션이 사용하는 클래스 등이 존재한다. 하지만, 안드로이드 애플리케이션은 구글에서 제공하는 API 및 클래스들을 동일하게 사용하는 경우가 많기 때문에 상기 요소들을 버스마크로 활용하여 애플리케이션 간의 유사도를 측정하는 것은 저작권 분쟁의 증거로 인정되기 어려웠다.The conventional technology for detecting the piracy of the Android application has largely used a method of detecting a copy at the source code level or a copy at the executable code level. In general, it is very difficult to obtain the source code of the application to be compared. Therefore, a method of analyzing similarity using only executable files has been proposed. The method of analyzing similarity with an executable file is performed by extracting and comparing a busmark, which is a unique feature of the application. Elements used in busmarks include local variables used in JAVA class files, Java method call order, class inheritance structure, and classes used by applications. However, since Android applications often use the same APIs and classes provided by Google, measuring the similarity between applications using the above elements as a bus mark was difficult to be recognized as evidence of copyright dispute.

상기의 문제를 극복하기 위해 애플리케이션을 디컴파일하여 소스코드 간의 비교를 하는 경우도 있으나, 이 경우 디컴파일 과정에서 오류발생 및 잘못된 변환의 가능성이 존재하기 때문에 증거로 인정되기 어려운 문제가 있다. 또한, 디컴파일이 성공적으로 수행되더라도, 최적화 등 다양한 요인에 의해 본래 소스코드로 완전히 복원되는 것은 매우 어렵다.In order to overcome the above problem, there is a case where the application is decompiled and the source code is compared, but in this case, there is a problem that is hardly recognized as evidence because of the possibility of error occurrence and wrong conversion during the decompile process. In addition, even if the decompilation is successful, it is very difficult to completely restore the original source code due to various factors such as optimization.

또한, 실행코드 레벨에서 직접 비교하는 방법은 opcode(Dalvik bytecode 상에서 수행되는 명령어)만을 추출하여 비교하는데, 이 기법은 악성 애플리케이션 탐지 시 유사도 측정 시간의 단축을 위해 fuzzy 해시 알고리즘을 이용한다. 하지만 이 기법은 fuzzy 해시 알고리즘의 오류 등의 가능성이 존재하기 때문에 저작권 분쟁 시 증거자료로 인정받지 못하는 문제가 있다.In addition, the method of direct comparison at the execution code level extracts and compares only opcodes (commands executed on Dalvik bytecode). This technique uses a fuzzy hash algorithm to reduce similarity measurement time when detecting malicious applications. However, this technique is not recognized as evidence in copyright disputes because of the possibility of errors in fuzzy hash algorithm.

한국등록특허공보 제10-1520671호Korean Registered Patent Publication No. 10-1520671

이에 본 발명은 상기와 같은 종래의 제반 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 안드로이드 애플리케이션의 달빅실행파일(Dalvik Executable)에서 버스마크(Birthmark)추출하고, TF-IDF를 활용하여 애플리케이션 간의 유사도를 측정하는 기술을 제공하기 위한 것이다.Accordingly, the present invention has been proposed to solve the above-mentioned conventional problems, and an object of the present invention is to extract a busmark from the Dalvik Executable of the Android application, and to utilize the TF-IDF application. It is to provide a technique for measuring the similarity between the liver.

상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템은, 원본 애플리케이션 파일의 버스마크(Birthmark) 및 대조 애플리케이션 파일의 버스마크를 추출하고, 상기 원본 애플리케이션 파일에서 대비 용어를 추출하는 특징추출부와, 상기 대비 용어가 상기 원본 애플리케이션 파일의 버스마크 및 상기 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 상기 버스마크의 포함 횟수를 벡터공간에 투영하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도를 산출하는 유사도 산출부를 포함하는 것을 특징으로 한다.In order to achieve the above object, the similarity measurement system of an android executable file using text mining according to the technical idea of the present invention extracts a busmark of a source application file and a busmark of a control application file, A feature extraction unit for extracting a contrast term from an application file, and a number of times the contrast term is included in a bus mark of the original application file and a bus mark of the contrast application file, and the number of times of inclusion of the bus mark in a vector space. And a similarity calculator for projecting and calculating a similarity between the original application file and the matching application file.

또한, 상기 버스마크는 달빅실행파일(Dalvik Executable)에서 추출되는 것을 특징으로 할 수 있다.The bus mark may be extracted from a Dalvik Executable.

또한, 상기 버스마크는 상기 달빅실행파일의 헤더에서 문자열 목록(String List), 클래스 목록(Class List), 메소드 목록(Method List) 중 적어도 어느 하나에서 추출되는 것을 특징으로 할 수 있다.The bus mark may be extracted from at least one of a string list, a class list, and a method list from a header of the Dalvik executable.

또한, 상기 유사도 산출부는, 상기 대비 용어가 상기 원본 애플리케이션 파일의 버스마크 및 상기 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 개수된 값을 정규화 하는 TF산출부를 포함하는 것을 특징으로 할 수 있다.The similarity calculator may include a TF calculation unit that counts the number of times the contrast term is included in the bus mark of the original application file and the bus mark of the control application file and normalizes the counted values. have.

또한, 상기 TF산출부는, 상기 대비 용어(t)가 상기 대조 애플리케이션 파일의 버스마크(p)에 포함된 횟수(

Figure 112017011097617-pat00001
)를 연산식
Figure 112017011097617-pat00002
에 대입하여 TF 값(
Figure 112017011097617-pat00003
)을 산출하는 것을 특징으로 할 수 있다.In addition, the TF calculation unit, the number of times the contrast term (t) is included in the bus mark (p) of the control application file (
Figure 112017011097617-pat00001
Expression
Figure 112017011097617-pat00002
Is assigned to the TF value (
Figure 112017011097617-pat00003
) May be calculated.

또한, 상기 유사도 산출부는, 상기 대비 용어(t), 상기 대조 애플리케이션 파일의 버스마크(p) 및 모든 버스마크의 집합(B)를 연산식

Figure 112017011097617-pat00004
에 대입하여 IDF 값(
Figure 112017011097617-pat00005
)을 산출하는 IDF산출부를 더 포함하는 것을 특징으로 할 수 있다.In addition, the similarity calculator calculates a comparison term (t), a bus mark (p) of the matching application file and a set (B) of all bus marks.
Figure 112017011097617-pat00004
By assigning it to the IDF value (
Figure 112017011097617-pat00005
It may be characterized in that it further comprises an IDF calculation unit for calculating.

또한, 상기 유사도 산출부는, 상기 TF 값과 상기 IDF 값의 곱하여 TF-IDF 값을 산출하는 벡터산출부를 더 포함하는 것을 특징으로 할 수 있다.The similarity calculator may further include a vector calculator that calculates a TF-IDF value by multiplying the TF value by the IDF value.

또한, 상기 유사도 산출부는, 상기 대비 용어(t), 상기 원본 애플리케이션 파일의 버스마크(q), 상기 대조 애플리케이션 파일의 버스마크(p), 상기 원본 애플리케이션 파일에 대한 TF-IDF 값(

Figure 112017011097617-pat00006
) 및 상기 대조 애플리케이션 파일에 대한 TF-IDF 값(
Figure 112017011097617-pat00007
)을 연산식
Figure 112017011097617-pat00008
에 대입하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도(
Figure 112017011097617-pat00009
)를 산출하는 코사인(cosine)산출부를 더 포함하는 것을 특징으로 할 수 있다.In addition, the similarity calculation unit, the contrast term (t), the bus mark (q) of the original application file, the bus mark (p) of the reference application file, the TF-IDF value for the original application file (
Figure 112017011097617-pat00006
) And the TF-IDF value for the matching application file (
Figure 112017011097617-pat00007
Expression
Figure 112017011097617-pat00008
The similarity between the original application file and the control application file by assigning to
Figure 112017011097617-pat00009
It may be characterized in that it further comprises a cosine (cosine) calculation unit for calculating.

또한, 상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 방법은, 특징추출부가 원본 애플리케이션 파일의 버스마크(Birthmark) 및 대조 애플리케이션 파일의 버스마크를 추출하고, 상기 원본 애플리케이션 파일에서 대비 용어를 추출하는 단계, 유사도 산출부가 상기 대비 용어가 상기 원본 애플리케이션 파일의 버스마크 및 상기 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 상기 버스마크의 포함 횟수를 벡터공간에 투영하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도를 산출하는 단계를 포함하는 것을 특징으로 한다.In addition, in order to achieve the above object, the method of measuring similarity of the android executable file using text mining according to the technical idea of the present invention, the feature extracting the busmark (Birthmark) of the original application file and the busmark of the control application file Extracting a contrast term from the original application file, and a similarity calculator counts the number of times the contrast term is included in a bus mark of the original application file and a bus mark of the control application file, and includes the bus mark. And calculating the similarity between the original application file and the control application file by projecting the number of times into a vector space.

또한, 상기 유사도 산출부가 유사도를 산출하는 단계는, TF산출부가 상기 대비 용어가 상기 원본 애플리케이션 파일의 버스마크 및 상기 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 개수된 값을 정규화 하여 TF 값을 산출하는 단계, IDF산출부가 모든 버스마크의 집합에 대응되는 상기 대조 애플리케이션 파일의 버스마크 수 및 상기 대조 애플리케이션 파일의 버스마크에 대응되는 상기 대비 용어의 수로 IDF 값을 산출하는 단계, 벡터산출부가 상기 TF 값과 상기 IDF 값의 곱하여 TF-IDF 값을 산출하는 단계, 코사인(cosine)산출부가 상기 원본 애플리케이션 파일에 대한 TF-IDF 값 및 상기 대조 애플리케이션 파일에 대한 TF-IDF 값으로 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도(

Figure 112017011097617-pat00010
)를 산출하는 단계를 포함하는 것을 특징으로 할 수 있다.In addition, the step of calculating the similarity of the similarity calculator, the TF calculation unit counts the number of times the contrast term is included in the bus mark of the original application file and the bus mark of the control application file, and normalizes the counted value TF Calculating an IDF value by an IDF calculating unit calculating an IDF value by the number of busmarks of the matching application file corresponding to the set of all busmarks and the number of contrast terms corresponding to the busmarks of the matching application file; Calculating a TF-IDF value by multiplying the TF value by the IDF value, and a cosine calculation unit uses the TF-IDF value for the original application file and the TF-IDF value for the matching application file. The similarity between the file and the matching application file (
Figure 112017011097617-pat00010
It can be characterized in that it comprises the step of calculating).

또한, 상기 TF산출부는, 상기 대비 용어(t)가 상기 대조 애플리케이션 파일의 버스마크(p)에 포함된 횟수(

Figure 112017011097617-pat00011
)를 연산식
Figure 112017011097617-pat00012
에 대입하여 TF 값(
Figure 112017011097617-pat00013
)을 산출하는 것을 특징으로 할 수 있다.In addition, the TF calculation unit, the number of times the contrast term (t) is included in the bus mark (p) of the control application file (
Figure 112017011097617-pat00011
Expression
Figure 112017011097617-pat00012
Is assigned to the TF value (
Figure 112017011097617-pat00013
) May be calculated.

또한, 상기 IDF산출부는, 상기 대비 용어(t), 상기 대조 애플리케이션 파일의 버스마크(p) 및 모든 버스마크의 집합(B)를 연산식

Figure 112017011097617-pat00014
에 대입하여 IDF 값(
Figure 112017011097617-pat00015
)을 산출하는 것을 특징으로 할 수 있다.Further, the IDF calculation unit calculates the comparison term (t), the bus mark (p) of the matching application file and the set (B) of all the bus marks.
Figure 112017011097617-pat00014
By assigning it to the IDF value (
Figure 112017011097617-pat00015
) May be calculated.

또한, 상기 코사인산출부는, 상기 대비 용어(t), 상기 원본 애플리케이션 파일의 버스마크(q), 상기 대조 애플리케이션 파일의 버스마크(p), 상기 원본 애플리케이션 파일에 대한 TF-IDF 값(

Figure 112017011097617-pat00016
) 및 상기 대조 애플리케이션 파일에 대한 TF-IDF 값(
Figure 112017011097617-pat00017
)을 연산식
Figure 112017011097617-pat00018
에 대입하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도(
Figure 112017011097617-pat00019
)를 산출하는 것을 특징으로 할 수 있다.In addition, the cosine calculation unit, the contrast term (t), the bus mark (q) of the original application file, the bus mark (p) of the control application file, the TF-IDF value for the original application file (
Figure 112017011097617-pat00016
) And the TF-IDF value for the matching application file (
Figure 112017011097617-pat00017
Expression
Figure 112017011097617-pat00018
The similarity between the original application file and the control application file by assigning to
Figure 112017011097617-pat00019
) May be calculated.

본 발명에 의한 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템 및 방법에 따르면 다음과 같은 효과가 있게 된다.According to the system and method for measuring similarity of an android executable file using text mining according to the present invention, the following effects are obtained.

첫째, 본 발명은 종래의 소스 코드를 비교하는 방식이 아닌, 실행 파일의 유사도를 직접 비교하기 때문에 리버스 엔지니어링 프로세스가 필요하지 않다. 따라서 리버스 엔지니어링의 실패에 의한 비교 불가 및 시간 지연으로부터 자유로울 수 있게 된다.First, the present invention does not require a reverse engineering process because it compares the similarity of executable files directly, rather than comparing conventional source code. This frees you from the incompatibilities and time delays caused by reverse engineering failures.

둘째, 동일 기능을 구현하는 애플리케이션은, 공통 문자열, 공통 API 호출 및 공통 클래스가 다수 존재하기 때문에 본 발명이 종래의 소스 코드 기반 유사도 측정보다 높은 정확도를 가진다.Second, an application that implements the same function has a higher accuracy than the conventional source code based similarity measurement because there are many common strings, common API calls, and common classes.

셋째, 불법복제가 의심되는 애플리케이션의 비교 시 디컴파일 과정이 필요하지 않고, 실행코드 수준에서 유사성을 측정하기 때문에 저작권 분쟁 시 객관적인 자료로 활용될 수 있게 된다.Third, there is no need to decompile when comparing the applications that are suspected of illegal copying, and because similarity is measured at the execution code level, it can be used as an objective material in copyright disputes.

도 1은 본 발명의 일 실시예에 따른 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템의 구성도.
도 2는 본 발명의 일 실시예에서 버스마크(Birthmark)의 추출을 나타낸 예시 도면.
도 3은 본 발명의 일 실시예에 따른 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 방법의 실행 순서도.
1 is a block diagram of a system for measuring similarity of an android executable file using text mining according to an embodiment of the present invention.
2 is an exemplary diagram showing extraction of a busmark in an embodiment of the present invention.
3 is an execution flowchart of a method for measuring similarity of an android executable file using text mining according to an embodiment of the present invention.

첨부한 도면을 참조하여 본 발명의 실시예들에 의한 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템 및 방법에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.With reference to the accompanying drawings will be described in detail the system and method for measuring similarity of the Android executable file using text mining according to embodiments of the present invention. As the inventive concept allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to a specific disclosed form, it should be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for similar elements.

또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

본 발명의 실시예에 따른 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템은 안드로이드 애플리케이션의 불법 복제 여부를 판단하기 위한 것으로, 안드로이드 애플리케이션의 달빅실행파일(Dalvik Executable, DEX)에서 버스마크(Birthmark)를 추출하고, 버스마크에 대비 용어가 포함된 횟수를 벡터공간에 투영하는 방식으로 비교하여 두 애플리케이션의 유사도를 판단한다.A system for measuring similarity of an Android executable file using text mining according to an embodiment of the present invention is for determining whether an Android application is illegally copied, and a busmark in a Dalvik Executable (DEX) of the Android application. The similarity of the two applications is determined by comparing the number of times the contrast mark is included in the bus mark in a vector space.

도 1을 참조하면, 본 발명의 일 실시예에 따른 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템은 원본 애플리케이션 파일의 버스마크(Birthmark) 및 대조 애플리케이션 파일의 버스마크를 추출하는 특징추출부(120)를 포함한다.Referring to FIG. 1, the system for measuring similarity of an android executable file using text mining according to an embodiment of the present invention extracts a busmark of a source application file and a busmark of a control application file 120. ).

버스마크는 소프트웨어의 고유한 특성을 반영한다. 버스마크의 개념은 Java 클래스(classes)와 관련하여 고려된다. 원본 애플리케이션의 클래스 파일이 대조 애플리케이션의 클래스 파일과 동일한 버스마크를 가진다면, 대조 애플리케이션 파일은 원본 애플리케이션 파일의 복사본 일 가능성이 높다. 대조 애플리케이션의 클래스 파일은 일반적으로 새로운 기능을 구현하기 위해 다른 클래스도 복합적으로 사용한다.Busmarks reflect the inherent characteristics of the software. The concept of busmarks is considered in relation to Java classes. If the class file of the original application has the same busmark as the class file of the control application, then the control application file is likely a copy of the original application file. The class file for a control application typically uses a combination of other classes to implement new functionality.

대조 애플리케이션 파일에서 사용되는 클래스는 슈퍼클래스(superclasses), 메소드(methods)의 반환 값 및 인수, 메소드 호출 및 기타 유형을 가진다. 원본 애플리케이션의 클래스를 수정하는 것은 클래스 간의 종속성으로 인해 용이하지 않다. 특히, 잘 알려진 클래스인 경우 크래커(crackers)가 클래스를 변경하는 것이 더욱 곤란하다. 따라서, 어느 한(원본 또는 대조) 애플리케이션 파일에서 사용 된 클래스 세트는 해당 애플리케이션 파일에 대한 고유의 버스마크로 간주 될 수 있다.The classes used in the control application file have superclasses, return values and arguments of methods, method invocations, and other types. Modifying the class of the original application is not easy due to the dependencies between the classes. In particular, for well-known classes, it is more difficult for crackers to change the class. Thus, a set of classes used in either (original or collated) application file may be considered a unique busmark for that application file.

또한, 메소드(methods) 및 문자열(strings)과 같은 다른 특성도 애플리케이션의 버스마크로 간주 될 수 있다.In addition, other properties such as methods and strings can also be considered as bus marks for the application.

버스마크는 달빅실행파일(Dalvik Executable, DEX)에서 추출된다. 달빅실행파일은 APK 파일과 같은 안드로이드 애플리케이션에 사용되는 실행 코드의 한 형식이다. 클래스는 Dalvik Virtual Machine에서 이해할 수 있는 달빅실행파일 형식으로 컴파일된다.The bus mark is extracted from the Dalvik Executable (DEX). Dalvik executables are a form of executable code used in Android applications such as APK files. The class is compiled into a Dalvik executable format that is understood by the Dalvik Virtual Machine.

버스마크는 달빅실행파일의 헤더에서 문자열 목록(String List), 클래스 목록(Class List), 메소드 목록(Method List) 중 적어도 어느 하나에서 추출되는 것으로 실시될 수 있다(도 2 참조). 문자열 목록에는 문자열 상수, 클래스 이름 및 변수 이름과 같은 모든 문자열의 길이와 오프셋이 저장되는데, 그 내용에는 메뉴, 다이얼로그, 입출력 메시지 및 오류 메시지 등 사용자인터페이스(UI)와 관련 있는 정보가 포함된다. 메소드 목록에는 애플리케이션에서 사용하는 메소드 이름이 포함된다. 클래스 문자열은 달빅실행파일에 정의 된 모든 클래스의 정보가 포함된다. 클래스 및 메소드 목록에는 공통적으로 프로그램의 기능과 관련된 정보가 포함된다. 메소드는 API(Application Programming Interface)와 동일하다. 시스템(또는 플렛폼)에서 제공하는 메소드 및 프로그래머가 정의한 메소드는 동시 또는 별도로 고려될 수 있다. APK 파일은 별도의 기능을 기반으로 구성된 3개(문자열, 클래스, 메소드)의 서로 다른 버스마크를 가진다.The bus mark may be implemented by being extracted from at least one of a string list, a class list, and a method list from the header of the Dalvik executable file (see FIG. 2). The string list stores the length and offset of all strings, such as string constants, class names, and variable names, which include information related to the user interface (UI), such as menus, dialogs, input / output messages, and error messages. The method list contains the method names used by the application. The class string contains the information of all classes defined in the Dalvik executable. Class and method lists commonly contain information related to program functionality. The method is the same as the API (Application Programming Interface). Methods provided by the system (or platform) and methods defined by the programmer can be considered simultaneously or separately. An APK file has three different busmarks (strings, classes, and methods) that are organized based on separate features.

또한, 특징추출부(120)는 원본 애플리케이션 파일에서 대비 용어를 추출한다. 대비 용어는 문자열 목록에 포함된 메뉴, 다이얼로그, 대화창의 메시지, 클래스의 이름, 메소드의 이름 등 코드의 일부 문자열이 선택적으로 추출되어 이용되며, 다수개의 대비 용어가 추출되는 것이 바람직하다.In addition, the feature extractor 120 extracts a contrast term from the original application file. Contrast terms are used by selectively extracting some strings of code such as menus, dialogs, dialog messages, class names, and method names included in the string list, and a plurality of contrast terms are preferably extracted.

또한, 본 발명의 일 실시예는 대비 용어가 상기 원본 애플리케이션 파일의 버스마크 및 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 버스마크의 포함 횟수를 벡터공간에 투영하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도를 산출하는 유사도 산출부(140)를 포함한다.In addition, an embodiment of the present invention is to compare the number of times the contrast term is included in the bus mark of the original application file and the bus mark of the control application file, and projecting the number of times of inclusion of the bus mark in the vector space and the original application file; A similarity calculating unit 140 for calculating a similarity of the control application file.

본 발명의 일 실시예는 n차원 벡터로 버스마크를 나타낸다. 각 차원은 대비 용어에 해당하고, 차원 값은 용어의 가중치를 나타낸다. 가중치는 대비 용어의 빈도(TF)와 역 문서 빈도(IDF)의 곱인 TF-IDF로 산출된다. TF는 버스마크에 대비 용어가 나타나는 횟수를 나타낸다. IDF는 모든 버스마크에서 흔히 또는 희귀 한 정도를 고려하여 대비 용어의 중요성을 나타낸다.One embodiment of the present invention represents a bus mark as an n-dimensional vector. Each dimension corresponds to a contrast term, and the dimension value represents the weight of the term. The weight is calculated as TF-IDF, which is the product of the contrast term's frequency (TF) and the inverse document frequency (IDF). TF indicates the number of times the term appears in the bus mark. The IDF indicates the importance of contrast terms in the degree to which they are common or rare in all busmarks.

대조 애플리케이션 파일의 버스마크의 대비 용어에 대한 높은 TF-IDF 값은 대비 용어가 버스마크들 사이에서 공통적이지는 않지만 대조 애플리케이션 파일의 버스마크에서 중복성이 높다는 것을 나타낸다.The high TF-IDF value for the contrast term of the control mark in the control application file indicates that the contrast term is not common among the bus marks but has high redundancy in the bus mark of the control application file.

유사도 산출부(140)는 대비 용어가 원본 애플리케이션 파일의 버스마크 및 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하는 TF산출부(142)를 포함한다. 일반적으로 각 애플리케이션의 크기는 서로 상이하다. 따라서 대용량 애플리케이션 파일의 버스마크에서 용어의 빈도는 저용량 애플리케이션 파일의 버스마크에서의 빈도보다 매우 클 수 있다. 따라서, 개수된 값을 정규화해야 할 필요가 있다.The similarity calculator 140 includes a TF calculator 142 for counting the number of times the contrast term is included in the bus mark of the original application file and the bus mark of the control application file. In general, the size of each application is different. Thus, the frequency of terms in the busmark of a large application file may be much greater than the frequency in the busmark of a low application file. Therefore, it is necessary to normalize the counted values.

개수된 값의 정규화를 위해, TF산출부(142)는 대비 용어(t)가 대조 애플리케이션 파일의 버스마크(p)에 포함된 횟수(

Figure 112017011097617-pat00020
)를 연산식(1)에 대입하여 TF 값(
Figure 112017011097617-pat00021
)을 산출한다.In order to normalize the counted values, the TF calculation unit 142 determines the number of times the contrast term t is included in the bus mark p of the control application file.
Figure 112017011097617-pat00020
) Into Calculation (1), the TF value (
Figure 112017011097617-pat00021
) Is calculated.

(1)

Figure 112017011097617-pat00022
(One)
Figure 112017011097617-pat00022

또한, 유사도 산출부(140)는 대비 용어(t), 대조 애플리케이션 파일의 버스마크(p) 및 모든 버스마크의 집합(B)를 연산식(2)에 대입하여 IDF 값(

Figure 112017011097617-pat00023
)을 산출하는 IDF산출부(144)를 포함한다.In addition, the similarity calculator 140 substitutes the contrast term (t), the bus mark (p) of the collation application file, and the set (B) of all the bus marks into the equation (2) to determine the IDF value (
Figure 112017011097617-pat00023
It includes an IDF calculation unit 144 for calculating ().

(2)

Figure 112017011097617-pat00024
(2)
Figure 112017011097617-pat00024

또한, 유사도 산출부(140)는 TF 값과 IDF 값의 곱하여 TF-IDF 값을 산출하는 벡터산출부(146)를 더 포함한다.In addition, the similarity calculator 140 further includes a vector calculator 146 that calculates the TF-IDF value by multiplying the TF value by the IDF value.

또한, 유사도 산출부(140)는 대비 용어(t),원본 애플리케이션 파일의 버스마크(q), 대조 애플리케이션 파일의 버스마크(p), 원본 애플리케이션 파일에 대한 TF-IDF 값(

Figure 112017011097617-pat00025
) 및 대조 애플리케이션 파일에 대한 TF-IDF 값(
Figure 112017011097617-pat00026
)을 연산식(3)에 대입하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도(
Figure 112017011097617-pat00027
)를 산출하는 코사인(cosine) 산출부(148)를 포함한다.In addition, the similarity calculator 140 may include a contrast term (t), a bus mark (q) of the original application file, a bus mark (p) of the control application file, and a TF-IDF value for the original application file (
Figure 112017011097617-pat00025
) And the TF-IDF value for the control application file (
Figure 112017011097617-pat00026
) Into equation (3), the similarity between the original application file and the control application file (
Figure 112017011097617-pat00027
It includes a cosine (cosine) calculation unit 148 for calculating ().

(3)

Figure 112017011097617-pat00028
(3)
Figure 112017011097617-pat00028

코사인산출부(148)를 통해 산출된 유사도의 값은 0 내지 1 사이의 값이 도출되며, 유사도가 높을수록 1에 인접한 값이 도출된다.The value of the similarity calculated through the cosine calculation unit 148 may be a value between 0 and 1, and the higher the similarity, the closer to 1.

이어서, 본 발명의 일 실시예에 따른 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 방법을 설명한다.Next, a method of measuring similarity of an android executable file using text mining according to an embodiment of the present invention will be described.

도 3을 참조하면, 본 발명의 일 실시예에 따른 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 방법을 실시하기 전, 먼저 원본 애플리케이션 파일과 불법 복제 여부를 판단할 대조 애플리케이션 파일을 준비한다(S100). 이어서, 특징추출부(120)가 원본 애플리케이션 파일의 버스마크 및 대조 애플리케이션 파일의 버스마크를 추출하고, 상기 원본 애플리케이션 파일에서 대비 용어를 추출한다(S200).Referring to FIG. 3, before performing a method for measuring similarity of an android executable file using text mining according to an embodiment of the present invention, a control application file is first prepared to determine whether the original application file is illegal or not (S100). . Subsequently, the feature extractor 120 extracts a bus mark of the original application file and a bus mark of the collation application file and extracts a contrast term from the original application file (S200).

또한, 유사도 산출부(140)가 대비 용어가 원본 애플리케이션 파일의 버스마크 및 상기 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 버스마크의 포함 횟수를 벡터공간에 투영하여 원본 애플리케이션 파일과 대조 애플리케이션 파일의 유사도를 산출한다. 구체적으로, 유사도 산출부(140)가 유사도를 산출하는 단계는 TF산출부(142)가 원본 애플리케이션 파일의 버스마크 및 대조 애플리케이션 파일의 버스마크에 대비 용어가 포함된 횟수를 개수하고, 개수된 값을 정규화 하여 TF 값을 산출하는 단계(S320), IDF산출부(144)가 모든 버스마크의 집합에 대응되는 대조 애플리케이션 파일의 버스마크 수 및 대조 애플리케이션 파일의 버스마크에 대응되는 대비 용어의 수로 IDF 값을 산출하는 단계(S340), 벡터산출부(146)가 TF 값과 IDF 값의 곱하여 TF-IDF 값을 산출하는 단계(S360), 코사인산출부(148)가 원본 애플리케이션 파일에 대한 TF-IDF 값 및 대조 애플리케이션 파일에 대한 TF-IDF 값으로 원본 애플리케이션 파일과 대조 애플리케이션 파일의 유사도(

Figure 112017011097617-pat00029
)를 산출하는 단계(380)를 포함한다.In addition, the similarity calculator 140 compares the number of times the contrast term is included in the bus mark of the original application file and the bus mark of the contrasting application file, and projects the number of times of inclusion of the bus mark in the vector space to compare with the original application file. Calculate the similarity of the application file. Specifically, in the step of calculating the similarity by the similarity calculator 140, the TF calculator 142 counts the number of times the contrast term is included in the bus mark of the original application file and the bus mark of the control application file, and the counted value. In step S320, the IDF calculation unit 144 normalizes the ID value, and the IDF calculation unit 144 uses IDF as the number of bus marks of the control application file corresponding to the set of all bus marks and the number of contrast terms corresponding to the bus marks of the control application file. Calculating a value (S340), the vector calculating unit 146 multiplies the TF value with the IDF value to calculate the TF-IDF value (S360), and the cosine calculating unit 148, the TF-IDF for the original application file. Value and the TF-IDF value for the control application file with the similarity between the original application file and the control application file (
Figure 112017011097617-pat00029
Calculating 380).

실험결과Experiment result

Github에서 12개의 오픈 소스 안드로이드 애플리케이션을 수집하여 실험용 데이터 세트를 준비하였다. 또한, 각 애플리케이션에 대해 세 가지의 버전을 수집했다. 따라서 소스와 실행 파일을 사용할 수 있는 36개의 애플리케이션이 준비되었다.We collected 12 open source Android applications from Github to prepare our experimental data set. We also collected three versions for each application. As a result, 36 applications are available that can use the source and executable files.

본 발명의 일 실시예에 따른 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템 및 방법을 평가하기 위해 하기와 같이 실험을 수행하였다. In order to evaluate a system and method for measuring similarity of an Android executable file using text mining according to an embodiment of the present invention, experiments were performed as follows.

실험 1. 종래기술(MOSS 방식)의 유사도 판단 성능 실험Experiment 1. Performance test of similarity judgment of prior art (MOSS method)

종래에 제안된 MOSS 방식을 적용하여 소스 코드를 기반으로 애플리케이션의 유사도 점수를 측정하였다.The similarity score of the application was measured based on the source code by applying the conventional MOSS scheme.

AdAway 3.1AdAway 3.1 AdAway 3.0.2AdAway 3.0.2 Ringdroid 2.7.3Ringdroid 2.7.3 AdAway 3.1.2AdAway 3.1.2 99%99% 98%98% 14%14% Ringdroid 2.7.2Ringdroid 2.7.2 14%14% 7%7% 98%98%

[표 1]을 참조하면, AdAway-3.1.2는 AdAway-3.1 및 Ringdroid-2.7.3과 각각 99% 및 14% 유사한 것으로 산출되었다.Referring to Table 1, AdAway-3.1.2 was calculated to be 99% and 14% similar to AdAway-3.1 and Ringdroid-2.7.3, respectively.

실험 2. 본 발명의 일 실시예와 종래기술(MOSS 방식)의 비교Experiment 2. Comparison of One Embodiment of the Present Invention and the Prior Art (MOSS Method)

실험 2에서는 본 발명의 일 실시예에서 제안 된 방법을 실행 파일에 적용하여 애플리케이션 간의 유사도를 측정하고, MOSS의 결과와 비교 하였다. 비교 대상이 되는 애플리케이션은 공통적으로 adblock 서비스를 제공하는 AdAway-3.1.2와 adblockplusandroid-1.2.0을 기준으로 하였다.In Experiment 2, the similarity between applications was measured by applying the method proposed in one embodiment of the present invention to an executable file, and compared with the results of MOSS. The applications to be compared are based on AdAway-3.1.2 and adblockplusandroid-1.2.0, which provide adblock services in common.

MOSSMOSS methodmethod classclass stringstring AdAway 3.0.2AdAway 3.0.2 98%98% 100%100% 100%100% 100%100% AdAway 3.1AdAway 3.1 99%99% 100%100% 100%100% 100%100% adblockplusandroid 1.2.0adblockplusandroid 1.2.0 8%8% 21%21% 23%23% 28%28%

[표 2]는 AdAway-3.1.2와 상이한 버전의 동일 애플리케이션 및 상이한 종류의 애플리케이션의 유사도를 측정한 것이다. MOSS에 의해 얻어진 유사도와, 본 발명의 일 실시예를 사용하여 3개의 버스마크 즉, 메소드 리스트, 클래스 리스트 및 문자열 리스트에 기초한 유사도 측정 결과를 나열하였다.Table 2 measures the similarity between AdAway-3.1.2 and different versions of the same application and different kinds of applications. The similarity obtained by MOSS and the similarity measurement results based on three busmarks, namely, method list, class list and string list, are listed using one embodiment of the present invention.

AdAway-3.1.2와 상이한 버전의 동일 애플리케이션의 경우, 본 발명의 일 실시예와 MOSS 모두 유사한 결과를 보여 주었다. 이러한 결과는 AdAway-3.1.2와 상이한 버전이더라도 동일한 기능을 갖고 있을 뿐만 아니라 일반적으로 많은 공통 코드를 공유하기 때문이다.For the same application of AdAway-3.1.2 and different versions, both the embodiment of the present invention and the MOSS showed similar results. This is because different versions of AdAway-3.1.2 not only have the same functionality but also generally share a lot of common code.

MOSS에서 산출된 AdAway-3.1.2와 adblockplusandroid-1.2.0의 유사도는 8%인 것으로 도출되었다. 반면, 본 발명의 일 실시예에 의한 시스템 및 방법으로 산출된 유사도는 메소드 목록, 클래스 목록 및 문자열 목록을 기준으로 각각 21%, 23%, 28%인 것으로 도출되었다. 본 발명의 일 실시예에 의해 산출된 유사도가 MOSS보다 더 높은 것으로 평가되었는데, 두 애플리케이션 모두 공통적으로 adblock 서비스를 제공하기 때문에 본 발명의 실시예에 의한 유사도 평가가 MOSS보다 더 정확함을 알 수 있다.The similarity between AdAway-3.1.2 and adblockplusandroid-1.2.0 calculated by MOSS was found to be 8%. On the other hand, the similarity calculated by the system and method according to an embodiment of the present invention was derived to be 21%, 23%, 28% based on the method list, class list and string list, respectively. The similarity calculated by one embodiment of the present invention was evaluated to be higher than the MOSS. Since both applications provide adblock services in common, it can be seen that the similarity evaluation according to the embodiment of the present invention is more accurate than the MOSS.

MOSS는 유사도 계산에서 소스 코드만을 기준으로 하기 때문에 서로 상이한 소스 코드를 가지고 있는 AdAway-3.1.2와 adblockplusandroid-1.2.0은 유사도가 매우 낮은 것으로 평가되었다. 하지만, 본 발명의 일 실시예에 의한 시스템 및 방법은 유사도 산출에서 소스 코드를 고려하지 않고 실행 가능한 APK 파일에서 버스마크를 획득하여 비교한다. AdAway-3.1.2 및 adblockplusandroid-1.2.0은 서로 상이한 애플리케이션이지만 동일한 서비스를 제공하기 때문에 MOSS에서는 고려되지 않는 공통 API 호출 및 클래스가 다수 존재한다. 따라서, 실행 파일을 기반으로 한 유사도 계산은 소스 코드를 기반으로 한 것보다 높은 정확도를 보여주게 된다.Since MOSS is based only on the source code in the similarity calculation, AdAway-3.1.2 and adblockplusandroid-1.2.0, which have different source codes, were evaluated as having very low similarity. However, the system and method according to an embodiment of the present invention obtains and compares a busmark in an executable APK file without considering the source code in the similarity calculation. AdAway-3.1.2 and adblockplusandroid-1.2.0 are different applications, but because they provide the same service, there are many common API calls and classes that are not considered in MOSS. Thus, similarity calculations based on executables show higher accuracy than those based on source code.

이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 하기 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.Although preferred embodiments of the present invention have been described above, the present invention may use various changes, modifications, and equivalents. It is clear that the present invention can be applied in the same manner by appropriately modifying the above embodiments. Therefore, the above description does not limit the scope of the present invention as defined by the limitations of the following claims.

120 : 특징추출부 140 : 유사도 산출부
142 : TF산출부 144 : IDF산출부
146 : 벡터산출부 148 : 코사인산출부
120: feature extraction unit 140: similarity calculation unit
142: TF calculation unit 144: IDF calculation unit
146: vector calculation unit 148: cosine calculation unit

Claims (13)

원본 애플리케이션 파일의 버스마크(Birthmark) 및 대조 애플리케이션 파일의 버스마크를 추출하고, 상기 원본 애플리케이션 파일에서 대비 용어를 추출하는 특징추출부와;
상기 대비 용어가 상기 원본 애플리케이션 파일의 버스마크 및 상기 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 상기 버스마크의 포함 횟수를 벡터공간에 투영하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도를 산출하는 유사도 산출부를 포함하고,
상기 버스마크는 달빅실행파일(Dalvik Executable)의 헤더에서 문자열 목록(String List), 클래스 목록(Class List), 메소드 목록(Method List)을 추출하며,
상기 문자열 목록에는 메뉴, 다이얼로그, 대화창의 메시지, 클래스의 이름, 메소드의 이름 중 두 개 이상이 포함되고,
상기 유사도 산출부는, 상기 대비 용어가 상기 원본 애플리케이션 파일의 버스마크 및 상기 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 개수된 값을 정규화 하는 TF산출부를 포함하며,
상기 TF산출부는, 상기 대비 용어(t)가 상기 대조 애플리케이션 파일의 버스마크(p)에 포함된 횟수(
Figure 112019108463512-pat00030
)를 연산식
Figure 112019108463512-pat00031

에 대입하여 대비 용어의 빈도를 의미하는 TF 값(
Figure 112019108463512-pat00032
)을 산출하고,
상기 유사도 산출부는, 상기 대비 용어(t), 상기 대조 애플리케이션 파일의 버스마크(p) 및 모든 버스마크의 집합(B)를 연산식
Figure 112019108463512-pat00033

에 대입하여 역 문서 빈도를 의미하는 IDF 값(
Figure 112019108463512-pat00034
)을 산출하는 IDF산출부를 더 포함하며,
상기 유사도 산출부는, 상기 TF 값과 상기 IDF 값의 곱하여 TF-IDF 값을 산출하는 벡터산출부를 더 포함하고,
상기 유사도 산출부는, 상기 대비 용어(t), 상기 원본 애플리케이션 파일의 버스마크(q), 상기 대조 애플리케이션 파일의 버스마크(p), 상기 원본 애플리케이션 파일에 대한 TF-IDF 값(
Figure 112019108463512-pat00035
) 및 상기 대조 애플리케이션 파일에 대한 TF-IDF 값(
Figure 112019108463512-pat00036
)을 연산식
Figure 112019108463512-pat00037

에 대입하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도(
Figure 112019108463512-pat00038
)를 산출하는 코사인(cosine)산출부를 더 포함하는 것을 특징으로 하는 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 시스템.
A feature extractor for extracting a busmark of the original application file and a busmark of the control application file and extracting a contrast term from the original application file;
The number of times the contrast term is included in the bus mark of the original application file and the bus mark of the collation application file, and the similarity between the original application file and the collation application file by projecting the number of times of inclusion of the bus mark in a vector space Including a similarity calculation unit for calculating,
The bus mark extracts a string list, a class list, and a method list from the header of the Dalvik Executable.
The string list includes two or more of a menu, a dialog, a message of a dialog, a name of a class, and a name of a method.
The similarity calculating unit includes a TF calculation unit for counting the number of times the contrast term is included in the bus mark of the original application file and the bus mark of the matching application file, and normalizing the counted value,
The TF calculation unit may include the number of times the comparison term (t) is included in the bus mark (p) of the control application file (
Figure 112019108463512-pat00030
Expression
Figure 112019108463512-pat00031

A TF value that represents the frequency of the contrast term by substituting for
Figure 112019108463512-pat00032
),
The similarity calculator calculates a comparison term (t), a bus mark (p) of the matching application file, and a set (B) of all bus marks.
Figure 112019108463512-pat00033

IDF value, which means the reverse document frequency by assigning to
Figure 112019108463512-pat00034
It further comprises an IDF calculation unit for calculating),
The similarity calculator further includes a vector calculator for calculating a TF-IDF value by multiplying the TF value by the IDF value,
The similarity calculator may include the contrast term (t), a bus mark (q) of the original application file, a bus mark (p) of the matching application file, and a TF-IDF value for the original application file (
Figure 112019108463512-pat00035
) And the TF-IDF value for the matching application file (
Figure 112019108463512-pat00036
Expression
Figure 112019108463512-pat00037

The similarity between the original application file and the control application file by assigning to
Figure 112019108463512-pat00038
System for measuring similarity of the android executable file using text mining, characterized in that it further comprises a cosine (cosine) calculation unit for calculating.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 특징추출부가 원본 애플리케이션 파일의 버스마크(Birthmark) 및 대조 애플리케이션 파일의 버스마크를 추출하고, 상기 원본 애플리케이션 파일에서 대비 용어를 추출하는 단계;
유사도 산출부가 상기 대비 용어가 상기 원본 애플리케이션 파일의 버스마크 및 상기 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 상기 버스마크의 포함 횟수를 벡터공간에 투영하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도를 산출하는 단계를 포함하고,
상기 버스마크는 달빅실행파일(Dalvik Executable)의 헤더에서 문자열 목록(String List), 클래스 목록(Class List), 메소드 목록(Method List)을 추출하며,
상기 문자열 목록에는 메뉴, 다이얼로그, 대화창의 메시지, 클래스의 이름, 메소드의 이름 중 두 개 이상이 포함되고,
상기 유사도 산출부가 유사도를 산출하는 단계는, TF산출부가 상기 대비 용어가 상기 원본 애플리케이션 파일의 버스마크 및 상기 대조 애플리케이션 파일의 버스마크에 포함된 횟수를 개수하고, 개수된 값을 정규화 하여 대비 용어의 빈도를 의미하는 TF 값을 산출하는 단계; IDF산출부가 모든 버스마크의 집합에 대응되는 상기 대조 애플리케이션 파일의 버스마크 수 및 상기 대조 애플리케이션 파일의 버스마크에 대응되는 상기 대비 용어의 수로 역 문서 빈도를 의미하는 IDF 값을 산출하는 단계; 벡터산출부가 상기 TF 값과 상기 IDF 값의 곱하여 TF-IDF 값을 산출하는 단계; 코사인(cosine)산출부가 상기 원본 애플리케이션 파일에 대한 TF-IDF 값 및 상기 대조 애플리케이션 파일에 대한 TF-IDF 값으로 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도를 산출하는 단계를 포함하며,
상기 TF산출부는, 상기 대비 용어(t)가 상기 대조 애플리케이션 파일의 버스마크(p)에 포함된 횟수(
Figure 112019108463512-pat00051
)를 연산식
Figure 112019108463512-pat00052

에 대입하여 TF 값(
Figure 112019108463512-pat00053
)을 산출하고,
상기 IDF산출부는, 상기 대비 용어(t), 상기 대조 애플리케이션 파일의 버스마크(p) 및 모든 버스마크의 집합(B)를 연산식
Figure 112019108463512-pat00054

에 대입하여 IDF 값(
Figure 112019108463512-pat00055
)을 산출하며,
상기 코사인산출부는, 상기 대비 용어(t), 상기 원본 애플리케이션 파일의 버스마크(q), 상기 대조 애플리케이션 파일의 버스마크(p), 상기 원본 애플리케이션 파일에 대한 TF-IDF 값(
Figure 112019108463512-pat00056
) 및 상기 대조 애플리케이션 파일에 대한 TF-IDF 값(
Figure 112019108463512-pat00057
)을 연산식
Figure 112019108463512-pat00058

에 대입하여 상기 원본 애플리케이션 파일과 상기 대조 애플리케이션 파일의 유사도(
Figure 112019108463512-pat00059
)를 산출하는 것을 특징으로 하는 텍스트 마이닝을 이용한 안드로이드 실행 파일의 유사도 측정 방법.
Extracting, by the feature extracting unit, a busmark of the original application file and a busmark of the matching application file, and extracting a contrast term from the original application file;
The similarity calculating unit counts the number of times the contrast term is included in the busmark of the original application file and the busmark of the collation application file, and projects the number of times of inclusion of the busmark in a vector space to reflect the original application file and the collation application. Calculating the similarity of the file,
The bus mark extracts a string list, a class list, and a method list from the header of the Dalvik Executable.
The string list includes two or more of a menu, a dialog, a message of a dialog, a name of a class, and a name of a method.
The similarity calculator may calculate the similarity, wherein the TF calculation unit counts the number of times the contrast term is included in the bus mark of the original application file and the bus mark of the control application file, and normalizes the counted value to determine the contrast term. Calculating a TF value indicating a frequency; Calculating, by an IDF calculating unit, an IDF value representing an inverse document frequency by the number of busmarks of the matching application file corresponding to the set of all busmarks and the number of contrast terms corresponding to the busmarks of the matching application file; Calculating a TF-IDF value by multiplying the TF value and the IDF value by a vector calculation unit; A cosine calculating unit calculating a similarity between the original application file and the control application file using a TF-IDF value for the source application file and a TF-IDF value for the control application file;
The TF calculation unit may include the number of times the comparison term (t) is included in the bus mark (p) of the control application file (
Figure 112019108463512-pat00051
Expression
Figure 112019108463512-pat00052

Is assigned to the TF value (
Figure 112019108463512-pat00053
),
The IDF calculation unit calculates a comparison term (t), a bus mark (p) of the matching application file, and a set (B) of all bus marks.
Figure 112019108463512-pat00054

By assigning it to the IDF value (
Figure 112019108463512-pat00055
),
The cosine calculation unit may include the contrast term (t), a bus mark (q) of the original application file, a bus mark (p) of the control application file, and a TF-IDF value for the original application file (
Figure 112019108463512-pat00056
) And the TF-IDF value for the matching application file (
Figure 112019108463512-pat00057
Expression
Figure 112019108463512-pat00058

The similarity between the original application file and the control application file by assigning to
Figure 112019108463512-pat00059
A method for measuring similarity of an Android executable file using text mining, characterized in that it is calculated.
삭제delete 삭제delete 삭제delete 삭제delete
KR1020170014847A 2017-02-02 2017-02-02 Measuring Similarity System and Method of Android Application Using Text Mining KR102086749B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170014847A KR102086749B1 (en) 2017-02-02 2017-02-02 Measuring Similarity System and Method of Android Application Using Text Mining

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170014847A KR102086749B1 (en) 2017-02-02 2017-02-02 Measuring Similarity System and Method of Android Application Using Text Mining

Publications (2)

Publication Number Publication Date
KR20180089997A KR20180089997A (en) 2018-08-10
KR102086749B1 true KR102086749B1 (en) 2020-03-09

Family

ID=63229718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170014847A KR102086749B1 (en) 2017-02-02 2017-02-02 Measuring Similarity System and Method of Android Application Using Text Mining

Country Status (1)

Country Link
KR (1) KR102086749B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102246405B1 (en) * 2019-07-25 2021-04-30 호서대학교 산학협력단 TF-IDF-based Vector Conversion and Data Analysis Apparatus and Method
CN113688954A (en) * 2021-10-25 2021-11-23 苏州浪潮智能科技有限公司 Method, system, equipment and storage medium for calculating text similarity

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101520671B1 (en) 2014-04-25 2015-05-20 충남대학교산학협력단 System and method for analysis executable code based on similarity

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
고정욱 외, "안드로이드 스마트폰에서 Dex 파일들의 유사도 비교 연구", 한국소프트웨어감정평가학회 논문지 제9권 제1호, pp. 7-14(2013.06.)
박대성, "TF-IDF에 대해 알아봅시다"(2016.11.)*
박희완, "API k-gram 기반의 안드로이드 버스마크", 컴퓨터 및 통신 시스템 제2권 제4호(2013.04.)*
채동규 외, "정적 API 호출 빈도를 이용한 소프트웨어 버스마킹 시스템", 컴퓨팅의 실제 및 레터 제19권 제5호, pp. 298-302(2013.05.)*

Also Published As

Publication number Publication date
KR20180089997A (en) 2018-08-10

Similar Documents

Publication Publication Date Title
Taylor et al. To update or not to update: Insights from a two-year study of android app evolution
CN104123493B (en) The safety detecting method and device of application program
US8286251B2 (en) Obfuscating computer program code
Crussell et al. Andarwin: Scalable detection of android application clones based on semantics
US7934197B2 (en) Maintaining code integrity in a central software development system
JP5564034B2 (en) Anti-tamper system using automatic analysis
US7409718B1 (en) Method of decrypting and analyzing encrypted malicious scripts
KR101720686B1 (en) Apparaus and method for detecting malcious application based on visualization similarity
US20160142437A1 (en) Method and system for preventing injection-type attacks in a web based operating system
CN110825363B (en) Intelligent contract acquisition method and device, electronic equipment and storage medium
US20060288342A1 (en) Post build process to record stack and call tree information
US7036111B2 (en) Code verification system and method
CN112231702B (en) Application protection method, device, equipment and medium
CN106874758B (en) Method and device for identifying document code
KR102086749B1 (en) Measuring Similarity System and Method of Android Application Using Text Mining
CN103858128A (en) System And Method Providing Dependency Networks Throughout Applications For Attack Resistance
Feichtner et al. Obfuscation-resilient code recognition in Android apps
CN103971055B (en) A kind of Android malware detection method based on program slicing technique
CN101499114A (en) Computer protection method for creating user program operation permission and security check mechanism
KR101624387B1 (en) Method for software asset management based on software birthmark and apparatus thereof
JP2009129128A (en) Program conversion program, processing method, and processor
Niu et al. Clone analysis and detection in android applications
CN104598807B (en) Increment upgrade detection method, management method, terminal and increment updating and management platform
CN108062463A (en) It is a kind of that packet inspection method and system are beaten again based on screenshot picture
CN108804083B (en) Code operation method and device

Legal Events

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