Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Gyoonus/deoptfuscator

Open more actions menu

Repository files navigation

This Tool is selected as BlackHat Arsenal USA 2020

What is Deoptfuscator

  • Deoptfuscator is a tool for deobfuscating Android applications that have been transformed using control-flow obfuscation mechanisms.
  • Deoptfuscator can reverse the control-flow obfuscation performed by DexGuard on open-source Android applications.

Publication

@article{you2022deoptfuscator,
    title = "Deoptfuscator: Defeating Advanced Control-flow Obfuscation Using Android Runtime (ART)",
    journal = "IEEE Access",
    volume = "10",
    pages = "61426-61440",
    year = "2022",
    issn = "2169-3536",
    doi = "10.1109/ACCESS.2022.3181373",
    url = "https://ieeexplore.ieee.org/document/9791370",
    author = "You, Geunha and Kim, Gyoosik and Han, Sangchul and Park, Minkyu and Cho, Seong-je",
    keywords = "Android app, malicious app, obfuscation, deobfuscation, control-flow obfuscation"
 }

Prerequisites

In order to build and run deoptfuscator, the followings are required:

  • Deoptfuscator based on Ubuntu 18.04 LTS 64bit PC
    • libboost, libjson (C++ library)
      $ sudo apt-get install libboost-all-dev  
      $ sudo apt-get install libjsoncpp-dev
      
    • openjdk
      $ sudo apt-get install openjdk-11-jdk
      
    • i386 libc
      $ sudo dpkg --add-architecture i386  
      $ sudo apt-get update  
      $ sudo apt-get install libc6:i386 libstdc++6:i386
      
    • zipalign
      $ sudo apt-get install zipalign
      
    • apksigner
      $ sudo apt-get install apksigner
      

How to Install

  • deoptfuscator's repositary need git-lfs
  • Git LFS
$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
$ sudo apt install git-lfs
$ git clone https://github.com/Gyoonus/deoptfuscator.git

Our repository Already Contains Tools needed to run our Tool

HOW TO USE

  • Set Local Environment

    $ . ./launch.sh  
    

    OR

     $ source ./launch.sh
    
  • Deobfuscate an Android application that has been transformed using control-flow obfuscated techniques.

    $ python3 deoptfuscator.py <obfuscated_apk>  
    
  • Test our tools!

    $ python3 deoptfuscator.py test/AndroZoo_DexGuard_apk/com.alienguns.scifirifles_4F326C99558145BB636D31C96488823A.apk
    
    • If the input file (an obfuscated app) was com.alienguns.scifirifles_4F326C99558145BB636D31C96488823A.apk, the file name of the deobfuscated apk is com.alienguns.scifirifles_4F326C99558145BB636D31C96488823A_deobfuscated_align.apk
  • Our tool can effectively deobfuscate Android applications transformed with the control flow obfuscation option of DexGuard :

    • Our tool can currently handle the control-flow obfuscation techniques of DexGuard.
    • It cannot handle other obfuscation techniques such as layout obfuscation, identifier renaming, and string encryption. git

Contact

  • E-mail : gyoonus at gmail dot com [Gyoosik Kim(김규식)]
  • Mobile : 082)10-9888-2792

Acknowledgement

  • This research was supported by Basic Science Research Program through the National Research Foundation of Korea(NRF) funded by the Ministry of Science and ICT (no. 2018R1A2B2004830) 시그니처 가로형_영문조합형
Morty Proxy This is a proxified and sanitized view of the page, visit original site.