KR20180015535A - Obfuscation method of android application using partial encryption of dex file in android application package - Google Patents

Obfuscation method of android application using partial encryption of dex file in android application package Download PDF

Info

Publication number
KR20180015535A
KR20180015535A KR1020160099180A KR20160099180A KR20180015535A KR 20180015535 A KR20180015535 A KR 20180015535A KR 1020160099180 A KR1020160099180 A KR 1020160099180A KR 20160099180 A KR20160099180 A KR 20160099180A KR 20180015535 A KR20180015535 A KR 20180015535A
Authority
KR
South Korea
Prior art keywords
file
dex
code
apk
android application
Prior art date
Application number
KR1020160099180A
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 KR1020160099180A priority Critical patent/KR20180015535A/en
Publication of KR20180015535A publication Critical patent/KR20180015535A/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/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Abstract

The present invention relates to an obfuscation method of an android application using partial encryption of a DEX file in an android application package (APK). The obfuscation method of an android application by a processor of a mobile terminal using an android as an operating system includes the steps of: converting the DEX file to an assembler for android′s DEX format (SMALI) file; selecting a source code to be changed; replacing the selected source code with an index code and encrypting and storing an original code in a separate file; and generating the DEX file which is changed. The present invention can prevent application piracy.

Description

안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법{OBFUSCATION METHOD OF ANDROID APPLICATION USING PARTIAL ENCRYPTION OF DEX FILE IN ANDROID APPLICATION PACKAGE}Technical Field [0001] The present invention relates to an obfuscation method of an Android application using partial encryption of a DEX file in an Android application package (APK)

본 발명은 안드로이드 어플리케이션의 디컴파일 방지를 위한 암호화 방법에 관한 것으로서, 보다 구체적으로는 안드로이드 어플리케이션 패키지 내 DEX 파일의 특정 부분을 암호화시켜 디컴파일 툴들에 의해 DEX 파일의 원본이 복원되는 것을 불가능하게 하는, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에 관한 것이다.The present invention relates to an encryption method for preventing decompilation of an Android application, and more particularly, to a method of encrypting a specific part of a DEX file in an Android application package to disable restoration of an original of a DEX file by decompilation tools, And how to obfuscate an Android application using partial encryption of DEX files in the Android Application Package (APK).

안드로이드란 2007년 11월 공개된 휴대폰용 운영체제, 미들웨어, 및 응용 프로그램이 통합된 소프트웨어 플랫폼을 의미한다. 오픈 소스 기반의 완전 개방형 플랫폼이라는 안드로이드의 특성상 누구나 이를 활용하여 소프트웨어 또는 기기를 개발할 수 있으므로 그 보급 및 활용이 급속도로 확대되고 있는 추세이며, 이와 더불어 “어플리케이션”이라 불리는 스마트폰의 응용프로그램 또한 급격히 증가하고 있다.
Android is a software platform that integrates mobile operating system, middleware, and applications released in November 2007. Android is a completely open platform based on open source, and anyone can use it to develop software or devices, so the spread and use of Android is rapidly expanding. In addition, application of smartphone called "application" .

한편, 안드로이드는 기존의 자바(JAVA)와 비슷한 언어인 달빅(Dalvik)을 이용하여 사용되기 때문에 디컴파일에 쉽게 노출된다는 단점이 있다. 특히, 다양한 역공학 툴(Apktool, smali/baksmali, androguard 등)을 이용하여, 어플리케이션 패키지(APK 파일)에서 손쉽게 추출된 DEX 파일이 디컴파일됨으로써, 안드로이드 어플리케이션은 원본 소스 내용이 육안으로 확인되거나 코드 내용이 검사되어 원본 소스의 코드 로직이 복원되는 보안의 치명적인 약점이 있다.
On the other hand, Android has a disadvantage in that it is easily exposed to decompile because it is used with Dalvik, a language similar to Java (JAVA). In particular, by using various reverse engineering tools (Apktool, smali / baksmali, androguard, etc.), the DEX file easily extracted from the application package (APK file) is decompiled so that the Android application can check the original source contents with the naked eye There is a fatal weakness in security that is checked and restores the code logic of the original source.

이와 같은 어플리케이션의 무단 불법 복제를 방지하기 위해, 소스코드의 해독을 어렵게 하기 위해 자바에서 주로 적용되는 식별자변환(Renaming), 제어 흐름(Control flow), 문자열 암호화(String encryption), API 은닉(API hiding) 등의 DEX 난독화 기술이 개발되어 현재 사용되고 있다.
To prevent unauthorized copying of such applications, it is necessary to use a function such as identifier renaming, control flow, string encryption, API hiding (API hiding ) Have been developed and are currently in use.

또한, DEX 파일에 디컴파일을 어렵게 하는 코드를 삽입하거나(공개특허 제10-2014-0029562호, 발명의 명칭: 안드로이드 어플리케이션의 디컴파일 방지를 위한 암호화 방법, 공개일자: 2014년 03월 11일), 자바(JAVA)에서 처리되어야 할 코드를 JNI로 이동시키는 방법(공개특허 제10-2012-0126920호, 발명의 명칭: JNI를 이용한 안드로이드 난독화 방법, 공개일자: 2012년 11월 21일) 등이 개시된 바 있다.
In addition, it is also possible to insert code that makes decompilation difficult in the DEX file (Japanese Patent Laid-Open No. 10-2014-0029562, entitled " Encryption method for preventing decompilation of Android application, public date: March 11, 2014) , A method of moving a code to be processed in Java (JAVA) to JNI (Patent No. 10-2012-0126920, entitled " Android obfuscation method using JNI, public date: November 21, 2012) Have been disclosed.

