• Title/Summary/Keyword: DEX File

Search Result 12, Processing Time 0.022 seconds

Android Application Call Relationship Analysis Based on DEX and ELF Binary Reverse Engineering (DEX와 ELF 바이너리 역공학 기반 안드로이드 어플리케이션 호출 관계 분석에 대한 연구)

  • Ahn, Jinung;Park, Jungsoo;Nguyen-Vu, Long;Jung, Souhwan
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.29 no.1
    • /
    • pp.45-55
    • /
    • 2019
  • DEX file and share objects (also known as the SO file) are important components that define the behaviors of an Android application. DEX file is implemented in Java code, whereas SO file under ELF file format is implemented in native code(C/C++). The two layers - Java and native can communicate with each other at runtime. Malicious applications have become more and more prevalent in mobile world, they are equipped with different evasion techniques to avoid being detected by anti-malware product. To avoid static analysis, some applications may perform malicious behavior in native code that is difficult to analyze. Existing researches fail to extract the call relationship which includes both Java code and native code, or can not analyze multi-DEX application. In this study, we design and implement a system that effectively extracts the call relationship between Java code and native code by analyzing DEX file and SO file of Android application.

A Hiding Original App Method by Altering Android DexClassLoader Execution Flow (안드로이드 덱스클래스로더 실행흐름 변경을 통한 원본 앱 노출 방지 기법)

  • Jo, Honglae;Choi, Joontae;Ha, Dongsoo;Shin, Jinseop;Oh, Heekuck
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.27 no.6
    • /
    • pp.1271-1280
    • /
    • 2017
  • The android packer service using runtime execution compression technology switches to the original application using DexClassLoader. However the API interface of the DexClassLoader receives the path of the loaded DEX(Dalvik EXcutable) and the path of the compiled file. So there is a problem that the original file is exposed to the file system. Therefore, it is not safe to use the API for the packer service. In this paper, we solve this problem by changing the compile and load flow of the DexClassLoader API. Due to this changed execution flow, the complied file can be encrypted and stored in the file system or only in the memory and it can be decrypted or substituted at the time of subsequent loading to enable the original application conversion. we expected that the stability of the packer will increase beacause the proposed method does not expose the original file to the file system.

Robust Anti Reverse Engineering Technique for Protecting Android Applications using the AES Algorithm (AES 알고리즘을 사용하여 안드로이드 어플리케이션을 보호하기 위한 견고한 역공학 방지기법)

  • Kim, JungHyun;Lee, Kang Seung
    • Journal of KIISE
    • /
    • v.42 no.9
    • /
    • pp.1100-1108
    • /
    • 2015
  • Classes.dex, which is the executable file for android operation system, has Java bite code format, so that anyone can analyze and modify its source codes by using reverse engineering. Due to this characteristic, many android applications using classes.dex as executable file have been illegally copied and distributed, causing damage to the developers and software industry. To tackle such ill-intended behavior, this paper proposes a technique to encrypt classes.dex file using an AES(Advanced Encryption Standard) encryption algorithm and decrypts the applications encrypted in such a manner in order to prevent reverse engineering of the applications. To reinforce the file against reverse engineering attack, hash values that are obtained from substituting a hash equation through the combination of salt values, are used for the keys for encrypting and decrypting classes.dex. The experiments demonstrated that the proposed technique is effective in preventing the illegal duplication of classes.dex-based android applications and reverse engineering attack. As a result, the proposed technique can protect the source of an application and also prevent the spreading of malicious codes due to repackaging attack.

A Code Concealment Method using Java Reflection and Dynamic Loading in Android (안드로이드 환경에서 자바 리플렉션과 동적 로딩을 이용한 코드 은닉법)

  • Kim, Jiyun;Go, Namhyeon;Park, Yongsu
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.25 no.1
    • /
    • pp.17-30
    • /
    • 2015
  • Unlike existing widely used bytecode-centric Android application code obfuscation methodology, our scheme in this paper makes encrypted file i.e. DEX file self-extracted arbitrary Android application. And then suggests a method regarding making the loader app to execute encrypted file's code after saving the file in arbitrary folder. Encrypted DEX file in the loader app includes original code and some of Manifest information to conceal event treatment information. Loader app's Manifest has original app's Manifest information except included information at encrypted DEX. Using our scheme, an attacker can make malicious code including obfuscated code to avoid anti-virus software at first. Secondly, Software developer can make an application with hidden main algorithm to protect copyright using suggestion technology. We implement prototype in Android 4.4.2(Kitkat) and check obfuscation capacity of malicious code at VirusTotal to show effectiveness.

A Technique for Protecting Android Applications using Executable Code Encryption and Integrity Verification (실행코드 암호화 및 무결성 검증을 적용한 안드로이드앱 보호 기법)

  • Shim, HyungJoon;Cho, Sangwook;Jeong, Younsik;Lee, Chanhee;Han, Sangchul;Cho, Seong-je
    • Journal of Software Assessment and Valuation
    • /
    • v.10 no.1
    • /
    • pp.19-26
    • /
    • 2014
  • In this paper, we propose a method for protecting Android applications against reverse engineering attacks. In this method, the server encrypts the original executable code (DEX) included in an APK file, inserts into the APK file a stub code that decrypts the encrypted DEX later at run-time, and distributes the modified APK file. The stub code includes an integrity validation code to detect attacks on itself. When a user installs and executes the APK file, the stub code verifies the integrity of itself, decrypts the encrypted DEX, and loads it dynamically to execute. Since the original DEX is distributed as an encrypted one, we can effectively protect the intellectual property. Further, by verifying the integrity of the stub code, we can prevent malicious users from bypassing our method. We applied the method to 15 Android apps, and evaluated its effectiveness. We confirmed that 13 out of them operates normally.

