KR101710796B1 - Apparatus for identifier renaming deobfuscate of obfuscated mobile applications and method thereof - Google Patents

Apparatus for identifier renaming deobfuscate of obfuscated mobile applications and method thereof Download PDF

Info

Publication number
KR101710796B1
KR101710796B1 KR1020150118756A KR20150118756A KR101710796B1 KR 101710796 B1 KR101710796 B1 KR 101710796B1 KR 1020150118756 A KR1020150118756 A KR 1020150118756A KR 20150118756 A KR20150118756 A KR 20150118756A KR 101710796 B1 KR101710796 B1 KR 101710796B1
Authority
KR
South Korea
Prior art keywords
identifier
reverse
obfuscated
obfuscation
analysis
Prior art date
Application number
KR1020150118756A
Other languages
Korean (ko)
Inventor
이정현
박용진
이재국
Original Assignee
숭실대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 숭실대학교산학협력단 filed Critical 숭실대학교산학협력단
Priority to KR1020150118756A priority Critical patent/KR101710796B1/en
Application granted granted Critical
Publication of KR101710796B1 publication Critical patent/KR101710796B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

Landscapes

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

Abstract

The present invention relates to an apparatus for identifier deobfuscation of an obfuscated mobile application and a method thereof. According to the present invention, the apparatus for identifier deobfuscation of the obfuscated mobile application includes: a Dalvik executable (DEX) analyzing unit for analyzing a DEX file of the obfuscated mobile application; an identifier recognizing unit for recognizing an existence of an unidentified identifier by receiving an identifier of the DEX file analyzed at the DEX analyzing unit; an identifier deobfuscating unit configured to receive an unidentified identifier from the identifier recognizing unit, determine whether the inputted identifier is a general identifier applicable to the deobfuscation, perform a first step analysis by using program peripheral information including a plurality of programming factors which is referred according to a type of the identifier upon the general identifier so as to deobfuscate the unidentified identifier; and a DEX reconfiguration unit for reconfiguring the DEX file to generate a deobfuscated application on the basis of the identifier deobfuscated at the identifier deobfuscating unit. According to the present invention, types of the identifiers are classified with respect to a malignant mobile application applied thereto with the identifier deobfuscation, a phased deobfuscation is performed based on the identifier peripheral information according to the classification, and the malignant mobile application is analyzed, thereby enabling malignant code analyst to reduce a time and an effort for analyzing a logic of the malignant mobile application, so that effective response and analysis are implemented.

Description