하지만, 현재까지 알려진 난독화 툴은 안드로이드 어플리케이션 개발 툴(Android Studio, Eclipse 등)에 플러그인(Plugin)으로 설치되어 컴파일 과정에서 난독화 시키거나 DEX2JAR 과정을 거쳐 JAR 파일로 만들어 난독화 코드를 삽입하는 것으로, 개발자가 직접 복잡한 난독화 과정을 제어해야만 가능하며, 이미 APK(Android application package) 파일로 만들어진 상태에서는 적용이 불가능 했다. 또한, 앞서 언급한 공개특허 제10-2014-0029562호는 실제 암호화가 진행되는 것이 아니라 디컴파일을 어렵게 하는 코드를 삽입하는 것에 대한 발명이며, 공개특허 제10-2012-0126920호는 자바(JAVA) 코드를 사용자가 직접 JNI 코드로 프로그래밍 해야만 하는 한계가 있었다.However, the obfuscation tool known so far is installed as a plugin in the Android application development tool (Android Studio, Eclipse, etc.), it is obfuscated during the compilation process, or it is made into JAR file through DEX2JAR process and inserts obfuscation code , Developers need to control the complex obfuscation process directly, and it has not been possible to use it when it has already been created as an APK (Android application package) file. In addition, the above-mentioned patent publication No. 10-2014-0029562 is not an actual encryption process but an invention for inserting a code that makes decompilation difficult, and Japanese Patent Laid- There was a limitation that users had to program their own code with JNI code.

본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 개발 툴에 관계없이 이미 컴파일이 완료된 APK 파일에 포함되어 있는 DEX 파일을 SMALI(An assembler for Andorid's dex format) 파일로 변환시키고, 변환된 SMALI 파일을 검색하여 변경할 소스코드를 선택하며, 선택된 소스코드에 대하여, 선택된 소스 코드를 색인 코드로 교체하고, 원본 코드는 별도의 파일에 암호화 시켜 저장하며, 변경된 SMALI 파일을 컴파일하여 변경된 DEX 파일을 생성하고, 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성함으로써, DEX 파일이 유출되어도 디컴파일 툴들에 의해 DEX 파일 원본이 복제되어 어플리케이션이 무단 복제되는 것을 방지할 수 있는, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법을 제공하는 것을 그 목적으로 한다.DISCLOSURE OF THE INVENTION The present invention has been proposed in order to solve the above-mentioned problems of the previously proposed methods, and it is an object of the present invention to provide a DEX file included in an already compiled APK file, regardless of a development tool, into an SMILI (An assembler for Andorid's dex format) Converts the selected source code to an index code, encrypts the original code in a separate file, and compiles the changed SMALI file. In addition, The modified DEX file is generated, and the changed DEX file and the encrypted original code file are packaged to generate the APK file with security, so that even if the DEX file is leaked, the original DEX file is copied by the decompiling tools and the application is copied without permission The partial password of the DEX file in the Android application package (APK) And to provide a method of obfuscating an Android application using the application.

상기한 목적을 달성하기 위한 본 발명의 특징에 따른, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법은,According to an aspect of the present invention, there is provided a method for obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK)

안드로이드를 운영체제로 하는 모바일 단말기의 프로세서가,The processor of the mobile terminal with Android operating system,

(1) 컴파일이 완료된 APK(Android application package) 파일의 압축을 해제하고, 상기 APK 파일에 포함되어 있는 DEX 파일을 디컴파일하여 SMALI 파일로 변환하는 단계;(1) decompressing the compiled APK (Android application package) file, decompiling the DEX file included in the APK file, and converting it into an SMALI file;

(2) 상기 단계 (1)을 통해 변환된 SMALI 파일을 검색하여 변경할 소스 코드를 선택하는 단계;(2) searching the SMALI file converted through the step (1) and selecting a source code to be changed;

(3) 상기 SMALI 파일 중, 상기 단계 (2)를 통해 선택된 소스 코드에 대하여, 상기 선택된 소스 코드를 색인 코드로 교체하고, 원본 코드는 별도의 파일에 암호화 시켜 저장하는 단계; 및(3) replacing the selected source code with an index code for the source code selected through the step (2), encrypting and storing the original code in a separate file, among the SMALI files; And

(4) 상기 단계 (3)을 통해 변경된 상기 SMALI 파일을 컴파일하여 변경된 DEX 파일을 생성하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
(4) compiling the modified SMALI file through the step (3) to generate a modified DEX file.

바람직하게는, 상기 단계 (2)에서, 변경할 소스 코드는,Preferably, in the step (2), the source code to be changed,

상기 단계 (1)을 통해 변환된 SMALI 파일 내에 포함되어 있는 리소스 아이디, 문자열 및 함수 호출부를 포함할 수 있다.
And may include a resource ID, a character string, and a function calling unit included in the SMALI file converted through the step (1).

바람직하게는,Preferably,

(5) 상기 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성하는 단계를 더 포함할 수 있다.
(5) packaging the modified DEX file and the encrypted original code file to generate an APK file to which security is applied.

