• Title/Summary/Keyword: Java reflection

Search Result 8, Processing Time 0.02 seconds

Code Obfuscation using Java Reflection and Exception in Android (안드로이드 환경에서 클래스 반사와 예외 처리를 이용한 임의 코드 수행 방법 및 코드 은닉 방법)

  • Kim, Ji-Yun;Go, Nam-Hyeon;Park, Yong-su
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2014.07a
    • /
    • pp.369-370
    • /
    • 2014
  • 본 논문에서는 안드로이드 환경에서 클래스 반사(Reflection)과 예외처리를 이용하여 안드로이드 보호 시스템을 우회하여 임의의 코드를 수행할 수 있는 방법을 제시한다. 일반적인 자바 환경과는 달리 안드로이드 환경에서는 보안 강화를 위해 APK 파일 내 루트 디렉토리의 클래스 파일만을 반사를 통해 동적 로딩이 가능하다. 하지만, 본 논문에서는 클래스 반사와 예외 처리를 이용하여 임의의 디렉토리 내 파일을 로딩 및 동적 실행할 수 있는 방법을 보이며 이 방법은 저자가 알기로는 기존에 알려지지 않은 방법이다. 이를 기반으로, 본 논문에서는 AES 암호와 동적 로딩을 이용하여, 모바일 어플리케이션의 내부 코드를 은폐하는 기법을 제안한다. 제안기법을 활용 시, 첫째 공격자의 입장에서는 내부 코드를 은폐하여 백신을 우회하는 악성코드 제작이 가능하고, 둘째, 프로그램 제작자의 입장에서는 핵심 알고리즘을 은폐하여 저작권을 보호하는 코드 제작이 가능하다. 안드로이드 버전 4.4.2(Kitkat)에서 프로토타입을 구현하여 제안 기법의 실효성을 보였다.

  • PDF

An Android API Obfuscation Tool using Reflection and String Encryption (리플렉션과 문자열 암호화를 이용한 안드로이드 API 난독화 도구)

  • Lee, Joohyuk;Park, Heewan
    • KIPS Transactions on Computer and Communication Systems
    • /
    • v.4 no.1
    • /
    • pp.23-30
    • /
    • 2015
  • Reflection is a feature of the Java programming language that can examine and manipulate components of program itself. If you use the reflection, you can get an obfuscation effect of Java source because it converts sources into complicated structures. However, when using it, strings of components name of program are exposed. Therefore, it cannot prevent static analysis. In this paper, we presents a method and a tool of interfere with static analysis using reflection. And in this case, exposed strings are encoded using Vigen$\acute{e}$re cipher. Experimental results show that this tool is effective in increasing the overall complexity of the source code. Also the tool provides two types decryption method based on server and local. It can be selected based on the importance of the API because it affects the execution speed of the application.

A Technique for wrapping Java applications in EJBs (자바 어플리케이션을 EJB로 래핑 하기 위한 기법)

  • 김동관;정효택;양영종
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.04c
    • /
    • pp.130-132
    • /
    • 2003
  • 1990년대 초반에 등장한 자바 언어는 빠른 속도로 프로그래머들 사이에 보급되었으며 인터넷의 등장과 더불어 이는 더욱 가속화되었다. 또한 무선 플랫폼 등과 같은 새로운 컴퓨팅 환경에 빠르게 대처함으로써 자바 언어의 끝을 예측하기는 쉽지 않은 상태이다. 초기 자바 어플리케이션들은 단일 티어(single-tier)로 개발되었으며 환경의 변화로 인해 이런 어플리케이션들을 네트워크로 연결할 필요성이 대두되고 있다. 자바 언어는 분산 컴퓨팅 환경의 솔루션으로 Enterprise JavaBean(EJB)[1]을 제시하고 있다. 본 논문에서는 기존에 개발된 자바 어플리케이션을 EJB로 래핑하기 위한 기법들을 제공한다. 핵심 비즈니스 로직을 가진 클래스들을 수작업을 통해 EJB로 변환할 수도 있지만 본 논문에서는 반자동화된 방법을 통해 변환 상의 효율을 증대시키고 변환 과정에서 발생할 수 있는 오류를 최소화하고자 한다. EJB 래핑 기법은 세션 빈(session bean)[1]래핑과 엔터티 빈(entity bean)[1]래핑으로 구성된다. 세션 빈 래핑은 자바 어플리케이션을 구성하는 클래스 가운데 질의문(query)을 가지지 않는 자바 클래스들을 래핑한다. 엔터티 빈은 질의문을 포함하는 자바 클래스를 래핑한다. EJB 래핑을 위해 리플렉션(reflection)[2]과 위임 (delegation) 장치를 사용한다.

  • PDF