난독화된 모바일 애플리케이션의 식별자 역난독화 장치 및 그 방법{APPARATUS FOR IDENTIFIER RENAMING DEOBFUSCATE OF OBFUSCATED MOBILE APPLICATIONS AND METHOD THEREOF}[0001] APPARATUS FOR IDENTIFIER RENAMING [0002] DEBFUSCATE OF OBFUSCATED MOBILE APPLICATIONS AND METHOD THEREOF [

본 발명은 난독화된 모바일 애플리케이션의 식별자 역난독화 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 식별자 난독화가 적용된 악성 모바일 애플리케이션에 대해 식별자 주변정보를 토대로 단계별 역난독화를 수행하여 악성 모바일 애플리케이션을 분석하는 난독화된 모바일 애플리케이션의 식별자 역난독화 장치 및 그 방법에 관한 것이다.The present invention relates to an apparatus for inverse obfuscation of an obfuscated mobile application and a method thereof, and more particularly, to a method and apparatus for inverse obfuscation of an obfuscated mobile application by performing a stepwise reverse obfuscation based on identifier- To an identifier obfuscation device and method thereof for analyzing obfuscated mobile applications.

안드로이드 기반의 스마트폰 사용량이 증가함에 따라 모바일 애플리케이션 공급자인 안드로이드 구글 플레이의 앱 규모가 커지고, 이와 동시에 악성 모바일 애플리케이션(응용 프로그램) 또한 빠르게 증가하고 있다.As the Android-based smartphone usage grows, the app size of Android Google Play, the mobile application provider, increases, and at the same time, malicious mobile applications (applications) are also increasing rapidly.

안드로이드 애플리케이션은 기본적으로 자바(Java) 언어로 구현되므로, 자바는 바이트 코드 형태로 번역되며 바이트 코드는 특정 기계에 종속되지 않은 자바가상머신(Java virtual machine)을 이용하는 코드이므로 자바가상머신을 지원하는 기계는 어떤 기계이든 프로그램을 실행할 수 있다. 바이트 코드로 번역된 코드에는 자바 소스코드의 정보가 그대로 포함되어 있으며, 이로 인하여 바이트 코드에서 자바 소스코드로의 디컴파일이 쉽게 이루어진다. 즉, 안드로이드 애플리케이션 패키지(APK, Android application package) 파일을 디컴파일하면 본래 소스 코드와 유사한 소스코드로 쉽게 복원이 가능하여, 역공학이나 크래킹이 가능해진다.Because Android applications are basically implemented in the Java language, Java is translated into byte code, and bytecode is code that uses a Java virtual machine that is not dependent on a specific machine, so a machine that supports the Java virtual machine Can run programs on any machine. The code translated into bytecode contains the information of the Java source code as it is, which makes it easy to decompile the bytecode into Java source code. That is, if you decompile an Android application package (APK) file, you can easily restore it to source code similar to the original source code, enabling reverse engineering or cracking.

이러한 문제를 해결하기 위하여 소스코드에 난독화 기술을 적용하며, 난독화 기술이 적용되면 디컴파일로 소스코드를 쉽게 복원할 수 없게 된다. 이를 통하여 역공학, 크래킹 등을 방지할 수 있다.To solve this problem, obfuscation technology is applied to the source code, and when the obfuscation technology is applied, the source code can not be easily restored by decompilation. Through this, it is possible to prevent reverse engineering, cracking, and the like.

난독화는 본래 악의적인 소프트웨어 역공학으로부터 프로그램의 코드를 보호하기 위하여 특정 방식으로 변환하여 바이너리나 소스코드가 역공학에 의해 분석되는 것을 어렵게 하기 위한 것이나, 일부 개발자들에 의해 악성 모바일 애플리케이션의 분석을 어렵게 하기 위한 목적으로 소스코드에 난독화 기술이 적용되고 있어, 이를 효과적으로 방지하기 위해 악성 모바일 애플리케이션을 분석하는 작업 또한 기존의 수작업 위주에서 자동화 작업 위주로 변화하여 빠르게 대응하고 있다. Obfuscation is originally intended to transform a malicious software reverse engineering into a particular way to protect the code of the program, making it difficult for binary or source code to be analyzed by reverse engineering, Obfuscation techniques have been applied to the source code for the purpose of making it harder. In order to prevent this effectively, the task of analyzing malicious mobile applications is changing from hand-based to automation.

이러한 대응에도 불구하고 악성 모바일 애플리케이션은 악성코드의 노출을 제한하고 분석을 지연시키기 위하여 다양한 난독화 기법들을 통해 실행 흐름을 복잡하게 하여 역공학 분석 작업을 어렵게 하고 있다.Despite these responses, malicious mobile applications have complicated the flow of execution through various obfuscation techniques to limit malicious code exposure and delay analysis, making it difficult to perform reverse engineering analysis.

악성코드 분석가들은 이에 대응하기 위해 애플리케이션 실행 흐름 그래프(Control Flow Graph)를 이용하여 역난독화 분석 대상을 축소한다. 하지만 여전히 축소된 분석 대상의 난독화된 코드는 분석해야 한다. 이 때 기초가 되는 작업이 식별자를 인식하여 애플리케이션의 로직을 분석하는 것이다.To respond to this, malicious code analysts reduce the object of reverse obfuscation analysis using the application execution flow graph (Control Flow Graph). However, it is still necessary to analyze obfuscated code in the reduced analysis. At this point, the underlying task is to recognize the identifier and analyze the logic of the application.

식별자 변환 난독화 기법은 다른 난독화 기법들과는 달리 원본 정보가 제거되고, 원본 정보로의 복귀가 되지 않는 단방향 기법으로써, 애플리케이션 실행 성능에 영향을 미치지 않기 때문에 상당히 유용하여 대부분의 난독화 도구들이 제공하는 기법이다. Unlike other obfuscation methods, the identifier conversion obfuscation technique is a unidirectional technique in which original information is removed and is not returned to the original information, which is very useful because it does not affect application execution performance, Technique.

따라서 난독화 기법 중에서도 기본이 되는 식별자 변환 난독화에 대해 역난독화가 이루어지도록 하여 식별자를 복원함으로써 악성 모바일 애플리케이션 로직을 효과적으로 분석하고 분석 시간을 단축시키기 위한 기술의 개발이 필요하다.Therefore, it is necessary to develop technologies for effectively analyzing malicious mobile application logic and shortening analysis time by restoring identifiers by making the obfuscation of obfuscated identifier conversion obsolete among obfuscation techniques.

본 발명의 배경이 되는 기술은 대한민국 등록특허 제10-1328012호 (2013.11.13공고)에 개시되어 있다.The technique of the present invention is disclosed in Korean Patent No. 10-1328012 (published on Nov. 13, 2013).

본 발명은 상기와 같은 필요에 의해 창출된 것으로, 본 발명의 목적은 식별자 난독화가 적용된 악성 모바일 애플리케이션에 대해 식별자 주변정보를 토대로 단계별 역난독화를 수행하여 악성 모바일 애플리케이션을 분석하는 난독화된 모바일 애플리케이션의 식별자 역난독화 장치 및 그 방법을 제공하는 것이다.It is an object of the present invention to provide an obfuscated mobile application for analyzing a malicious mobile application by carrying out a stepwise reverse obfuscation based on identifier surrounding information for a malicious mobile application to which identifier obfuscation is applied, And a method thereof.

이러한 기술적 과제를 이루기 위한 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치는, 난독화된 모바일 애플리케이션의 DEX(Dalvik Executable) 파일을 분석하는 DEX 분석부; 상기 DEX 분석부에서 분석된 상기 DEX 파일의 식별자를 입력받아 확인되지 않은 식별자의 존재 여부를 인식하는 식별자 인식부; 상기 식별자 인식부로부터 확인되지 않은 식별자를 입력받아 상기 입력된 식별자가 난독화 적용이 가능한 일반 식별자인지 판단하여 상기 일반 식별자인 경우, 상기 식별자의 타입에 따라 참고할 수 있는 다수의 프로그래밍적 요소들이 포함된 프로그램 주변정보를 이용하여 제1단계 분석을 수행하여 상기 확인되지 않은 식별자를 역난독화하는 식별자 역난독화부; 및 상기 식별자 역난독화부에서 역난독화 된 식별자를 기반으로 상기 DEX 파일을 재구성하여 역난독화된 애플리케이션을 생성하는 DEX 재구성부를 포함한다.According to an aspect of the present invention, there is provided an apparatus for inverse obfuscation of an obfuscated mobile application, the apparatus comprising: a DEX analyzer for analyzing a DEX (Dalvik Executable) file of an obfuscated mobile application; An identifier recognizing unit for recognizing whether or not an identifier that has not been received by receiving the identifier of the DEX file analyzed by the DEX analyzing unit exists; And an identifier unidentified by the identifier recognition unit is received, and if the input identifier is a general identifier capable of obfuscation application, if the identifier is the general identifier, a plurality of programming elements that can be referenced according to the type of the identifier are included An identifier reverse obfuscation unit for reverse-obfuscating the unidentified identifier by performing a first-step analysis using the program peripheral information; And a DEX reconstruction unit for reconstructing the DEX file based on the reverse obfuscated identifier in the inverse identifier obfuscation unit to generate a reverse obfuscated application.

또한, 사용자로부터 상기 애플리케이션의 역난독화 예상시간을 입력받는 예상시간 입력부를 더 포함하며, 상기 식별자 역난독화부는, 상기 제1단계 분석의 수행시간이 상기 예상시간을 초과하지 않으면 상기 프로그램 주변정보를 이용하여 제2단계 분석을 수행하고, 상기 제1 및 2 단계 분석의 수행시간이 상기 예상시간을 초과하지 않으면, 상기 제1 및 2단계 분석의 수행시간에 따라 생성되는 실행 흐름 그래프를 이용하여 제3단계 분석을 수행할 수 있다.The apparatus of claim 1, further comprising an expected time input unit for receiving a reverse obfuscation expected time of the application from a user, wherein the identifier reverse obfuscation unit, when the execution time of the first step analysis does not exceed the expected time, And if the execution time of the first and second step analysis does not exceed the expected time, an execution flow graph generated according to the execution time of the first and second step analysis is used The third stage analysis can be performed.

상기 식별자 역난독화부는, 난독화 적용이 불가능한 시스템 함수 또는 외부 라이브러리 함수의 식별자를 제외한 식별자를 상기 일반 식별자로 판단할 수 있다.The identifier reverse obfuscation unit may determine an identifier excluding the system function or the identifier of the external library function that can not be obfuscated by the general identifier.

상기 식별자 역난독화부는, 필드, 메소드, 클래스 및 패키지 타입으로 상기 식별자를 각각 분류하고, 상기 식별자의 타입별로 상기 제1 내지 제3단계 분석을 수행할 수 있다.The identifier reverse obfuscation unit may classify the identifiers into fields, methods, classes, and package types, respectively, and perform the first through third analysis according to the types of the identifiers.

상기 식별자 역난독화부는, 상기 프로그램 주변정보를 이용하여 각각의 타입에 대해 상기 식별자를 역난독화하고, 확인되지 않은 식별자와 상기 역난독화된 식별자를 매핑하여 키워드 매핑 테이블에 저장하여 상기 제1단계 분석을 수행할 수 있다.Wherein the identifier reverse-obfuscation unit reverse-obfuscates the identifier for each type using the program peripheral information, maps the unidentified identifier and the reverse obfuscated identifier to the keyword mapping table, Step analysis can be performed.

상기 필드는 필드의 타입, 제한자 및 로컬 필드 여부 중 적어도 하나의 요소를 이용하고, 상기 메소드는 메소드의 소속 패키지와 클래스, 시그니처, 주요 처리 로직, 실행 흐름 그래프(Control Flow Graph)상의 Caller 및 Callee 메소드 중 적어도 하나의 요소를 이용하며, 상기 클래스는 클래스의 종류, 클래스의 소속 패키지, 상속 관계 및 보유한 메소드 중 적어도 하나의 요소를 이용할 수 있다. The method uses at least one of a field type, a constraint, and a local field, and the method includes at least one of a method package's belonging to a class, a signature, a main processing logic, a caller on a control flow graph, Method, and the class may use at least one of the type of the class, the belonging package of the class, the inheritance relation, and the held method.

상기 식별자 역난독화부는, 상기 제1단계 분석을 통해 역난독화된 식별자 중 확인되지 않은 식별자가 존재하면, 해당 식별자를 상기 식별자의 타입에 대응하도록 분류하고, 상기 분류된 식별자가 시스템 함수 또는 외부 라이브러리 함수와 관련되어 사용되는 식별자인 경우, 상기 시스템 함수 또는 상기 외부 라이브러리 함수의 호출 정보를 이용하여 각각의 분류에 대해 상기 식별자를 역난독화하고, 확인되지 않은 식별자와 상기 역난독화된 식별자를 매핑하여 키워드 매핑 테이블에 저장하여 상기 제2단계 분석을 수행할 수 있다.Wherein the identifier inverse obfuscation unit classifies the identifiers to correspond to the types of the identifiers when there is an unidentified identifier among the inversely obfuscated identifiers through the first stage analysis, If the identifier is an identifier to be used in association with the library function, the identifier is reverse-obfuscated for each classification using the system function or the call information of the external library function, and the identifier that has not been verified and the obfuscated identifier And stores the resultant in the keyword mapping table to perform the second step analysis.

상기 식별자 역난독화부는, 상기 실행 흐름 그래프의 초기 진입 함수부터 상기 제2단계 분석을 통해 역난독화된 식별자 중 확인되지 않은 식별자가 존재하면, 상기 식별자의 타입이 메소드, 클래스 및 패키지인지 판단하여, 상기 식별자의 타입이 메소드, 클래스 및 패키지의 식별자인 것으로 판단되면, 상기 실행 흐름 그래프의 이웃 노드 정보를 이용하여 각 식별자의 타입별로 상기 식별자를 역난독화하고, 확인되지 않은 식별자와 상기 역난독화된 식별자를 매핑하여 키워드 매핑 테이블에 저장하여 상기 제3단계 분석을 수행할 수 있다.Wherein the identifier reverse-obfuscation unit determines whether the type of the identifier is a method, a class, and a package, if an identifier that has not been identified among the reverse-obfuscated identifiers exists from the initial entry function of the execution flow graph through the second- And if the type of the identifier is determined to be an identifier of a method, a class, and a package, reverse-obfuscates the identifier for each type of each identifier using the neighbor node information of the execution flow graph, And the third-stage analysis may be performed by storing the mapped identifiers in the keyword mapping table.

상기 이웃 노드는, 해당 노드를 호출한 노드 또는 해당 노드가 호출하는 노드일 수 있다.The neighboring node may be a node calling the node or a node called by the node.

또한, 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 방법은, 상기 애플리케이션의 DEX(Dalvik Executable) 파일을 분석하여 상기 DEX 파일의 식별자를 입력받는 단계; 상기 입력된 식별자 중 확인되지 않은 식별자가 존재하면, 해당 식별자가 난독화 적용이 가능한 일반 식별자인지 판단하는 단계; 상기 일반 식별자로 판단되면, 상기 식별자의 타입에 따라 참고할 수 있는 다수의 프로그래밍적 요소들이 포함된 프로그램 주변정보를 이용하여 제1단계 분석을 수행하여 상기 확인되지 않은 식별자를 역난독화하는 단계; 및 상기 역난독화된 식별자를 기반으로 상기 DEX 파일을 재구성하여 역난독화된 애플리케이션을 생성하는 단계를 포함한다.Also, the method of inverse obfuscating an obfuscated mobile application according to an embodiment of the present invention includes: receiving an identifier of the DEX file by analyzing a DEX (Dalvik Executable) file of the application; Determining whether the identifier is an ordinary identifier that can be obfuscated if there is an unidentified identifier among the input identifiers; Performing a first step analysis using the program peripheral information including a plurality of programmable elements that can be referred to according to the type of the identifier, if the general identifier is determined, to reverse-obfuscate the unidentified identifier; And reconstructing the DEX file based on the reverse obfuscated identifier to generate a reverse obfuscated application.

본 발명에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치 및 그 방법은 식별자 난독화가 적용된 악성 모바일 애플리케이션에 대해 식별자들의 종류를 분류하고 각 분류에 따라 식별자 주변정보를 토대로 단계별 역난독화를 수행하여 악성 모바일 애플리케이션을 분석함으로써, 악성코드 분석가들로 하여금 악성 모바일 애플리케이션 로직 분석을 위한 시간과 노력을 단축시킬 수 있어 효과적인 대응 및 분석에 기여할 수 있다.An apparatus for inverse obfuscating an obfuscated mobile application according to the present invention classifies the types of identifiers for malicious mobile applications to which identifier obfuscation is applied and performs stepwise reverse obfuscation based on the information about the identifiers according to each classification By analyzing malicious mobile applications, malware analysts can shorten the time and effort required to analyze malicious mobile application logic, thereby contributing to effective response and analysis.

도 1은 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치를 나타낸 블록구성도이다.
도 2는 난독화되기 전 소스 코드의 예시이다.
도 3은 코드 난독화 프로그램에 의해 소스 코드를 난독화 한 다음 생성된 매핑 파일이다.
도 4는 난독화된 소스 코드를 디컴파일하여 생성된 smali 코드이다.
도 5는 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 방법의 동작 흐름을 도시한 순서도이다.
도 6은 도 5의 제1단계 분석 수행의 세부 과정을 도시한 순서도이다.
도 7은 도 5의 제2단계 분석 수행의 세부 과정을 도시한 순서도이다.
도 8은 도 5의 제3단계 분석 수행의 세부 과정을 도시한 순서도이다.
도 9는 도 5의 제3단계 분석 수행 시 사용되는 실행 흐름 그래프에 대한 예시 도면이다.
도 10은 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 방법을 적용한 결과를 나타낸 예시 표이다.
1 is a block diagram illustrating an apparatus for inverse obfuscation of an obfuscated mobile application according to an embodiment of the present invention.
Figure 2 is an example of source code before obfuscation.
3 is a mapping file generated after the source code is obfuscated by the code obfuscation program.
4 is a smali code generated by decompiling the obfuscated source code.
FIG. 5 is a flowchart illustrating an operation flow of a method for inverse obfuscation of an obfuscated mobile application according to an embodiment of the present invention.
FIG. 6 is a flowchart showing a detailed procedure of the first step analysis of FIG.
FIG. 7 is a flowchart illustrating a detailed procedure of the second step analysis of FIG.
FIG. 8 is a flowchart showing a detailed procedure of the third step analysis of FIG.
FIG. 9 is an exemplary diagram of an execution flow graph used in the third step analysis of FIG. 5; FIG.
10 is an exemplary table showing results of applying an identifier reverse obfuscation method of an obfuscated mobile application according to an embodiment of the present invention.

이하 첨부된 도면을 참조하여 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치 및 그 방법을 설명한다. 이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An apparatus and method for reverse obfuscation of an obfuscated mobile application according to an embodiment of the present invention will be described with reference to the accompanying drawings. In this process, the thicknesses of the lines and the sizes of the components shown in the drawings may be exaggerated for clarity and convenience of explanation.

또한 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Further, the terms described below are defined in consideration of the functions of the present invention, which may vary depending on the intention or custom of the user, the operator. Therefore, definitions of these terms should be made based on the contents throughout this specification.

먼저, 도 1 내지 도 4를 통해 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치에 대하여 설명한다.1 to 4, an apparatus for inverse obfuscation of an obfuscated mobile application according to an embodiment of the present invention will be described.

도 1은 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치를 나타낸 블록구성도이다.1 is a block diagram illustrating an apparatus for inverse obfuscation of an obfuscated mobile application according to an embodiment of the present invention.

도 1에서와 같이 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치는, DEX 분석부(110), 식별자 인식부(120), 예상시간 입력부(130), 식별자 역난독화부(140), 키워드 매핑 테이블(150) 및 DEX 재구성부(160)를 포함한다.1, an apparatus for inverse obfuscation of an obfuscated mobile application according to an embodiment of the present invention includes a DEX analysis unit 110, an identifier recognition unit 120, an expected time input unit 130, A keyword mapping table 150 and a DEX reconstruction unit 160. [

도 2는 난독화되기 전 소스 코드의 예시이고, 도 3은 코드 난독화 프로그램에 의해 소스 코드를 난독화 한 다음 생성된 매핑 파일이며, 도 4는 난독화된 소스 코드를 디컴파일하여 생성된 smali 코드이다.3 is a mapping file generated after the source code is obfuscated by the code obfuscation program, and Fig. 4 is a diagram showing a mapping file generated by decomposing the obfuscated source code, Code.

본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치는, 도 2 내지 도 4에서와 같이 식별자 난독화가 적용된 악성 모바일 애플리케이션을 역난독화하여 보안 분석가가 분석시 분석 시간과 노력을 단축시켜 주기 위한 것이므로, 식별자 난독화가 적용된 애플리케이션 파일을 대상으로 한다.The apparatus for inverse obfuscation of an obfuscated mobile application according to an embodiment of the present invention reverses the malicious mobile application to which the identifier obfuscation is applied as shown in FIG. 2 to FIG. 4 so that the security analyst can analyze the analysis time and effort It is targeted for an application file to which identifier obfuscation is applied.

이때, 식별자 난독화는 프로가드(Proguard)와 같은 식별자 난독화 프로그램을 사용하여 수행될 수 있는데, 도 2에서와 같이 모바일 애플리케이션(즉, 안드로이드 애플리케이션 패키지(APK, Android application package)) 파일의 의미있는 식별자를 프로가드와 같은 식별자 난독화 프로그램를 이용하여 난독화하면, 도 3의 매핑 파일에서와 같이 의미있는 식별자가 의미없는 식별자로 치환되어 난독화된 소스 코드가 생성되고, APK 파일을 apktool을 이용하여 도 4에서와 같이 디컴파일 한 후 smali 코드를 획득하여도 육안으로 smali 코드를 분석할 수 없다.At this time, the identifier obfuscation can be performed using an identifier obfuscation program such as Proguard. As shown in FIG. 2, the meaningful obfuscation of a mobile application (i.e., an Android application package (APK) If the identifier is obfuscated by using an identifier obfuscation program such as Progard, the meaningful identifier is replaced with the meaningless identifier as in the mapping file of Fig. 3, and the obfuscated source code is generated. The smali code can not be analyzed visually even after obtaining the smali code after decompiling as shown in FIG.

따라서, 본 발명의 DEX 분석부(110)는 식별자 난독화가 적용된 모바일 애플리케이션의 DEX(Dalvik Executable) 파일을 분석한다.Therefore, the DEX analysis unit 110 of the present invention analyzes the DEX (Dalvik Executable) file of the mobile application to which the identifier obfuscation is applied.

자세히는, 애플리케이션 파일을 압축 해제하여 DEX 파일의 바이트 코드를 추출하여, DEX 파일의 바이트코드를 분석한다.More specifically, the application file is decompressed to extract the bytecode of the DEX file, and the bytecode of the DEX file is analyzed.

그리고 식별자 인식부(120)는 DEX 분석부(110)에서 분석된 식별자를 입력받아 확인되지 않은 식별자의 존재 여부를 인식한다.The identifier recognizing unit 120 receives the identifier analyzed by the DEX analyzing unit 110, and recognizes whether or not the identifier is not checked.

즉, 난독화가 적용된 식별자가 존재하는지 여부를 판단하여 난독화가 적용된 식별자를 추려낸다.That is, it is determined whether or not an obfuscated identifier exists, and the obfuscated identifier is selected.

예상시간 입력부(130)는 사용자로부터 애플리케이션의 역난독화 예상시간을 입력받는다.The estimated time input unit 130 receives the estimated backward obfuscation time of the application from the user.

이때, 역난독화 예상시간을 입력받는 이유는, 실제 역난독화에 소요되는 시간을 측정하고 이를 예상시간과 비교하여 역난독화 분석 단계를 조정하기 위함이다.At this time, the reason for receiving the reverse obfuscation prediction time is to measure the time required for the actual reverse obfuscation and to adjust the reverse obfuscation analysis phase by comparing it with the expected time.

식별자 역난독화부(140)는 식별자 인식부(120)로부터 확인되지 않은 식별자를 입력받아 해당 식별자가 일반 식별자인지 판단하여 일반 식별자인 경우, 프로그램 주변정보를 이용하여 제1단계 분석을 수행한다.The identifier reverse blunting unit 140 receives an identifier that has not been confirmed by the identifier recognition unit 120 and determines whether the identifier is a general identifier. If the identifier is a general identifier, the first step analysis is performed using the program peripheral information.

여기서, 일반 식별자는 시스템 함수 또는 외부 라이브러리 함수의 식별자를 제외한 일반 함수의 식별자를 의미한다. 즉, 시스템 함수 또는 외부 라이브러리 함수는 난독화가 적용되지 않는 함수이므로 이러한 함수까지 분석할 필요가 없기 때문에 일반 함수만 추출하여 역난독화 수행시간을 단축시킬 수 있다.Here, the generic identifier means an identifier of a generic function except for a system function or an identifier of an external library function. In other words, since the system function or the external library function is a function to which obfuscation is not applied, it is not necessary to analyze such a function. Therefore, it is possible to shorten the reverse obfuscation time by extracting general functions.

또한, 식별자 역난독화부(140)는, 필드(field), 메소드(method), 클래스(class) 및 패키지(package)를 포함하는 식별자의 타입별로 역난독화 분석을 수행한다.In addition, the inverse identifier obfuscation unit 140 performs reverse obfuscation analysis for each type of identifier including a field, a method, a class, and a package.

따라서, 식별자 역난독화부(140)는 식별자의 타입별(필드, 메소드, 클래스/패키지)로 식별자를 분류하고, 프로그램 주변정보를 이용하여 각각의 분류에 대해 식별자를 역난독화한 후, 난독화된 식별자와 역난독화된 식별자를 매핑하여 키워드 매핑 테이블(150)에 저장하는 순서로 제1단계 분석을 수행한다.Therefore, the identifier reverse obfuscation unit 140 classifies the identifiers by type (field, method, class / package) of identifiers, reverse-obfuscates the identifiers for each classification using the program peripheral information, And performs the first-step analysis in the order of mapping the identifiers that have been reverse-obfuscated and stored in the keyword mapping table 150.

여기서, 프로그램 주변정보는 식별자의 타입에 따라 참고할 수 있는 프로그래밍적 요소들로써 다음과 같은 것들이 있다.Here, the program peripheral information includes programming elements that can be referred to according to the type of the identifier.

먼저, 필드는 필드의 타입, 제한자 및 로컬 필드 여부 중 적어도 하나의 요소를 이용하고, 메소드는 메소드의 소속 패키지와 클래스, 시그니처, 주요 처리 로직, 실행 흐름 그래프(Control Flow Graph)상의 Caller 및 Callee 메소드 중 적어도 하나의 요소를 이용하며, 클래스는 클래스의 종류, 클래스의 소속 패키지, 상속 관계 및 보유한 메소드 중 적어도 하나의 요소를 이용한다.First, the field uses at least one element of the field type, constraint, and local field, and the method includes the method's belonging package and class, signature, main processing logic, caller on the control flow graph, and Callee At least one element of the method is used, and the class uses at least one element of the class, the belonging package of the class, the inheritance relation, and the held method.

또한, 식별자 역난독화부(140)는, 예상시간 입력부(130)로부터 입력받은 예상시간을 참고하여 제1단계의 수행시간이 예상시간을 초과하지 않을 경우, 예를 들어 예상시간을 8분으로 입력한 경우 제1단계 수행시간이 5분만에 종료되었다면 시스템 주변정보를 이용하여 제2단계 분석을 더 수행한다.Also, the identifier inverse-mapping unit 140 refers to the estimated time input from the estimated time input unit 130, and when the execution time of the first step does not exceed the estimated time, for example, the estimated time is input as 8 minutes In this case, if the execution time of the first step is completed within 5 minutes, the second step analysis is further performed using the system peripheral information.

자세히는, 식별자 역난독화부(140)는 제1단계 분석을 통해 역난독화된 식별자를 입력받아 입력된 식별자 중 확인되지 않은 식별자가 존재하면, 식별자의 타입별로 식별자를 분류한다. More specifically, the inverse identifier obfuscation unit 140 receives the inverse obfuscated identifier through the first stage analysis and classifies the identifiers according to the type of the identifier when there is an unidentified identifier among the inputted identifiers.

이때, 분류된 식별자가 시스템 함수 또는 외부 라이브러리 함수와 관련되어 사용되는 식별자인 경우, 시스템 함수 또는 외부 라이브러리 함수의 호출 정보를 이용하여 각각의 분류에 대해 식별자를 역난독화하고, 제1단계 분석에서와 마찬가지로 난독화된 식별자와 역난독화된 식별자를 매핑하여 키워드 매핑 테이블(150)에 저장하는 순서로 제2단계 분석을 수행한다.In this case, if the classified identifier is an identifier used in association with the system function or the external library function, the identifier is reversely obfuscated for each classification by using the calling information of the system function or the external library function, The second stage analysis is performed in the order of mapping the obfuscated identifier and the reverse obfuscated identifier to the keyword mapping table 150. [

또한, 식별자 역난독화부(140)는 제2단계 분석이 종료되면, 제1 및 2단계의 총 수행시간이 예상시간을 초과하지 않을 경우, 실행 흐름 그래프를 이용하여 제3단계 분석을 더 수행한다.In addition, when the second stage analysis is terminated, the identifier reverse-obfuscation unit 140 further performs the third stage analysis using the execution flow graph when the total execution time of the first and second stages does not exceed the expected time .

자세히는, 식별자 역난독화부(140)는 실행 흐름 그래프를 생성하여, 실행 흐름 그래프의 초기 진입 함수부터 제2단계 분석을 통해 역난독화된 식별자를 입력받고, 입력된 식별자 중 확인되지 않은 식별자가 존재하면, 식별자의 타입이 메소드, 클래스 및 패키지인지 판단한다.In more detail, the inverse identifier obfuscation unit 140 generates an execution flow graph, receives the reverse obfuscated identifier through the second-stage analysis from the initial entry function of the execution flow graph, and outputs the unidentified identifier If so, it is determined whether the type of the identifier is a method, a class, and a package.

이때, 식별자의 타입이 메소드, 클래스 및 패키지의 식별자인 것으로 판단되면, 실행 흐름 그래프의 이웃 노드 정보를 이용하여 각 식별자의 타입별로 식별자를 역난독화하고, 제1 및 2단계 분석에서와 마찬가지로 난독화된 식별자와 역난독화된 식별자를 매핑하여 키워드 매핑 테이블(150)에 저장하는 순서로 제3단계 분석을 수행한다.If it is determined that the type of the identifier is an identifier of a method, a class, and a package, the identifier is reverse-obfuscated for each type of identifier using the neighbor node information of the execution flow graph. As in the first and second- The third step analysis is performed in the order of mapping the converted identifier and the reverse obfuscated identifier to the keyword mapping table 150.

여기서 이웃 노드란, 해당 노드를 호출한 노드 또는 해당 노드가 호출하는 노드를 의미한다.Here, the neighboring node means the node that called the node or the node that the node called.

즉, 식별자 역난독화부(140)는 제1단계 분석 수행 이후, 예상시간 입력부(130)로부터 입력된 예상시간을 참고하여 분석시 소요된 수행시간에 따라 제2, 3단계 분석을 더 수행할 수도 있고, 제2, 3단계로 갈수록 난독화된 식별자의 복원 정도가 더욱 높아진다.That is, after performing the first step analysis, the identifier reverse-obfuscation unit 140 may further perform the second and third step analysis according to the execution time spent in the analysis, referring to the estimated time input from the expected time input unit 130 And the degree of restoration of the obfuscated identifier becomes higher as the number of the second and third steps increases.

DEX 재구성부(160)는 식별자 역난독화부(140)에서 분석된 결과를 기반으로 DEX 파일을 재구성하여 역난독화 즉, 난독화된 식별자가 복원된 애플리케이션을 생성한다.The DEX reconstructing unit 160 reconstructs the DEX file based on the result of the analysis by the inverse identifier obfuscation unit 140 to generate an application in which the obfuscated or obfuscated identifier is reconstructed.

이하에서는 도 5 내지 도 10을 통해 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 방법에 대하여 설명한다.Hereinafter, a method for inverse obfuscation of an obfuscated mobile application according to an embodiment of the present invention will be described with reference to FIGS. 5 to 10. FIG.

도 5는 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 방법의 동작 흐름을 도시한 순서도로서, 이를 참조하여 본 발명의 구체적인 동작을 설명한다.FIG. 5 is a flowchart illustrating an operation flow of an inverse obfuscation method of an obfuscated mobile application according to an embodiment of the present invention, and a specific operation of the present invention will be described with reference to FIG.

본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치를 이용한 식별자 역난독화 방법에 따르면, 먼저, 식별자 난독화가 적용된 모바일 애플리케이션의 DEX(Dalvik Executable) 파일을 DEX 분석부(110)가 분석하여 식별자 인식부(120)에 분석된 식별자를 입력한다(S510).According to an identifier inverse obfuscation method using an identifier inverse obfuscation device of an obfuscated mobile application according to an embodiment of the present invention, first, a DEX analysis unit 110 for a DEX (Dalvik Executable) file of a mobile application to which identifier obfuscation is applied, And inputs the analyzed identifier to the identifier recognizing unit 120 (S510).

자세히는, 애플리케이션 파일을 압축 해제하여 DEX 파일의 바이트 코드를 추출하여, DEX 파일의 바이트코드를 분석한다.More specifically, the application file is decompressed to extract the bytecode of the DEX file, and the bytecode of the DEX file is analyzed.

그 다음, 예상시간 입력부(130)가 사용자로부터 애플리케이션의 역난독화 예상시간을 입력받는다(S520).Next, the anticipated time input unit 130 receives the anticipated reverse obfuscation time of the application from the user (S520).

이때, 역난독화 예상시간을 입력받는 이유는, 실제 역난독화에 소요되는 시간을 측정하고 이를 예상시간과 비교하여 역난독화 분석 단계를 조정하기 위함이다.At this time, the reason for receiving the reverse obfuscation prediction time is to measure the time required for the actual reverse obfuscation and to adjust the reverse obfuscation analysis phase by comparing it with the expected time.

그리고 식별자 인식부(120)가 S510 단계에서 분석된 식별자를 입력받아 확인되지 않은 식별자의 존재 여부를 판단한다(S530).The identifier recognizing unit 120 receives the identifier analyzed in step S510 and determines whether there is an unidentified identifier (step S530).

즉, 난독화가 적용된 식별자가 존재하는지 여부를 판단하여 난독화가 적용된 식별자를 추려낸다.That is, it is determined whether or not an obfuscated identifier exists, and the obfuscated identifier is selected.

S530단계의 판단 결과, 확인되지 않은 식별자가 존재하면, 식별자 인식부(120)는 식별자 역난독화부(140)에 확인되지 않은 식별자를 입력하고, 식별자 역난독화부(140)는 해당 식별자가 일반 식별자인지 판단한다(S540).As a result of the determination in step S530, if there is an unidentified identifier, the identifier recognizing unit 120 inputs an identifier that has not been confirmed in the inverse identifier obfuscation unit 140, and the inverse identifier obfuscation unit 140 determines that the identifier is a generic identifier (S540).

여기서, 일반 식별자는 시스템 함수 또는 외부 라이브러리 함수의 식별자를 제외한 일반 함수의 식별자를 의미한다. 즉, 시스템 함수 또는 외부 라이브러리 함수는 난독화가 적용되지 않는 함수이므로 이러한 함수까지 분석할 필요가 없기 때문에 일반 함수만 추출하여 역난독화 수행시간을 단축시킬 수 있다.Here, the generic identifier means an identifier of a generic function except for a system function or an identifier of an external library function. In other words, since the system function or the external library function is a function to which obfuscation is not applied, it is not necessary to analyze such a function. Therefore, it is possible to shorten the reverse obfuscation time by extracting general functions.

S540단계의 판단 결과, 해당 식별자가 일반 식별자인 경우, 프로그램 주변정보를 이용하여 제1단계 분석을 수행한다(S550).If it is determined in step S540 that the identifier is a general identifier, the first stage analysis is performed using the program peripheral information (S550).

이때, S550단계를 자세히 설명하면 다음과 같다.In this case, step S550 will be described in detail as follows.

도 6은 도 5의 제1단계 분석 수행의 세부 과정을 도시한 순서도이다.FIG. 6 is a flowchart showing a detailed procedure of the first step analysis of FIG.

도 6에서와 같이 식별자 역난독화부(140)는 먼저, 식별자의 타입별로 식별자를 분류한다(S551).As shown in FIG. 6, the identifier reverse obfuscation unit 140 first classifies the identifiers according to the types of the identifiers (S551).

이때, 식별자의 타입은 필드(field), 메소드(method), 클래스(class) 및 패키지(package)로 분류된다.At this time, the type of the identifier is classified into a field, a method, a class, and a package.

그 다음, 프로그램 주변정보를 이용하여 각각의 분류에 대해 식별자를 역난독화한다(S552).Next, the identifier is reverse-obfuscated for each classification using the program peripheral information (S552).

여기서, 프로그램 주변정보는 식별자의 타입에 따라 참고할 수 있는 프로그래밍적 요소들로써 다음과 같은 것들이 있다.Here, the program peripheral information includes programming elements that can be referred to according to the type of the identifier.

먼저, 필드는 필드의 타입, 제한자 및 로컬 필드 여부 중 적어도 하나의 요소를 이용하고, 메소드는 메소드의 소속 패키지와 클래스, 시그니처, 주요 처리 로직, 실행 흐름 그래프(Control Flow Graph)상의 Caller 및 Callee 메소드 중 적어도 하나의 요소를 이용하며, 클래스는 클래스의 종류, 클래스의 소속 패키지, 상속 관계 및 보유한 메소드 중 적어도 하나의 요소를 이용한다.First, the field uses at least one element of the field type, constraint, and local field, and the method includes the method's belonging package and class, signature, main processing logic, caller on the control flow graph, and Callee At least one element of the method is used, and the class uses at least one element of the class, the belonging package of the class, the inheritance relation, and the held method.

그 다음, 난독화된 식별자와 역난독화된 식별자를 매핑하여 키워드 매핑 테이블(150)에 저장한다(S553).Then, the obfuscated identifier and the reverse obfuscated identifier are mapped and stored in the keyword mapping table 150 (S553).

이와 같은 과정을 통해 제1단계 분석이 완료되면, 식별자 역난독화부(140)는, 예상시간 입력부(130)로부터 입력받은 예상시간과 제1단계의 수행시간을 비교한다(S560).When the first step analysis is completed through the above process, the identifier reverse blunting unit 140 compares the expected time input from the expected time input unit 130 with the execution time of the first step (S560).

S560단계의 비교 결과, 제1단계의 수행시간이 예상시간을 초과하지 않을 경우, 예를 들어 예상시간을 8분으로 입력한 경우, 제1단계 수행시간이 5분만에 종료되었다면 시스템 주변정보를 이용하여 제2단계 분석을 더 수행한다(S570).As a result of the comparison in step S560, if the execution time of the first step does not exceed the expected time, for example, if the expected time is entered as 8 minutes, and the execution time of the first step ends in 5 minutes, A second step analysis is further performed (S570).

이때, S570단계를 자세히 설명하면 다음과 같다.In this case, step S570 will be described in detail as follows.

도 7은 도 5의 제2단계 분석 수행의 세부 과정을 도시한 순서도이다.FIG. 7 is a flowchart illustrating a detailed procedure of the second step analysis of FIG.

도 7에서와 같이 식별자 역난독화부(140)는 먼저, 제1단계 분석을 통해 역난독화된 식별자를 입력받는다(S571).As shown in FIG. 7, the identifier reverse obfuscation unit 140 first receives the reverse obfuscated identifier through the first step analysis (S571).

그 다음, S571 단계에서 입력된 식별자 중 확인되지 않은 식별자가 존재하는지 판단하여(S572), 확인되지 않은 식별자가 존재하면 식별자의 타입별(필드, 메소드, 클래스/패키지)로 식별자를 분류한다(S573).Then, it is determined whether there is an unidentified identifier among the identifiers input in step S571 (S572). If there is an unidentified identifier, the identifier is classified by type (field, method, class / package) of the identifier ).

그 다음, S573단계에서 분류된 식별자가 시스템 함수 또는 외부 라이브러리 함수와 관련되어 사용되는 식별자인 경우(S574), 시스템 함수 또는 외부 라이브러리 함수의 호출 정보를 이용하여 각각의 분류에 대해 식별자를 역난독화한다(S575).Next, if the identifier classified in step S573 is an identifier used in association with the system function or the external library function (S574), the identifier is reversely obfuscated for each classification by using the calling information of the system function or the external library function (S575).

그 다음, 난독화된 식별자와 역난독화된 식별자를 매핑하여 키워드 매핑 테이블(150)에 저장한다(S576).Next, the obfuscated identifier and the reverse obfuscated identifier are mapped and stored in the keyword mapping table 150 (S576).

이와 같은 과정을 통해 제2단계 분석이 완료되면, 식별자 역난독화부(140)는, 예상시간 입력부(130)로부터 입력받은 예상시간과 제1 및 2단계의 총 수행시간을 비교한다(S580).When the analysis of the second stage is completed through the above process, the identifier reverse blunting unit 140 compares the estimated time inputted from the estimated time input unit 130 with the total execution time of the first and second stages (S580).

S580단계의 비교 결과, 제1 및 2단계의 수행시간이 예상시간을 초과하지 않을 경우, 예를 들어 예상시간을 8분으로 입력한 경우, 제1 및 2단계의 총 수행시간이 7분만에 종료되었다면 실행 흐름 그래프를 이용하여 제3단계 분석을 더 수행한다(S590).As a result of the comparison in the step S580, if the execution time of the first and second steps does not exceed the expected time, for example, when the estimated time is inputted as 8 minutes, the total execution time of the first and second steps ends in 7 minutes The third step analysis is further performed using the execution flow graph (S590).

이때, S590단계를 자세히 설명하면 다음과 같다.In this case, step S590 will be described in detail as follows.

도 8은 도 5의 제3단계 분석 수행의 세부 과정을 도시한 순서도이다.FIG. 8 is a flowchart showing a detailed procedure of the third step analysis of FIG.

도 8에서와 같이 식별자 역난독화부(140)는 먼저, 실행 흐름 그래프를 생성한다(S591).As shown in FIG. 8, the identifier reverse-obfuscation unit 140 first generates an execution flow graph (S591).

도 9는 도 5의 제3단계 분석 수행 시 사용되는 실행 흐름 그래프에 대한 예시 도면이다.FIG. 9 is an exemplary diagram of an execution flow graph used in the third step analysis of FIG. 5; FIG.

실행 흐름 그래프는 도 9에서와 같은 흐름으로 나타날 수 있으며, 이때 도 9에서 (a)는 난독화가 적용되지 않은 프로그램을 나타낸 것이고, (b)는 난독화가 적용된 프로그램을 나타낸 것이며, (c)와 (d)는 (b)의 프로그램을 (a)로 역난독화(복원)시키기 위한 과정을 나타낸 것이며, (e)는 (c)와 (d)의 수행 결과를 나타낸 것이다.9 (a) shows a program to which obfuscation is not applied, (b) shows a program to which obfuscation is applied, and (c) and d) shows the process of reverse obfuscation (restoring) the program of (b) to (a), and (e) shows the results of performing (c) and (d).

따라서, 식별자 역난독화부(140)는 제2단계 분석을 통해 역난독화된 식별자를 입력받는데, 자세히는 실행 흐름 그래프의 초기 진입 함수부터 입력받는다(S592).Therefore, the identifier reverse-obfuscation unit 140 receives the reverse-obfuscated identifier through the second-step analysis, and receives the input from the initial entry function of the execution flow graph in detail (S592).

그 다음, S592단계에서 입력된 식별자 중 확인되지 않은 식별자가 존재하는지 판단한다(S593).Then, it is determined whether there is an unidentified identifier among the identifiers input in the step S592 (S593).

S593단계의 판단 결과 확인되지 않은 식별자가 존재하면, 식별자의 타입이 메소드, 클래스 및 패키지인지 판단한다(S594).If it is determined in step S593 that an identifier has not been confirmed, it is determined whether the type of the identifier is a method, a class, and a package (S594).

S594단계의 판단 결과, 식별자의 타입이 메소드, 클래스 및 패키지의 식별자인 것으로 판단되면, 실행 흐름 그래프의 이웃 노드 정보를 이용하여 각 식별자의 타입별로 식별자를 역난독화한다(S595).If it is determined in step S594 that the type of the identifier is an identifier of a method, a class, and a package, the identifier is de-obfuscated for each type of identifier using the neighbor node information of the execution flow graph (S595).

여기서 이웃 노드란, 해당 노드를 호출한 노드 또는 해당 노드가 호출하는 노드를 의미한다.Here, the neighboring node means the node that called the node or the node that the node called.

그 다음, 난독화된 식별자와 역난독화된 식별자를 매핑하여 키워드 매핑 테이블(150)에 저장한다(S596).Next, the obfuscated identifier and the reverse obfuscated identifier are mapped and stored in the keyword mapping table 150 (S596).

이와 같은 과정을 통해 제3단계 분석이 완료되면, DEX 재구성부(160)가 식별자 역난독화부(140)에서 분석된 결과를 기반으로 DEX 파일을 재구성하여 역난독화된 애플리케이션을 생성한다(S600).When the third stage analysis is completed through the above process, the DEX reconstruction unit 160 reconstructs the DEX file based on the result of the analysis by the inverse identifier obfuscation unit 140 to generate the reverse obfuscated application (S600) .

도 10은 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 방법을 적용한 결과를 나타낸 예시 표이다.10 is an exemplary table showing results of applying an identifier reverse obfuscation method of an obfuscated mobile application according to an embodiment of the present invention.

도 10을 참고하여 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 방법을 간략히 정리하자면, 먼저, 식별자의 각 타입별(Field, Method, Class/Package)로 정해진 키워드에 따라 개별 역난독화를 적용하여 제1단계 분석을 수행하면 First Phase에서와 같이 식별자의 각 타입별로 난독화된 식별자의 일부가 복원된다.Referring to FIG. 10, a method of inverse obfuscating an identifier of an obfuscated mobile application according to an embodiment of the present invention will be briefly described. First, an identifier is classified according to a keyword defined by each type (Field, Method, Class / Package) When reverse first obfuscation is applied to perform the first stage analysis, some of the obfuscated identifiers are restored for each type of identifier as in the first phase.

그 다음, 제1단계 분석에서 일부 복원된 식별자에 시스템 함수 또는 외부 라이브러리 함수의 호출 정보를 이용하여 제2단계 분석을 수행하면 Second Phase에서와 같이 각 타입별로 식별자의 복원이 더 진행된다.Then, if the second step analysis is performed using the system function or the calling information of the external library function in the restored identifier in the first step analysis, the identifier is restored for each type as in the second phase.

그 다음, 제2단계 분석에서 복원된 식별자에 실행 흐름 그래프(Control Flow Graph)를 이용하여 제3단계 분석을 수행하면 Third Phase에서와 같이 각 타입별로 식별자의 복원이 더 진행된다.Then, if the third step analysis is performed using the control flow graph on the identifier reconstructed in the second step analysis, the identifier is restored for each type as in the third phase.

즉, 제1단계 분석 수행 이후, 제2, 3단계로 갈수록 난독화된 식별자의 복원 정도가 더욱 높아진다.That is, after performing the first step analysis, the degree of obfuscation of the obfuscated identifiers is further increased toward the second and third steps.

상술한 바와 같이, 본 발명의 실시예에 따른 난독화된 모바일 애플리케이션의 식별자 역난독화 장치 및 그 방법은 식별자 난독화가 적용된 악성 모바일 애플리케이션에 대해 식별자들의 종류를 분류하고 각 분류에 따라 식별자 주변정보를 토대로 단계별 역난독화를 수행하여 악성 모바일 애플리케이션을 분석함으로써, 악성코드 분석가들로 하여금 악성 모바일 애플리케이션 로직 분석을 위한 시간과 노력을 단축시킬 수 있어 효과적인 대응 및 분석에 기여할 수 있다.As described above, an apparatus for inverse obfuscation of an obfuscated mobile application according to an embodiment of the present invention and a method thereof can classify types of identifiers for a malicious mobile application to which identifier obfuscation is applied, By performing step-by-step reverse obfuscation based on analysis of malicious mobile applications, malicious code analysts can shorten the time and effort required to analyze malicious mobile application logic, contributing to effective response and analysis.

본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the scope of the invention as defined by the appended claims. will be. Accordingly, the true scope of the present invention should be determined by the following claims.

110 : DEX 분석부 120 : 식별자 인식부
130 : 예상시간 입력부 140 : 식별자 역난독화부
150 : 키워드 매핑 테이블 160 : DEX 재구성부
110: DEX analysis unit 120: Identifier recognition unit
130: Estimated time input unit 140: Identifier reverse obfuscation unit
150: Keyword mapping table 160: DEX reconstruction unit

Claims (18)

난독화된 모바일 애플리케이션의 DEX(Dalvik Executable) 파일을 분석하는 DEX 분석부;
상기 DEX 분석부에서 분석된 상기 DEX 파일의 식별자를 입력받아 확인되지 않은 식별자의 존재 여부를 인식하는 식별자 인식부;
상기 식별자 인식부로부터 확인되지 않은 식별자를 입력받아 상기 입력된 식별자가 난독화 적용이 가능한 일반 식별자인지 판단하여 상기 일반 식별자인 경우, 상기 식별자의 타입에 따라 참고할 수 있는 다수의 프로그래밍적 요소들이 포함된 프로그램 주변정보를 이용하여 제1단계 분석을 수행하여 상기 확인되지 않은 식별자를 역난독화하는 식별자 역난독화부; 및
상기 식별자 역난독화부에서 역난독화 된 식별자를 기반으로 상기 DEX 파일을 재구성하여 역난독화된 애플리케이션을 생성하는 DEX 재구성부를 포함하는 모바일 애플리케이션의 식별자 역난독화 장치.
A DEX analysis unit for analyzing the DEX (Dalvik Executable) file of an obfuscated mobile application;
An identifier recognizing unit for recognizing whether or not an identifier that has not been received by receiving the identifier of the DEX file analyzed by the DEX analyzing unit exists;
And an identifier unidentified by the identifier recognition unit is received, and if the input identifier is a general identifier capable of obfuscation application, if the identifier is the general identifier, a plurality of programming elements that can be referenced according to the type of the identifier are included An identifier reverse obfuscation unit for reverse-obfuscating the unidentified identifier by performing a first-step analysis using the program peripheral information; And
And a DEX reconstruction unit for reconstructing the DEX file based on the reverse obfuscated identifier in the identifier reverse obfuscation unit to generate a reverse obfuscated application.
제1항에 있어서,
사용자로부터 상기 애플리케이션의 역난독화 예상시간을 입력받는 예상시간 입력부를 더 포함하며,
상기 식별자 역난독화부는,
상기 제1단계 분석의 수행시간이 상기 예상시간을 초과하지 않으면 상기 프로그램 주변정보를 이용하여 제2단계 분석을 수행하고, 상기 제1 및 2 단계 분석의 수행시간이 상기 예상시간을 초과하지 않으면, 상기 제1 및 2단계 분석의 수행시간에 따라 생성되는 실행 흐름 그래프를 이용하여 제3단계 분석을 수행하는 모바일 애플리케이션의 식별자 역난독화 장치.
The method according to claim 1,
Further comprising an expected time input unit for receiving a reverse obfuscation expected time of the application from a user,
Wherein the identifier reverse obfuscation unit comprises:
Performing a second step analysis using the program peripheral information if the execution time of the first step analysis does not exceed the expected time and if the execution time of the first and second step analysis does not exceed the expected time, Wherein the third step analysis is performed using an execution flow graph generated according to the execution time of the first and second steps analysis.
제1항에 있어서,
상기 식별자 역난독화부는,
난독화 적용이 불가능한 시스템 함수 또는 외부 라이브러리 함수의 식별자를 제외한 식별자를 상기 일반 식별자로 판단하는 모바일 애플리케이션의 식별자 역난독화 장치.
The method according to claim 1,
Wherein the identifier reverse obfuscation unit comprises:
An identifier of a system function or an external library function that can not be obfuscated is determined as the general identifier.
제2항에 있어서,
상기 식별자 역난독화부는,
필드, 메소드, 클래스 및 패키지 타입으로 상기 식별자를 각각 분류하고, 상기 식별자의 타입별로 상기 제1 내지 제3단계 분석을 수행하는 모바일 애플리케이션의 식별자 역난독화 장치.
3. The method of claim 2,
Wherein the identifier reverse obfuscation unit comprises:
Classifying the identifiers into fields, methods, classes, and package types, respectively, and performing the first through third analysis by type of the identifiers.
제4항에 있어서,
상기 식별자 역난독화부는,
상기 프로그램 주변정보를 이용하여 각각의 타입에 대해 상기 식별자를 역난독화하고, 확인되지 않은 식별자와 상기 역난독화된 식별자를 매핑하여 키워드 매핑 테이블에 저장하여 상기 제1단계 분석을 수행하는 모바일 애플리케이션의 식별자 역난독화 장치.
5. The method of claim 4,
Wherein the identifier reverse obfuscation unit comprises:
A mobile application for performing the first stage analysis by mapping the unidentified identifier and the reverse obfuscated identifier to the keyword mapping table by inverse obfuscating the identifier for each type using the program peripheral information, Of the identifier.
제5항에 있어서,
상기 필드는 필드의 타입, 제한자 및 로컬 필드 여부 중 적어도 하나의 요소를 이용하고, 상기 메소드는 메소드의 소속 패키지와 클래스, 시그니처, 주요 처리 로직, 실행 흐름 그래프(Control Flow Graph)상의 Caller 및 Callee 메소드 중 적어도 하나의 요소를 이용하며, 상기 클래스는 클래스의 종류, 클래스의 소속 패키지, 상속 관계 및 보유한 메소드 중 적어도 하나의 요소를 이용하는 모바일 애플리케이션의 식별자 역난독화 장치.
6. The method of claim 5,
The method uses at least one of a field type, a constraint, and a local field, and the method includes at least one of a method package's belonging to a class, a signature, a main processing logic, a caller on a control flow graph, Wherein the class uses at least one element of a type of a class, a belonging package of a class, an inheritance relationship, and a method held by the at least one element of the identifier of the mobile application.
제4항에 있어서,
상기 식별자 역난독화부는,
상기 제1단계 분석을 통해 역난독화된 식별자 중 확인되지 않은 식별자가 존재하면, 해당 식별자를 상기 식별자의 타입에 대응하도록 분류하고,
상기 분류된 식별자가 시스템 함수 또는 외부 라이브러리 함수와 관련되어 사용되는 식별자인 경우, 상기 시스템 함수 또는 상기 외부 라이브러리 함수의 호출 정보를 이용하여 각각의 분류에 대해 상기 식별자를 역난독화하고, 확인되지 않은 식별자와 상기 역난독화된 식별자를 매핑하여 키워드 매핑 테이블에 저장하여 상기 제2단계 분석을 수행하는 모바일 애플리케이션의 식별자 역난독화 장치.
5. The method of claim 4,
Wherein the identifier reverse obfuscation unit comprises:
Wherein if an unidentified identifier exists among the reverse-obfuscated identifiers through the first-stage analysis, the identifier is classified to correspond to the type of the identifier,
If the classified identifier is an identifier used in association with a system function or an external library function, reverse-obfuscates the identifier for each classification using the system function or the calling information of the external library function, Wherein the second step analysis is performed by mapping the identifier and the reverse obfuscated identifier to the keyword mapping table.
제4항에 있어서,
상기 식별자 역난독화부는,
상기 실행 흐름 그래프의 초기 진입 함수부터 상기 제2단계 분석을 통해 역난독화된 식별자 중 확인되지 않은 식별자가 존재하면, 상기 식별자의 타입이 메소드, 클래스 및 패키지인지 판단하여, 상기 식별자의 타입이 메소드, 클래스 및 패키지의 식별자인 것으로 판단되면, 상기 실행 흐름 그래프의 이웃 노드 정보를 이용하여 각 식별자의 타입별로 상기 식별자를 역난독화하고, 확인되지 않은 식별자와 상기 역난독화된 식별자를 매핑하여 키워드 매핑 테이블에 저장하여 상기 제3단계 분석을 수행하는 모바일 애플리케이션의 식별자 역난독화 장치.
5. The method of claim 4,
Wherein the identifier reverse obfuscation unit comprises:
Classifying the type of the identifier into a method, a class, and a package, if an identifier that has not been identified among the reversed obfuscated identifiers exists through the second step analysis from an initial entry function of the execution flow graph, The method comprising the steps of inverse obfuscating the identifier for each type of each identifier using the neighbor node information of the execution flow graph and mapping the unidentified identifier and the reverse obfuscated identifier to the keyword Mapping table to perform the third step analysis.
제8항에 있어서,
상기 이웃 노드는,
해당 노드를 호출한 노드 또는 해당 노드가 호출하는 노드인 모바일 애플리케이션의 식별자 역난독화 장치.
9. The method of claim 8,
The neighboring node,
An identifier of a mobile application that is the node that called the node or the node it is calling.
난독화된 모바일 애플리케이션의 식별자 역난독화 장치를 이용한 식별자 역난독화 방법에 있어서,
상기 애플리케이션의 DEX(Dalvik Executable) 파일을 분석하여 상기 DEX 파일의 식별자를 입력받는 단계;
상기 입력된 식별자 중 확인되지 않은 식별자가 존재하면, 해당 식별자가 난독화 적용이 가능한 일반 식별자인지 판단하는 단계;
상기 일반 식별자로 판단되면, 상기 식별자의 타입에 따라 참고할 수 있는 다수의 프로그래밍적 요소들이 포함된 프로그램 주변정보를 이용하여 제1단계 분석을 수행하여 상기 확인되지 않은 식별자를 역난독화하는 단계; 및
상기 역난독화된 식별자를 기반으로 상기 DEX 파일을 재구성하여 역난독화된 애플리케이션을 생성하는 단계를 포함하는 식별자 역난독화 방법.
Identifier of obfuscated mobile application A method for inverse obfuscation using an apparatus for reverse obfuscation,
Receiving an identifier of the DEX file by analyzing a DEX (Dalvik Executable) file of the application;
Determining whether the identifier is an ordinary identifier that can be obfuscated if there is an unidentified identifier among the input identifiers;
Performing a first step analysis using the program peripheral information including a plurality of programmable elements that can be referred to according to the type of the identifier, if the general identifier is determined, to reverse-obfuscate the unidentified identifier; And
And reconstructing the DEX file based on the reverse obfuscated identifier to generate a reverse obfuscated application.
제10항에 있어서,
상기 식별자를 입력받는 단계 이후,
사용자로부터 상기 애플리케이션의 역난독화 예상시간을 입력받는 단계를 더 포함하고,
상기 제1단계 분석을 수행하는 단계 이후,
상기 제1단계 분석의 수행시간이 상기 예상시간을 초과하지 않으면, 상기 프로그램 주변정보를 이용하여 제2단계 분석을 수행하는 단계; 및
상기 제1 및 2단계 분석의 수행시간이 상기 예상시간을 초과하지 않으면, 상기 제1 및 2단계 분석의 수행시간에 따라 생성되는 실행 흐름 그래프를 이용하여 제3단계 분석을 수행하는 단계를 더 포함하는 식별자 역난독화 방법.
11. The method of claim 10,
After receiving the identifier,
Further comprising receiving an anticipated reverse obfuscation time of the application from a user,
After performing the first step analysis,
Performing a second step analysis using the program peripheral information if the execution time of the first step analysis does not exceed the expected time; And
If the execution time of the first and second step analysis does not exceed the expected time, performing a third step analysis using an execution flow graph generated according to the execution time of the first and second step analysis Identifier reverse obfuscation method.
제10항에 있어서,
상기 식별자가 일반 식별자인지 판단하는 단계는,
난독화 적용이 불가능한 시스템 함수 또는 외부 라이브러리 함수의 식별자를 제외한 식별자를 상기 일반 식별자로 판단하는 식별자 역난독화 방법.
11. The method of claim 10,
Wherein determining whether the identifier is a generic identifier comprises:
A method for inverse obfuscation that determines an identifier excluding an identifier of a system function or an external library function that can not be obfuscated as the general identifier.
제11항에 있어서,
필드, 메소드, 클래스 및 패키지 타입으로 상기 식별자를 각각 분류하고, 상기 식별자의 타입별로 상기 제1 내지 제3단계 분석을 수행하는 식별자 역난독화 방법.
12. The method of claim 11,
Classifying the identifiers into fields, methods, classes, and package types, and performing the first through third analysis by type of the identifiers.
제13항에 있어서,
상기 제1단계 분석을 수행하는 단계는,
상기 프로그램 주변정보를 이용하여 각각의 타입에 대해 상기 식별자를 역난독화하는 단계, 및
확인되지 않은 식별자와 상기 역난독화된 식별자를 매핑하여 키워드 매핑 테이블에 저장하는 단계를 포함하는 식별자 역난독화 방법.
14. The method of claim 13,
The step of performing the first-
Reverse-obfuscating the identifier for each type using the program peripheral information, and
Mapping the unidentified identifier to the reverse obfuscated identifier and storing the mapped identifier in the keyword mapping table.
제14항에 있어서,
상기 필드는 필드의 타입, 제한자 및 로컬 필드 여부 중 적어도 하나의 요소를 이용하고, 상기 메소드는 메소드의 소속 패키지와 클래스, 시그니처, 주요 처리 로직, 실행 흐름 그래프(Control Flow Graph)상의 Caller 및 Callee 메소드 중 적어도 하나의 요소를 이용하며, 상기 클래스는 클래스의 종류, 클래스의 소속 패키지, 상속 관계 및 보유한 메소드 중 적어도 하나의 요소를 이용하는 식별자 역난독화 방법.
15. The method of claim 14,
The method uses at least one of a field type, a constraint, and a local field, and the method includes at least one of a method package's belonging to a class, a signature, a main processing logic, a caller on a control flow graph, Wherein the class uses at least one element of a class, a belonging package of a class, an inheritance relation, and a method held by the at least one element of the identifier inverse obfuscation.
제13항에 있어서,
상기 제2단계 분석을 수행하는 단계는,
상기 제1단계 분석을 통해 상기 역난독화된 식별자 중 확인되지 않은 식별자가 존재하면, 해당 식별자를 상기 식별자의 타입에 대응하도록 분류하는 단계,
상기 분류된 식별자가 시스템 함수 또는 외부 라이브러리 함수와 관련되어 사용되는 식별자인지 판단하는 단계,
상기 시스템 함수 또는 외부 라이브러리 함수와 관련되어 사용되는 식별자인 것으로 판단되면, 상기 시스템 함수 또는 상기 외부 라이브러리 함수의 호출 정보를 이용하여 각각의 분류에 대해 상기 식별자를 역난독화하는 단계, 및
확인되지 않은 식별자와 상기 역난독화된 식별자를 매핑하여 키워드 매핑 테이블에 저장하는 단계를 포함하는 식별자 역난독화 방법.
14. The method of claim 13,
The step of performing the second-
Classifying the identifiers to correspond to the types of the identifiers if there is an unidentified identifier among the inversely obfuscated identifiers through the first step analysis;
Determining whether the classified identifier is an identifier used in association with a system function or an external library function,
Reverse-obfuscating the identifier for each classification using the system function or the calling information of the external library function if it is determined to be an identifier used in association with the system function or the external library function, and
Mapping the unidentified identifier to the reverse obfuscated identifier and storing the mapped identifier in the keyword mapping table.
제13항에 있어서,
상기 제3단계 분석을 수행하는 단계는,
상기 실행 흐름 그래프의 초기 진입 함수부터 상기 제2단계 분석을 통해 역난독화된 식별자 중 확인되지 않은 식별자가 존재하면, 해당 식별자의 타입이 메소드, 클래스 및 패키지인지 판단하는 단계,
해당 식별자의 타입이 메소드, 클래스 및 패키지의 식별자인 것으로 판단되면, 상기 실행 흐름 그래프의 이웃 노드를 이용하여 각 식별자의 타입별로 상기 식별자를 역난독화하는 단계, 및
확인되지 않은 식별자와 상기 역난독화된 식별자를 매핑하여 키워드 매핑 테이블에 저장하는 단계를 포함하는 식별자 역난독화 방법.
14. The method of claim 13,
The step of performing the third-
Determining whether a type of the identifier is a method, a class, and a package if an unidentified identifier exists among the reverse obfuscated identifiers from the initial entry function of the execution flow graph through the second step analysis;
Reverse-obfuscating the identifier for each type of each identifier using a neighbor node of the execution flow graph if it is determined that the type of the identifier is an identifier of a method, a class, and a package; and
Mapping the unidentified identifier to the reverse obfuscated identifier and storing the mapped identifier in the keyword mapping table.
제17항에 있어서,
상기 이웃 노드는,
해당 노드를 호출한 노드 또는 해당 노드가 호출하는 노드인 식별자 역난독화 방법.
18. The method of claim 17,
The neighboring node,
A method for reverse obfuscation that is the node that called the node or the node it is calling.
KR1020150118756A 2015-08-24 2015-08-24 Apparatus for identifier renaming deobfuscate of obfuscated mobile applications and method thereof KR101710796B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150118756A KR101710796B1 (en) 2015-08-24 2015-08-24 Apparatus for identifier renaming deobfuscate of obfuscated mobile applications and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150118756A KR101710796B1 (en) 2015-08-24 2015-08-24 Apparatus for identifier renaming deobfuscate of obfuscated mobile applications and method thereof

Publications (1)

Publication Number Publication Date
KR101710796B1 true KR101710796B1 (en) 2017-02-28

Family

ID=58543018

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150118756A KR101710796B1 (en) 2015-08-24 2015-08-24 Apparatus for identifier renaming deobfuscate of obfuscated mobile applications and method thereof

Country Status (1)

Country Link
KR (1) KR101710796B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101833220B1 (en) 2017-07-25 2018-02-28 올댓소프트 코. Deobfuscation assessing apparatus of application code and method of assessing deobfuscation of application code using the same
KR101861341B1 (en) 2017-05-30 2018-05-28 올댓소프트 코. Deobfuscation apparatus of application code and method of deobfuscating application code using the same
KR102286451B1 (en) * 2020-11-18 2021-08-04 숭실대학교산학협력단 Method for recognizing obfuscated identifiers based on natural language processing, recording medium and device for performing the method
KR102531240B1 (en) * 2022-09-01 2023-05-11 주식회사 디포렌식코리아에스 Method, device and system for protecting personal information

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101350390B1 (en) * 2013-08-14 2014-01-16 숭실대학교산학협력단 A apparatus for code obfuscation and method thereof
KR101521765B1 (en) * 2015-01-08 2015-05-20 숭실대학교산학협력단 Apparatus For Code Obfuscation Using Indistinguishable Identifier Conversion and Method Thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101350390B1 (en) * 2013-08-14 2014-01-16 숭실대학교산학협력단 A apparatus for code obfuscation and method thereof
KR101521765B1 (en) * 2015-01-08 2015-05-20 숭실대학교산학협력단 Apparatus For Code Obfuscation Using Indistinguishable Identifier Conversion and Method Thereof

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Yuxue Piao, "안드로이드 앱 위변조 탐지를 위한 서버 기반 바이트코드 난독화 기법", 숭실대학교 대학원, 2013.08. *
윤준호외 1인, "서버 기반 암호화를 이용한 안드로이드 난독화 기술 연구", 한국통신학회 종합학술발표회 논문집, 2015.06. *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101861341B1 (en) 2017-05-30 2018-05-28 올댓소프트 코. Deobfuscation apparatus of application code and method of deobfuscating application code using the same
KR101833220B1 (en) 2017-07-25 2018-02-28 올댓소프트 코. Deobfuscation assessing apparatus of application code and method of assessing deobfuscation of application code using the same
KR102286451B1 (en) * 2020-11-18 2021-08-04 숭실대학교산학협력단 Method for recognizing obfuscated identifiers based on natural language processing, recording medium and device for performing the method
WO2022107957A1 (en) * 2020-11-18 2022-05-27 숭실대학교 산학협력단 Natural language processing-based obfuscated identifier recognition method, and recording medium and device for carrying out same
KR102531240B1 (en) * 2022-09-01 2023-05-11 주식회사 디포렌식코리아에스 Method, device and system for protecting personal information

Similar Documents

Publication Publication Date Title
US11361083B1 (en) Method and apparatus for securing embedded device firmware
KR101710796B1 (en) Apparatus for identifier renaming deobfuscate of obfuscated mobile applications and method thereof
Martín et al. MOCDroid: multi-objective evolutionary classifier for Android malware detection
US8479291B1 (en) Systems and methods for identifying polymorphic malware
Chen et al. Detecting android malware using clone detection
Salehi et al. Using feature generation from API calls for malware detection
US8584246B2 (en) Eliminating false reports of security vulnerabilities when testing computer software
JP5996809B2 (en) Code obfuscation device and method
KR101861341B1 (en) Deobfuscation apparatus of application code and method of deobfuscating application code using the same
US20160110543A1 (en) Apparatus and method for detecting malicious application based on visualization similarity
CN108536451B (en) Method and device for embedding embedded point of application program
Bacci et al. Detection of obfuscation techniques in android applications
Narayanan et al. Contextual weisfeiler-lehman graph kernel for malware detection
CN109508545B (en) Android Malware classification method based on sparse representation and model fusion
Akram et al. DroidMD: an efficient and scalable android malware detection approach at source code level
KR102427782B1 (en) Apparatus and method for detection and classification of malicious codes based on adjacent matrix
Oprişa et al. Malware clustering using suffix trees
KR101557455B1 (en) Application Code Analysis Apparatus and Method For Code Analysis Using The Same
KR101477050B1 (en) Method for extracting excutable code of application using memory dump
Malandrone et al. Powerdecode: a powershell script decoder dedicated to malware analysis
Mitchell et al. Systematic audit of third-party android phones
Geethanjali et al. AEON: android encryption based obfuscation
Xu et al. Security analysis and protection based on smali injection for android applications
Zhang et al. An empirical study of code deobfuscations on detecting obfuscated android piggybacked apps
US20230325476A1 (en) Obfuscation device, obfuscation method, and obfuscation program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200217

Year of fee payment: 4