더욱 바람직하게는,More preferably,

상기 암호화된 원본 코드 파일을 복호화하기 위한 복호화 엔진 파일을 삽입하고, 상기 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성할 수 있다.
A decryption engine file for decrypting the encrypted original code file may be inserted, and the modified DEX file and the encrypted original code file may be packaged to generate a security-applied APK file.

더욱더 바람직하게는,Even more preferably,

상기 보안이 적용된 APK 파일을 실행할 시, 콜백(Callback) 함수를 통해 상기 변경된 DEX 파일 내의 색인 코드와 상기 복호화 엔진 파일의 복호화 함수를 호출하는 단계를 더 포함할 수 있다.
And calling the decryption function of the decryption engine file and the index code in the modified DEX file through a callback function when executing the secure APK file.

더욱더 바람직하게는,Even more preferably,

상기 복호화 엔진 파일의 복호화 함수를 통해 상기 변경된 DEX 파일 내의 색인 코드를 원본 소스 코드로 변환하여, 상기 보안이 적용된 APK 파일을 실행시키는 단계를 더 포함할 수 있다.
Converting the index code in the modified DEX file into an original source code through a decryption function of the decryption engine file, and executing the security-applied APK file.

더욱더 바람직하게는,Even more preferably,

상기 복호화 엔진 파일의 복호화 함수를 통해 상기 암호화된 원본 코드를 원본 소스 코드로 복호화하고, 상기 변경된 DEX 파일 내의 색인 코드를 상기 복호화된 원본 소스 코드로 교체할 수 있다.The encrypted original code can be decrypted by the decryption function of the decryption engine file into the original source code and the index code in the changed DEX file can be replaced with the decrypted original source code.

본 발명에서 제안하고 있는 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에 따르면, 개발 툴에 관계없이 이미 컴파일이 완료된 APK 파일에 포함되어 있는 DEX 파일을 SMALI(An assembler for Andorid's dex format) 파일로 변환시키고, 변환된 SMALI 파일을 검색하여 변경할 소스코드를 선택하며, 선택된 소스코드에 대하여, 선택된 소스 코드를 색인 코드로 교체하고, 원본 코드는 별도의 파일에 암호화 시켜 저장하며, 변경된 SMALI 파일을 컴파일하여 변경된 DEX 파일을 생성하고, 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성함으로써, DEX 파일이 유출되어도 디컴파일 툴들에 의해 DEX 파일 원본이 복제되어 어플리케이션이 무단 복제되는 것을 방지할 수 있다.According to the obfuscation method of the Android application using the partial encryption of the DEX file in the Android application package (APK) proposed by the present invention, the DEX file included in the already compiled APK file is downloaded to the SMALI (An assembler for Andorid's dex format) file, searches the converted SMALI file to select the source code to be changed, replaces the selected source code with the index code, and encrypts the original code into a separate file The changed DEX file is generated by compiling the changed SMALI file, and the modified DEX file and the encrypted original code file are packaged to generate the APK file with security. Even if the DEX file is leaked, the DEX file source It is possible to prevent unauthorized copying of the application.

도 1은 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법의 흐름을 도시한 도면.
도 2는 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에서, APK 파일에 포함되어 있는 DEX 파일이 SMALI 파일로 변환된 모습을 도시한 도면.
도 3은 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에서, 변환된 SMALI 파일에서 선택된 주요 소스 코드가 색인 코드로 변경된 모습을 도시한 도면.
도 4는 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에서, 단계 S200을 통해 선택된 소스 코드의 원본 코드를 암호화시킨 모습을 도시한 도면.
도 5는 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에서, 변경된 SMALI 파일을 컴파일하여 변경된 DEX 파일을 생성한 모습을 도시한 도면.
FIG. 1 illustrates a flow of a method for obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an embodiment of the present invention.
FIG. 2 illustrates a method of obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an exemplary embodiment of the present invention, in which a DEX file included in an APK file is converted into an SMALI file A drawing.
FIG. 3 illustrates a method of obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an exemplary embodiment of the present invention, in which a main source code selected in the converted SMALI file is changed to an index code A drawing.
FIG. 4 illustrates a method of obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an embodiment of the present invention, in which an original code of a source code selected through step S200 is encrypted drawing.
5 is a diagram illustrating a method of obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an embodiment of the present invention, in which a changed DEX file is generated by compiling a changed SMALI file .

이하에서는 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일 또는 유사한 부호를 사용한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. In the following detailed description of the preferred embodiments of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The same or similar reference numerals are used throughout the drawings for portions having similar functions and functions.

덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
In addition, in the entire specification, when a part is referred to as being 'connected' to another part, it may be referred to as 'indirectly connected' not only with 'directly connected' . Also, to "include" an element means that it may include other elements, rather than excluding other elements, unless specifically stated otherwise.