Detecting suspicious branch statements through recording and analyzing execution logs of apps using reflection (리플렉션이 사용된 앱의 실행 로그 기록 및 분석을 통한 의심스러운 분기문 탐지)

  • Sumin Lee;Minho Park;Jiman Hong
    • Smart Media Journal
    • /
    • v.12 no.5
    • /
    • pp.58-64
    • /
    • 2023
  • In Logic Bomb, the conditions of branch statements that trigger malicious behavior cannot be detected in advance, making Android malicious app analysis difficult. Various studies have been conducted to detect potentially suspicious branch statements that can be logic bombs and triggers, but suspicious branch statements cannot be properly detected in apps that contain information determined at runtime, such as reflection. In this paper, we propose a tool that can detect suspicious branch statements even when reflection is used in Android apps. It works through recording app execution logs and analyzing the recorded log). The proposed tool can check the relationship between the called method and the branch statement by recording and analyzing the user-defined methods, Java APIs called and method information called through reflection, and branch information in the log while the Android app is running. Experimental results show that suspicious branch statements can be detected even in apps where reflection is used.

Design and Implementation of a Tool for Breaking static analysis of Android API Based on Java Reflection (자바 리플렉션 기반의 안드로이드 API 정적 분석무력화 도구의 설계 및 구현)

  • Park, Heewan;Lee, Joo-Hyuk
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2014.01a
    • /
    • pp.99-102
    • /
    • 2014
  • 리플렉션은 자바 언어의 기능 중 하나로, 자바 프로그램을 실행해서 해당 프로그램을 조사하거나 내부의 동작 구조를 조작할 수 있다. 리플렉션을 사용하게 되면 자바 소스의 난독화 뿐만 아니라 정적 분석 도구의 API 호출 탐지를 방해하게 되어 분석 결과의 정확도를 떨어뜨리게 된다. 만약 이 특성을 악용해 악성 앱 제작자가 특정 API 메소드 호출을 은닉하는 목적으로 사용한다면 정적 분석에 의존하는 기존 분석 도구들이 API 메소드 호출을 탐지하기 어렵기 때문에 큰 위협이 될 수 있다. 본 연구에서는 안드로이드 환경에서 표본 어플리케이션에 직접 설계한 도구를 이용하여 API 메소드에 리플렉션을 적용하고, 원본 소스와 리플렉션 후 디컴파일된 소스를 비교하여 API 메소드 호출이 리플렉션을 통해서 은닉 가능함을 보여준다.

  • PDF

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.

