Skip to main content

LibRadar is an automatic tool for Android library detection.

Project description

# LibRadar
LibRadar is an automatic tool for Android library detection.

Upload your apk file and LibRadar can detect third-party libraries in Android apps accurately and instantly.

## Features

#### Fast
LibRadar takes just several seconds to scan an app and report the list of third-party libraries used in it.
#### Accurate
LibRadar is trained with more than 1 million apps from Google Play, so it can identify virtually all popular libraries in any given Android app.
#### Anti-Obfuscation
Many Android apps are obfuscated with tools such as ProGuard, which makes it difficult to recognize a library by its package names or class names.
LibRadar is obfuscation-resilient since we use features that cannot be obfuscated, such as statistics on Android APIs.

## Usage

Use __detect.py__ under the main directory.

Input the first parameters as the path of the target apk.

```bash
$ python LibRadar/libradar.py someapp.apk
```

~~If you want an online trial, just click http://radar.pkuos.org/~~. (Still version 1 temporarily)

## Description for output

Sorry, Docs not finished.

## Dev Environment

* PyPy Version:
```
Python 2.7.12 (aff251e54385, Nov 09 2016, 17:25:49)
[PyPy 5.6.0 with GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
```

* Python Version (optional):
```
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 26 2016, 12:10:39)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
```

* JDK Version :
```
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
```

* IDE :
```
PyCharm 2016.3.2
Build #PY-163.10154.50, built on December 29, 2016
Licensed to Ziang Ma
Subscription is active until September 15, 2017
For educational use only.
JRE: 1.8.0_112-release-408-b6 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
```

##Update History

__version 2.0.2dev1 (current version)__

1. Lots of changes! ^_^

__version 1.3.0__

1. Ajax support.

__version 1.2.5__

1. Assert 3 parts.
2. Repair the problem "three ';' in 'tgst5.dat'".
3. Update repetition counting.
4. Merge the results of marked libs and unmarked libs.
5. Fix '/' bug.
6. Sort the result.

__version 1.2.3__

1. Add 'LData' Branch for Jingyue's research.
2. Add var RM_STATUS for smali code deleting control.
3. Modify path in function *all_over* so that there's no need to input the full path of this python script any more.
4. Replace chinese description with web address.

__version 1.2.1__

Remove lib code in smali files and zip them into a new file.

__version 1.2.0__

Modularity

__version 1.1.9__

1. Update Output Format.
2. Add library type.
3. Update library fingerprint data for better recognition.

__version 1.1.7__

1. Update library fingerprint data for better recognition.
2. Put plenty data into final output.
- "dn": 311 - Repetitions
- "lib": "pollfish" - Library
- "sp": "com/pollfish/f/a" - Simplified Path
- "bh": 32370 - B_Hash
- "btc": 40 - B_Total_Call
- "btn": 12 - B_Total_Number
- "pn": "com/pollfish" - Package Name
3. Permission detection of Libraries.

__version 1.1.5__

Add Permission Detection of packages.

__version 1.1.3__

1. Modified Tagged Library Data and Sorted it.
1. Remove print('*' * 60) and print('Task: '+self.tag+' Starts.')
1. Remove 'minutes' tag because it is useless.
1. Add specific time consuming tag.
1. time_decode = TimeRecord('Target App Decoding')
- time_load = TimeRecord('Lib Data Loading')
- time_extract = TimeRecord('Feature Extracting')
- time_compare = TimeRecord('Library Searching')
1. New algorithm.
1. Sort library data.
1. Use binary search to find the library.

__version 1.1.2__

Update and modify library data set.

__version 1.1.1__

Replace 320,000 apps data with 1,000,000 apps data.

__version 1.1.0__

A new version with optimized code, detailed comments and simplified data.

__version 1.0.1__

Uploading bug fixed.

__version 1.0.0__

First complete Version with complicated code which can be used with Node.js.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

LibRadar-2.0a1.tar.gz (242.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

LibRadar-2.0a1-py2-none-any.whl (53.4 kB view details)

Uploaded Python 2

File details

Details for the file LibRadar-2.0a1.tar.gz.

File metadata

  • Download URL: LibRadar-2.0a1.tar.gz
  • Upload date:
  • Size: 242.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for LibRadar-2.0a1.tar.gz
Algorithm Hash digest
SHA256 8d735b5738d56efb4238bd80bef878faf405b59c5fd6da0f0f517ab4000f96bc
MD5 b90bee92be5ea4000c0ce13f79e6ea53
BLAKE2b-256 9b22b884bf38ec5a50919ffa2dbc3f029cd673247fd78b8ce23accb690cab61f

See more details on using hashes here.

File details

Details for the file LibRadar-2.0a1-py2-none-any.whl.

File metadata

File hashes

Hashes for LibRadar-2.0a1-py2-none-any.whl
Algorithm Hash digest
SHA256 ffa6b5a103606fe3c056b263103d2de56c9537e9174d7909b1ed108a8edbc642
MD5 67491996d2f2b6cb3d6f0e85d1023a28
BLAKE2b-256 5d0b8dc56c1a5fd397397745581e3bb2692510cb3adc4a6e542e09ec80dc9f77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page