Giter Site home page Giter Site logo

wechel24 / decompile Goto Github PK

View Code? Open in Web Editor NEW

This project forked from duanjianing/decompile

1.0 0.0 0.0 481 KB

Android 恶意软件检测系统 使用 java 语言在 windows 环境下执行 apktool 工具的反编译命令,反编译 apk 文件,提取特征集,与恶意样本集比较计算出相似度,根据相似度判断是否为恶意软件。

HTML 0.16% Java 99.84%

decompile's Introduction

Decompile

Android 恶意软件检测系统 使用 java 语言在 windows 环境下执行 apktool 工具的反编译命令,反编译 apk 文件,提取特征集,与恶意样本集比较计算出相似度,根据相似度判断是否为恶意软件


  • 数据库:MySQL
  • Apk Tool:ApkToolkit v3.0
实现

(一) 数据库预处理

  1. 先反编译大量恶意软件样本的 apk 文件
  2. 提取恶意应用在 AndroidManifest.xml 文件中申请的系统权限,保存到数据库中。
  3. 提取和统计 smail 文件中对 Android api 的具体调用和调用次数,保存到数据库中。

(二) 恶意检测

  1. 反编译待测应用的 apk 文件,提取权限调用信息和 api 调用信息。
  2. 与数据库中的恶意样本进行比较,计算出相似度。
  3. 根据相似度值判断是否为恶意软件及其所属恶意类型。
使用
  1. 导入数据库文件:malware.sql ,数据库共有 172 个恶意软件的数据。
  2. Main.java 文件的 main 方法是程序的执行入口。
  3. init() 方法用于数据库预处理,如果直接导入数据库就不需执行此方法,否则需要参照上面的目录结构,将恶意 apk 文件存放到D:\Decompile\decompile下对应目录中,之后注释 detection() 方法,执行 init() 方法。
  4. 注释 init() 方法,执行 detection() 方法会开始进行恶意检测,在此之前需要将待测 apk 文件放到这个目录下:D:\Decompile\decompile\test_sw,检测结束后结果会显示在 idea 的控制台中。

tip:
1. apktool 的反编译时间由 apk 文件大小不同而有长有短。
2. 如果数据库密码不是`root`,那就需要修改 com.duan.db 包下的 DBMalwareHelper.java 中的 PASSWORD 变量(数据库名 DATABASE_MALWARE 变量)。
3. 一次检测只能检测一个 apk 文件,所以`D:\Decompile\decompile\test_sw`目录下只能放一个待测的 apk 文件,不能有其他无关文件
4. 如果进行预处理,而恶意 apk 文件较多,那么预处理的时间也会比较长(我当初给 172 的文件做预处理花了差不多半个小时)

Main.java
public static void main(String[] args) {
//     init();
     detection();
}
存储结构和项目结构

存储根目录为 D:\Decompile\

程序运行结果

decompile's People

Contributors

duanjianing avatar

Stargazers

wechel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.