Design and Implementation of An Auto-Conversion Tool for Android API Obfuscation Based on Java Reflection. (자바 리플렉션 기반의 안드로이드 API 난독화를 위한 자동 변환 도구의 설계 및 구현)

  • Lee, Joo-Hyuk;Park, Heewan
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2014.04a
    • /
    • pp.487-490
    • /
    • 2014
  • 리플렉션은 자바 프로그램을 실행하여 객체 내부의 모든 요소를 조사하거나 호출 혹은 조작할 수 있는 자바 언어의 한 기능이다. 한 클래스 내부의 메소드에 리플렉션을 적용하여 호출하게 되면 String형의 메소드 이름으로 간접 호출하기에 정적 분석 도구의 API 호출 탐지를 방해하게 되어 분석결과의 정확도를 떨어뜨릴 수 있고, 또한 일반적인 호출보다 복잡한 절차를 거치게 되어 소스 자체의 난독화 효과를 갖게 된다. 또한 디컴파일러의 역공학 분석을 어렵게 만드는 장점도 있다. 이 특성을 이용한다면 안드로이드 환경에서 특정 API를 은닉하여 개인정보를 누출하도록 악용하거나 디컴파일러 이용을 방지하는 데 활용될 수 있다. 본 연구에서는 안드로이드 환경에서 직접 설계한 도구와 표본 앱을 이용하여 API 메소드에 리플렉션을 적용하고, 원본 소스와 리플렉션 후 디컴파일된 소스를 비교하여 API 호출이 리플렉션을 통해서 은닉 가능함을 보여준다.

PIRS : Personalized Information Retrieval System using Adaptive User Profiling and Real-time Filtering for Search Results (적응형 사용자 프로파일기법과 검색 결과에 대한 실시간 필터링을 이용한 개인화 정보검색 시스템)

  • Jeon, Ho-Cheol;Choi, Joong-Min
    • Journal of Intelligence and Information Systems
    • /
    • v.16 no.4
    • /
    • pp.21-41
    • /
    • 2010
  • This paper proposes a system that can serve users with appropriate search results through real time filtering, and implemented adaptive user profiling based personalized information retrieval system(PIRS) using users' implicit feedbacks in order to deal with the problem of existing search systems such as Google or MSN that does not satisfy various user' personal search needs. One of the reasons that existing search systems hard to satisfy various user' personal needs is that it is not easy to recognize users' search intentions because of the uncertainty of search intentions. The uncertainty of search intentions means that users may want to different search results using the same query. For example, when a user inputs "java" query, the user may want to be retrieved "java" results as a computer programming language, a coffee of java, or a island of Indonesia. In other words, this uncertainty is due to ambiguity of search queries. Moreover, if the number of the used words for a query is fewer, this uncertainty will be more increased. Real-time filtering for search results returns only those results that belong to user-selected domain for a given query. Although it looks similar to a general directory search, it is different in that the search is executed for all web documents rather than sites, and each document in the search results is classified into the given domain in real time. By applying information filtering using real time directory classifying technology for search results to personalization, the number of delivering results to users is effectively decreased, and the satisfaction for the results is improved. In this paper, a user preference profile has a hierarchical structure, and consists of domains, used queries, and selected documents. Because the hierarchy structure of user preference profile can apply the context when users perfomed search, the structure is able to deal with the uncertainty of user intentions, when search is carried out, the intention may differ according to the context such as time or place for the same query. Furthermore, this structure is able to more effectively track web documents search behaviors of a user for each domain, and timely recognize the changes of user intentions. An IP address of each device was used to identify each user, and the user preference profile is continuously updated based on the observed user behaviors for search results. Also, we measured user satisfaction for search results by observing the user behaviors for the selected search result. Our proposed system automatically recognizes user preferences by using implicit feedbacks from users such as staying time on the selected search result and the exit condition from the page, and dynamically updates their preferences. Whenever search is performed by a user, our system finds the user preference profile for the given IP address, and if the file is not exist then a new user preference profile is created in the server, otherwise the file is updated with the transmitted information. If the file is not exist in the server, the system provides Google' results to users, and the reflection value is increased/decreased whenever user search. We carried out some experiments to evaluate the performance of adaptive user preference profile technique and real time filtering, and the results are satisfactory. According to our experimental results, participants are satisfied with average 4.7 documents in the top 10 search list by using adaptive user preference profile technique with real time filtering, and this result shows that our method outperforms Google's by 23.2%.