Design and Implementation of Dalvik DEX File Browser (달빅 DEX 파일 브라우저의 설계 및 구현)

  • So, Kyung-Young;Jung, Taek-Hee;Park, Jong-Pil;Ko, Kwang-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.04a
    • /
    • pp.1228-1230
    • /
    • 2012
  • 안드로이드 플랫폼에 적합한 어플리케이션 보급이 급증하면서 달빅(dalvik)에 관련된 다양한 연구 시도가 진행되고 있다. 특히, Java 클래스 파일로부터 dx에 의해 생성되는 DEX 파일의 구조 및 상세 정보를 시각적으로 분석하고 이를 응용하기 위한 노력은 다양한 성능 향상의 효과를 기대할 수 있다. 이 논문에서는 달빅 가상머신의 실행 파일인 DEX 파일의 구조 및 정보를 세분화하여 시각적으로 쉽게 접근할 수 있는 브라우저를 설계하고 구현한다. 이를 통해서, DEX 파일의 구조 및 정보를 보다 쉽게 접근하고 이용할 수 있으며 디어셈블러(smali/baksmali) 편리하게 사용할 수 있도록 하였다.

Efficient Detection of Android Mutant Malwares Using the DEX file (DEX 파일을 이용한 효율적인 안드로이드 변종 악성코드 탐지 기술)

  • Park, Dong-Hyeok;Myeong, Eui-Jung;Yun, Joobeom
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.26 no.4
    • /
    • pp.895-902
    • /
    • 2016
  • Smart phone distribution rate has been rising and it's security threat also has been rising. Especially Android smart phone reaches nearly 85% of domestic share. Since repackaging on android smart phone is relatively easy, the number of re-packaged malwares has shown steady increase. While many detection techniques have been proposed in order to prevent malwares, it is not easy to detect re-packaged malwares by static analysis and it is also difficult to operate dynamic analysis in android smart phone. Static analysis proposed in this paper features code reuse of repackaged malwares. We extracted DEX files from android applications and performed static analysis using class names and method names. This process doesn't not include reverse engineering, so it is possible to detect malwares efficiently.

Mepelyzer : Malicious App Identification Mechanism based on Method & Permission Similarity Analysis of Server-Side Polymorphic Mobile Apps (Mepelyzer : 서버 기반 다형상 모바일 앱에 대한 메소드 및 퍼미션 유사도 기반 악성앱 판별)

  • Lee, Han Seong;Lee, Hyung-Woo
    • Journal of the Korea Convergence Society
    • /
    • v.8 no.3
    • /
    • pp.49-61
    • /
    • 2017
  • Recently, convenience and usability are increasing with the development and deployment of various mobile applications on the Android platform. However, important information stored in the smartphone is leaked to the outside without knowing the user since the malicious mobile application is continuously increasing. A variety of mobile vaccines have been developed for the Android platform to detect malicious apps. Recently discovered server-based polymorphic(SSP) malicious mobile apps include obfuscation techniques. Therefore, it is not easy to detect existing mobile vaccines because some other form of malicious app is newly created by using SSP mechanism. In this paper, we analyze the correlation between the similarity of the method in the DEX file constituting the core malicious code and the permission similarity measure through APK de-compiling process for the SSP malicious app. According to the analysis results of DEX method similarity and permission similarity, we could extract the characteristics of SSP malicious apps and found the difference that can be distinguished from the normal app.

A WPHR Service for Wellness in the Arduino Environment (아두이노 환경에서 웰니스를 위한 WPHR 서비스)

  • Cho, Young-bok;Woo, Sung-hee;Lee, Sang-ho
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.22 no.1
    • /
    • pp.83-90
    • /
    • 2018
  • In this paper, we propose an algorithm for analyzing personal health log information in android environment, providing personal health log information in android environment, providing personalized exercise information and monitoring the condition of pedestrians. Personal health log data collection is performed based on raw data of user using MPU6050 sensor based on Arduino. Noise was removed and age threshold was applied to distinguish movement information. In addition, to protect personal information, safety is enhanced by providing anti-compilation prevention and encryption/decryption of APK file, and the result of movement information collection is measured according to sensor location. Experimental results showed that the MPU6050 sensor mounted one the ankle wsa measured 98.97% more accurately then the wrist. In addition, the loading time of SEED 128 bit encryption based DEX file has the average time of 0.55ms, minimizing the overhead.

Android Application Code Protection Scheme Using Fingerprint Authentication and Dynamic Loading (지문 인증과 동적 로딩을 이용한 안드로이드 애플리케이션 코드 보호 기법)

  • Lyoo, Hwahn-il;Suk, Jae-Hyuk;Park, Jin-Hyung;Lee, Dong-Hoon
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.27 no.6
    • /
    • pp.1361-1372
    • /
    • 2017
  • If an external attacker takes from a victim's smartphone a copy of a secret application or an application to which fingerprinting technique is applied, secret information can be leaked or the legitimate user can be misunderstood as an illegal redistributor, which results in a serious security problem. To solve this problem, this paper proposes an Android application code protection scheme using fingerprint authentication and dynamic loading. The proposed scheme divides one application into CLR(Class LoadeR) and SED(SEperated Dex). CLR is an APK file with the ability to dynamically load the SED, and the SED is a file containing the classes required to run the application. The SED is stored inside the smartphone after being encrypted, and the SED can be decrypted only if the user is successfully authenticated using his or her fingerprint. The proposed scheme can protect the application code from the attacker who physically acquired user's smartphone.