도 1은 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법의 흐름을 도시한 도면이다. 도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법은, 안드로이드를 운영체제로 하는 모바일 단말기의 프로세서가, (1) 컴파일이 완료된 APK 파일의 압축을 해제하고, APK 파일에 포함되어 있는 DEX 파일을 디컴파일하여 SMALI 파일로 변환하는 단계(S100), (2) 단계 (1)을 통해 변환된 SMALI 파일을 검색하여 변경할 소스 코드를 선택하는 단계(S200), (3) SMALI 파일 중, 단계 (2)를 통해 선택된 소스 코드에 대하여, 선택된 소스 코드를 색인 코드로 교체하고, 원본 코드는 별도의 파일에 암호화 시켜 저장하는 단계(S300), (4) 단계 S300을 통해 변경된 SMALI 파일을 컴파일하여 변경된 DEX 파일을 생성하는 단계(S400), 및 (5) 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성하는 단계(S500)를 포함하여 구성될 수 있다. 여기서 모바일 단말기는, 실시예에 따라, 안드로이드를 운영체제로 하고 있는 스마트폰, 스마트 노트, 태블릿 PC, 스마트 카메라, 스마트 TV, 웨어러블(wearable) 컴퓨터 등의 각종 스마트 기기일 수 있다. 이하에서는, 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법의 각각의 단계에 대해서 도면을 참조하여 상세히 설명하기로 한다.
FIG. 1 is a flowchart illustrating a method for obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an embodiment of the present invention. As shown in FIG. 1, a method of obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an embodiment of the present invention includes: 1) decompressing the compiled APK file, decompiling the DEX file included in the APK file and converting it into an SMALI file (S100), (2) searching the converted SMALI file through step (1) (2) replacing the selected source code with the index code for the source code selected in the step (2) and encrypting the original code into a separate file (4) a step (S400) of creating a changed DEX file by compiling the changed SMALI file through step S300, and (5) And creating a security-applied APK file by packaging the file (S500). Here, the mobile terminal may be various smart devices such as a smart phone, a smart note, a tablet PC, a smart camera, a smart TV, a wearable computer, etc., which are operating systems of Android according to an embodiment. Hereinafter, each step of the obfuscation method of the Android application using the partial encryption of the DEX file in the Android application package (APK) according to the embodiment of the present invention will be described in detail with reference to the drawings.

단계 S100에서는 모바일 단말기의 프로세서가, 컴파일이 완료된 APK 파일의 압축을 해제하고, APK 파일에 포함되어 있는 DEX 파일을 디컴파일하여 SMALI 파일로 변환할 수 있다. 여기서, DEX 파일은 안드로이드 가상 머신인 달빅(Dalvick)이 인식할 수 있도록 .clss 파일이 바이트 코드로 변환된 파일이며, SMALI 파일은 달빅 바이트 코드를 디어셈블한 간이 코드의 파일이다. 좀 더 구체적으로는, 안드로이드에서 어플리케이션은 달빅 캐시(Dalvick Cache)라는 환경에서 실행되는데, SMALI 코드는 달빅 캐시라는 특수한 환경에서 사용되는 특화된 언어이다.
In step S100, the processor of the mobile terminal can decompress the compiled APK file, decompile the DEX file included in the APK file, and convert it into an SMALI file. Here, the DEX file is a file in which the .clss file is converted into bytecode so that it can be recognized by the Android virtual machine, Dalvick, and the SMALI file is a simplified code file that disassembles the dumbbyte code. More specifically, on Android, applications run in an environment called Dalvick Cache, where the SMALI code is a specialized language used in a special environment called the Dalvik Cache.

도 2는 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에서, APK 파일에 포함되어 있는 DEX 파일이 SMALI 파일로 변환된 모습을 도시한 도면이다. 단계 S100에서 모바일 단말기의 프로세서는, 컴파일이 완료된 APK 파일의 압축을 해제하고, 도 2(a)에 도시된 APK 파일에 포함되어 있는 DEX 파일을 디컴파일하여, 도 2(b)에 도시된 SMALI 파일로 변환할 수 있다. 좀 더 구체적으로는, 도 2(a)에 도시된 DEX 파일의 3번째 줄의 (DXLog.LOGD(this.TAG, "SDCard Directory Check: " + intent), 및 5번째 줄의 if (GlobalValues.getBuildOption() == SDCARD_MONT_CHECK_HANDLER)의 자바 소스코드가, 도 2(b)에 도시된 15번째 줄의 const-string v2, "SDCard Directory Check: " 및 23번째 줄의 invoke-static {}, Lnet/nshc/droidx3/common/GlobalValues;->getBuildOption()의 SMALI 코드로 변환될 수 있다.
FIG. 2 illustrates a method of obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an exemplary embodiment of the present invention, in which a DEX file included in an APK file is converted into an SMALI file Fig. In step S100, the processor of the mobile terminal decompresses the compiled APK file, decompiles the DEX file included in the APK file shown in Fig. 2 (a), and extracts the SMALI File. More specifically, DXLog.LOGD (this.TAG, "SDCard Directory Check:" + intent) of the third line of the DEX file shown in FIG. 2A, and if (GlobalValues.getBuildOption () == SDCARD_MONT_CHECK_HANDLER) is converted to const-string v2, "SDCard Directory Check:" and line 23 of invoke-static {}, Lnet / nshc / can be converted to SMALI code of droidx3 / common / GlobalValues; -> getBuildOption ().

단계 S200에서는 모바일 단말기의 프로세서가, 단계 S100을 통해 변환된 SMALI 파일을 검색하여 변경할 소스 코드를 선택할 수 있다. 여기서, 모바일 단말기의 프로세서에 의해 선택되는 변경할 소스 코드는, 단계 S100을 통해 변환된 SMALI 파일 내에 포함되어 있는 주요 소스 코드로서, 실시예에 따라, 리소스 아이디, 문자열 및 함수 호출부를 포함하는 소스 코드일 수 있다.
In step S200, the processor of the mobile terminal can search the SMALI file converted in step S100 and select the source code to be changed. Here, the changed source code selected by the processor of the mobile terminal is the main source code included in the SMALI file converted in step S100, and may be a source code including a resource ID, a character string, .

단계 S300에서는 모바일 단말기의 프로세서가, SMALI 파일 중, 단계 S200을 통해 선택된 소스 코드에 대하여, 선택된 소스 코드를 색인 코드로 교체하고, 원본 코드는 별도의 파일에 암호화 시켜 저장할 수 있다. 도 3은 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에서, 변환된 SMALI 파일에서 선택된 주요 소스 코드가 색인 코드로 변경된 모습을 도시한 도면이다. 실시예에 따라, 단계 S300에서 모바일 단말기의 프로세서는, SMALI 파일 중, 단계 S200에서 선택된 주요 소스 코드가 포함된 도 3(a)의 SMALI 파일의 15번째 줄의 코드 및 23번째 줄의 코드를, 도 3(b)에 도시된 색인 코드가 포함된 코드로 변경할 수 있다. 좀 더 구체적으로는, 도 3(a)의 15번째 줄의 const-string v2, "SDCard Directory Check: " 코드를 도 3(b)의 15, 16, 17번째 줄의 const v2, 0x7322b22b, invoke-static {v2}, Lcom/loader/dc;->yard(I)Ljava/lang/String;, move-result-lbject v2 코드로 변경할 수 있으며, 도 3(a)의 23번째 줄의 invoke-static {}, Lnet/nshc/droidx3/common/GlobalValues;->getBuildOption() 코드를, 도 3(b)의 25번째 및 26번째 줄의 const v0, 0xcdcbbe70, invoke-static {v0}, Lcom/loader/dc;->0x02(I)I 코드로 변경할 수 있다.
In step S300, the processor of the mobile terminal may replace the selected source code with the index code for the source code selected through step S200 of the SMALI file, and store the encrypted source code in a separate file. FIG. 3 illustrates a method of obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an exemplary embodiment of the present invention, in which a main source code selected in the converted SMALI file is changed to an index code Fig. According to the embodiment, in step S300, the processor of the mobile terminal converts the code of the 15th line and the code of the 23th line of the SMALI file of Fig. 3 (a) including the main source code selected in step S200, It can be changed to a code including the index code shown in Fig. 3 (b). More specifically, the const-string v2 and the "SDCard Directory Check:" code in the 15th line of FIG. 3 (a) are converted into the const v2, 0x7322b22b, invoke- static-v2}, Lcom / loader / dc; -> yard (I) Ljava / lang / String ;, move- }, Lnet / nshc / droidx3 / common / GlobalValues; -> getBuildOption () code to the const v0, 0xcdcbbe70, invoke-static {v0}, Lcom / loader / dc ; -> 0x02 (I) I can change to I code.

또한, 단계 S300에서 모바일 단말기의 프로세서는, 단계 S200을 통해 선택된 소스 코드의 원본 코드를 별도의 파일에 암호화 시켜 저장할 수 있다. 도 4는 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에서, 단계 S200을 통해 선택된 소스 코드의 원본 코드를 암호화시킨 모습을 도시한 도면이다. 모바일 단말기의 프로세서는 단계 S300에서, 단계 S200을 통해 선택된 소스 코드의 원본 코드를 도 4에 도시된 바와 같이 암호화하여 별도의 파일에 저장할 수 있다.
In step S300, the processor of the mobile terminal may encrypt and store the original code of the source code selected in step S200 in a separate file. FIG. 4 illustrates a method of obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an embodiment of the present invention, in which an original code of a source code selected through step S200 is encrypted FIG. In step S300, the processor of the mobile terminal may encrypt the original code of the source code selected in step S200 as shown in FIG. 4 and store the original code in a separate file.

단계 S400에서는 모바일 단말기의 프로세서가, 단계 S300을 통해 변경된 SMALI 파일의 코드를 컴파일하여 변경된 DEX 파일을 생성할 수 있다. 도 5는 본 발명의 일실시예에 따른 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에서, 변경된 SMALI 파일을 컴파일하여 변경된 DEX 파일을 생성한 모습을 도시한 도면이다. 단계 S400에서 모바일 단말기의 프로세서는, 단계 S300을 통해 변경된 SMALI 파일을 컴파일하여 도 5에 도시된 바와 같이, 변경된 DEX 파일을 생성할 수 있다. 좀 더 구체적으로, 도 2(a)에 도시된 원본 DEX 파일과 도 5에 도시된 변경된 DEX 파일을 비교해보면, 원본 DEX 파일의 3번째 줄의 DXLog.LOGD(this.TAG, "SDCard Directory Check: " + intent); 코드가 DXLog.LOGD(this.TAG, new StringBuilder(dc.yard(1931653675 )).append(intent).toString()); 코드로 변경되고, 원본 DEX 파일의 5번째 줄의 if (GlobalValues.getBuildOption() == SDCARD_MOUNT_CHECK_HANDLER) { 코드가 :if (dc.Ox02(-842285456) == SDCARD_MOUNT_CHECK_HANDLER) { 코드로 변경된 것을 확인할 수 있다.
In step S400, the processor of the mobile terminal can compile the code of the SMALI file changed through step S300 to generate the changed DEX file. 5 is a diagram illustrating a method of obfuscating an Android application using partial encryption of a DEX file in an Android application package (APK) according to an embodiment of the present invention, in which a changed DEX file is generated by compiling a changed SMALI file to be. In step S400, the processor of the mobile terminal may compile the changed SMALI file through step S300 to generate a modified DEX file as shown in FIG. More specifically, when comparing the original DEX file shown in FIG. 2 (a) with the modified DEX file shown in FIG. 5, DXLog.LOGD (this.TAG, "SDCard Directory Check: "+ intent); The code is DXLog.LOGD (this.TAG, new StringBuilder (dc.yard (1931653675)). Append (intent) .toString ()); Code, and the code in the fifth line of the original DEX file, if (GlobalValues.getBuildOption () == SDCARD_MOUNT_CHECK_HANDLER) {code: if (dc.Ox02 (-842285456) == SDCARD_MOUNT_CHECK_HANDLER) {code.

단계 S500에서는 모바일 단말기의 프로세서가, 단계 S400을 통해 변경된 DEX 파일과 단계 S300을 통해 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성할 수 있다. 실시예에 따라 단계 S500에서는, 단계 S300을 통해 암호화된 원본 코드 파일을 복호화하기 위한 복호화 엔진 파일을 삽입하고, 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성할 수 있다. 이처럼, 본 발명에서는, 복호화 엔진 파일을 삽입하고, DEX 파일을 부분 암호화하여 변경시킨 DEX 파일 및 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성함으로써, 디컴파일 툴들에 의해 DEX 파일 원본이 복제되어 어플리케이션이 무단 복제되는 것을 방지할 수 있다.
In step S500, the processor of the mobile terminal may package the modified DEX file through step S400 and the original code file encrypted through step S300 to generate a security-applied APK file. According to the embodiment, in step S500, a decryption engine file for decrypting the encrypted original code file may be inserted through step S300, and the modified DEX file and the encrypted original code file may be packaged to generate a security-applied APK file . As described above, in the present invention, the DEX file and the encrypted original code file, which are modified by partially encrypting the DEX file, are inserted into the decryption engine file to generate a security-applied APK file, It is possible to prevent an unauthorized copying of the application.

실시예에 따라, 보안이 적용된 APK 파일을 실행할 시, 모바일 단말기의 프로세서는, 콜백(Callback) 함수를 통해 변경된 DEX 파일 내의 색인 코드와 별도의 폴더에 삽입해놓은 복호화 엔진 파일의 복호화 함수를 호출하고, 복호화 엔진 파일의 복호화 함수를 통해 변경된 DEX 파일 내의 색인 코드를 원본 소스 코드로 변환하여, 보안이 적용된 APK 파일을 정상적으로 실행시킬 수 있다. 좀 더 구체적으로는, 모바일 단말기의 프로세서에서, 복호화 엔진 파일의 복호화 함수를 통해 단계 S300을 통해 암호화된 원본 코드를 원본 소스 코드로 복호화하고, 변경된 DEX 파일 내의 색인 코드를 복호화된 원본 소스 코드로 교체하여, 보안이 적용된 APK 파일이 정상적으로 실행되도록 할 수 있다.
According to an embodiment of the present invention, when executing a secure APK file, the processor of the mobile terminal calls a decryption function of a decryption engine file inserted into a separate folder from the index code in the changed DEX file through a callback function, It is possible to convert the index code in the changed DEX file into the original source code through the decryption function of the decryption engine file to normally execute the security-applied APK file. More specifically, in the processor of the mobile terminal, the encrypted original code is decrypted through the decryption function of the decryption engine file to the original source code through step S300, and the index code in the changed DEX file is replaced with the decrypted original source code So that the security-applied APK file can be normally executed.

이상 설명한 바와 같이, 본 발명에서 제안하고 있는 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법에 따르면, 개발 툴에 관계없이 이미 컴파일이 완료된 APK 파일에 포함되어 있는 DEX 파일을 SMALI 파일로 변환시키고, 변환된 SMALI 파일을 검색하여 변경할 소스코드를 선택하며, 선택된 소스코드에 대하여, 선택된 소스 코드를 색인 코드로 교체하고, 원본 코드는 별도의 파일에 암호화 시켜 저장하며, 변경된 SMALI 파일을 컴파일하여 변경된 DEX 파일을 생성하고, 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성함으로써, DEX 파일이 유출되어도 디컴파일 툴들에 의해 DEX 파일 원본이 복제되어 어플리케이션이 무단 복제되는 것을 방지할 수 있다.
As described above, according to the obfuscation method of the Android application using the partial encryption of the DEX file in the Android application package (APK) proposed by the present invention, regardless of the development tool, the DEX Converts the file into an SMALI file, searches the converted SMALI file to select the source code to be changed, and replaces the selected source code with the index code for the selected source code, encrypts the original code in a separate file, The altered SMALI file is compiled to generate a modified DEX file, and the changed DEX file and the encrypted original code file are packaged to generate a security-applied APK file. Even if the DEX file is leaked, the original DEX file is copied by the decompiling tools It is possible to prevent an unauthorized copying of an application.

이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.The present invention may be embodied in many other specific forms without departing from the spirit or essential characteristics and scope of the invention.

S100: 컴파일이 완료된 APK 파일의 압축을 해제하고, APK 파일에 포함되어 있는 DEX 파일을 디컴파일하여 SMALI 파일로 변환하는 단계
S200: 단계 S100을 통해 변환된 SMALI 파일을 검색하여 변경할 소스 코드를 선택하는 단계
S300: SMALI 파일 중, 단계 S200을 통해 선택된 소스 코드에 대하여, 선택된 소스 코드를 색인 코드로 교체하고, 원본 코드는 별도의 파일에 암호화 시켜 저장하는 단계
S400: 단계 S300을 통해 변경된 SMALI 파일을 컴파일하여 변경된 DEX 파일을 생성하는 단계
S500: 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성하는 단계
S100: Decompress the compiled APK file, decompile the DEX file included in APK file and convert it into SMALI file
S200: searching the SMALI file converted in step S100 and selecting a source code to be changed
S300: replacing the selected source code with the index code for the source code selected in step S200 of the SMALI file, encrypting the original code in a separate file and storing
S400: Creating a modified DEX file by compiling the changed SMALI file through step S300
S500: Creating a security-applied APK file by packaging the changed DEX file and the encrypted original code file

Claims (7)

안드로이드를 운영체제로 하는 모바일 단말기의 프로세서가,
(1) 컴파일이 완료된 APK(Android application package) 파일의 압축을 해제하고, 상기 APK 파일에 포함되어 있는 DEX 파일을 디컴파일하여 SMALI(An assembler for Android's dex format) 파일로 변환하는 단계;
(2) 상기 단계 (1)을 통해 변환된 SMALI 파일을 검색하여 변경할 소스 코드를 선택하는 단계;
(3) 상기 SMALI 파일 중, 상기 단계 (2)를 통해 선택된 소스 코드에 대하여, 상기 선택된 소스 코드를 색인 코드(Index Code)로 교체하고, 원본 코드는 별도의 파일에 암호화시켜 저장하는 단계; 및
(4) 상기 단계 (3)을 통해 변경된 상기 SMALI 파일을 컴파일하여 변경된 DEX 파일을 생성하는 단계를 포함하는 것을 특징으로 하는, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법.
The processor of the mobile terminal with Android operating system,
(1) decompressing the compiled APK (Android application package) file, decompiling the DEX file included in the APK file, and converting it into an SMILI (An assembler for Android's dex format) file;
(2) searching the SMALI file converted through the step (1) and selecting a source code to be changed;
(3) replacing the selected source code with an index code for the source code selected through the step (2) in the SMALI file, encrypting and storing the original code in a separate file; And
(4) compiling the modified SMALI file through the step (3) to generate a modified DEX file. The method according to claim 1, How to do it.
제1항에 있어서, 상기 단계 (2)에서, 변경할 소스 코드는,
상기 단계 (1)을 통해 변환된 SMALI 파일 내에 포함되어 있는 리소스 아이디, 문자열 및 함수 호출부를 포함하는 것을 특징으로 하는, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법.
2. The method according to claim 1, wherein in the step (2)
A method for obfuscating an Android application using a partial encryption of a DEX file in an Android application package (APK), characterized by comprising a resource ID, a character string, and a function calling unit included in the SMALI file converted through the step (1) .
제1항에 있어서,
(5) 상기 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성하는 단계를 더 포함하는 것을 특징으로 하는, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법.
The method according to claim 1,
(5) packaging the modified DEX file and the encrypted original code file to generate a security-enhanced APK file. The method as claimed in claim 1, further comprising: Of obturation.
제3항에 있어서,
상기 암호화된 원본 코드 파일을 복호화하기 위한 복호화 엔진 파일을 삽입하고, 상기 변경된 DEX 파일과 암호화된 원본 코드 파일을 패키징하여 보안이 적용된 APK 파일을 생성하는 것을 특징으로 하는, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법.
The method of claim 3,
Wherein the APK file includes a decryption engine file for decrypting the encrypted original code file, and an APK file to which security is applied by packaging the modified DEX file and the encrypted original code file. How to obfuscate Android applications using partial encryption of DEX files.
제4항에 있어서,
상기 보안이 적용된 APK 파일을 실행할 시, 콜백(Callback) 함수를 통해 상기 변경된 DEX 파일 내의 색인 코드와 상기 복호화 엔진 파일의 복호화 함수를 호출하는 단계를 더 포함하는 것을 특징으로 하는, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법.
5. The method of claim 4,
Further comprising the step of calling an indexing code in the changed DEX file and a decryption function of the decryption engine file through a callback function when the secure APK file is executed. How to obfuscate an Android application using partial encryption of my DEX file.
제5항에 있어서,
상기 복호화 엔진 파일의 복호화 함수를 통해 상기 변경된 DEX 파일 내의 색인 코드를 원본 소스 코드로 변환하여, 상기 보안이 적용된 APK 파일을 실행시키는 단계를 더 포함하는 것을 특징으로 하는, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법.
6. The method of claim 5,
Further comprising the step of converting the index code in the changed DEX file into the original source code through the decryption function of the decryption engine file to execute the APK file to which the security is applied. How to obfuscate Android applications using partial encryption of DEX files.
제6항에 있어서,
상기 복호화 엔진 파일의 복호화 함수를 통해 상기 암호화된 원본 코드를 원본 소스 코드로 복호화하고, 상기 변경된 DEX 파일 내의 색인 코드를 상기 복호화된 원본 소스 코드로 교체하는 것을 특징으로 하는, 안드로이드 어플리케이션 패키지(APK) 내 DEX 파일의 부분 암호화를 이용한 안드로이드 어플리케이션의 난독화 방법.
The method according to claim 6,
And decrypting the encrypted original code with an original source code through a decryption function of the decryption engine file and replacing an index code in the modified DEX file with the decrypted original source code. How to obfuscate an Android application using partial encryption of my DEX file.
KR1020160099180A 2016-08-03 2016-08-03 Obfuscation method of android application using partial encryption of dex file in android application package KR20180015535A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160099180A KR20180015535A (en) 2016-08-03 2016-08-03 Obfuscation method of android application using partial encryption of dex file in android application package

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160099180A KR20180015535A (en) 2016-08-03 2016-08-03 Obfuscation method of android application using partial encryption of dex file in android application package

Publications (1)

Publication Number Publication Date
KR20180015535A true KR20180015535A (en) 2018-02-13

Family

ID=61231933

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160099180A KR20180015535A (en) 2016-08-03 2016-08-03 Obfuscation method of android application using partial encryption of dex file in android application package

Country Status (1)

Country Link
KR (1) KR20180015535A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110135131A (en) * 2019-05-13 2019-08-16 北京智游网安科技有限公司 A kind of encryption method of application program, storage medium and terminal device
CN111368267A (en) * 2020-03-17 2020-07-03 山东云缦智能科技有限公司 Android application code protection method
CN111832014A (en) * 2020-07-02 2020-10-27 北京智游网安科技有限公司 Dynamic loading-based Java SDK code encryption and decryption method and terminal
CN112379890A (en) * 2020-12-04 2021-02-19 深圳麦风科技有限公司 Data copying method of Whatsapp
CN113641363A (en) * 2021-10-18 2021-11-12 北京邮电大学 Third-party library detection method and device
WO2022135227A1 (en) * 2020-12-24 2022-06-30 花瓣云科技有限公司 Method for generating installation package of application and electronic device

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110135131A (en) * 2019-05-13 2019-08-16 北京智游网安科技有限公司 A kind of encryption method of application program, storage medium and terminal device
CN111368267A (en) * 2020-03-17 2020-07-03 山东云缦智能科技有限公司 Android application code protection method
CN111832014A (en) * 2020-07-02 2020-10-27 北京智游网安科技有限公司 Dynamic loading-based Java SDK code encryption and decryption method and terminal
CN111832014B (en) * 2020-07-02 2024-02-13 北京智游网安科技有限公司 Java SDK code encryption and decryption method and terminal based on dynamic loading
CN112379890A (en) * 2020-12-04 2021-02-19 深圳麦风科技有限公司 Data copying method of Whatsapp
WO2022135227A1 (en) * 2020-12-24 2022-06-30 花瓣云科技有限公司 Method for generating installation package of application and electronic device
CN113641363A (en) * 2021-10-18 2021-11-12 北京邮电大学 Third-party library detection method and device
CN113641363B (en) * 2021-10-18 2022-02-11 北京邮电大学 Third-party library detection method and device

Similar Documents

Publication Publication Date Title
KR20180015535A (en) Obfuscation method of android application using partial encryption of dex file in android application package
CN106778103B (en) Reinforcement method, system and decryption method for preventing reverse cracking of android application program
JP5990654B2 (en) Application code obfuscation device and method
KR101471589B1 (en) Method for Providing Security for Common Intermediate Language Program
JP4770425B2 (en) Program, method and apparatus for creating protected execution program
KR101518420B1 (en) Apparatus and method for managing apk file in a android platform
KR101490047B1 (en) Apparatus for tamper protection of application code based on self modification and method thereof
KR102433011B1 (en) Method of apk file protection, apk file protection system performing the same, and storage medium storing the same
RU2439669C2 (en) Method to prevent reverse engineering of software, unauthorised modification and data capture during performance
KR101597251B1 (en) System and method for generating whitebox implementations of software applications
KR101623096B1 (en) Apparatus and method for managing apk file in a android platform
WO2016078130A1 (en) Dynamic loading method for preventing reverse of apk file
CN104463002A (en) APK reinforcing method and device and APK reinforcing client and server
CN105022936A (en) Class file encryption and decryption method and class file encryption and decryption device
US10482221B2 (en) Protecting a computer program against reverse engineering
KR101861341B1 (en) Deobfuscation apparatus of application code and method of deobfuscating application code using the same
WO2015149214A1 (en) Method, apparatus, and computer-readable medium for obfuscating execution of application on virtual machine
CN104408337A (en) Reinforcement method for preventing reverse of APK (Android package) file
CN104866739A (en) Application program encryption method and application program encryption system in Android system
JP2017513077A (en) Code obfuscation apparatus and method using identifier conversion that is difficult to distinguish
CN104268444A (en) Cloud OS Java source code protection method
CN101957903A (en) Method and device for protecting class files
CN107871066B (en) Code compiling method and device based on android system
Geethanjali et al. AEON: android encryption based obfuscation
KR101863325B1 (en) Method and apparatus for preventing reverse engineering

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application