All Projects → mingyuan-xia → Patdroid

mingyuan-xia / Patdroid

Licence: apache-2.0
A Program Analysis Toolkit for Android

Programming Languages

java
68154 projects - #9 most used programming language
bytecode
52 projects

Projects that are alternatives of or similar to Patdroid

Hellomello
Experiments with writing Android apps in Nim
Stars: ✭ 47 (-50.53%)
Mutual labels:  apk
Vab
V Android Bootstrapper
Stars: ✭ 77 (-18.95%)
Mutual labels:  apk
Nodebase
Android NodeJS Platform to Build Sharable Application
Stars: ✭ 86 (-9.47%)
Mutual labels:  apk
Nfpm
NFPM is Not FPM - a simple deb, rpm and apk packager written in Go
Stars: ✭ 1,088 (+1045.26%)
Mutual labels:  apk
Kivy Apk
Vbox+Ubuntu16.04打包生成kivy apk
Stars: ✭ 74 (-22.11%)
Mutual labels:  apk
Chatter App
This is a flutter based modern messaging app where users can sign up and log in to chat with their friends, family, colleagues among groups with enriched User-Experience.
Stars: ✭ 80 (-15.79%)
Mutual labels:  apk
Droidjack
Este troyano para Android es uno de los más completos. Con él vamos a poder tener acceso a remoto a todo el dispositivo infectado, desde la agenda, las llamadas y los SMS hasta el micrófono y las cámaras del smartphone. Todo.
Stars: ✭ 44 (-53.68%)
Mutual labels:  apk
Guarda Android Wallets
Mobile cryptocurrency wallets for Android
Stars: ✭ 95 (+0%)
Mutual labels:  apk
Mobile Security Framework Mobsf
Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing, malware analysis and security assessment framework capable of performing static and dynamic analysis.
Stars: ✭ 10,212 (+10649.47%)
Mutual labels:  apk
Androidanimationexercise
Android 动画各种实现,包括帧动画、补间动画和属性动画的总结分享
Stars: ✭ 1,254 (+1220%)
Mutual labels:  apk
Node Google Play Cli
command line tools using the node-google-play library
Stars: ✭ 58 (-38.95%)
Mutual labels:  apk
Website 2 Apk Builder
Convert your Website to a working Android App. Supports html, php, htm, js, css. Build app from any website or from local directory.
Stars: ✭ 67 (-29.47%)
Mutual labels:  apk
Backgroundupdate
后台更新APP(两句代码实现)
Stars: ✭ 80 (-15.79%)
Mutual labels:  apk
Inca
Incremental Program Analysis Framework
Stars: ✭ 49 (-48.42%)
Mutual labels:  program-analysis
Xdupdate
Android 自动更新 / 阿里云 OSS 一键上传更新 (Android auto update / upload update by aliyun OSS)
Stars: ✭ 92 (-3.16%)
Mutual labels:  apk
Apkupdater
APKUpdater is an open source tool that simplifies the process of finding updates for your installed apps.
Stars: ✭ 1,028 (+982.11%)
Mutual labels:  apk
Gradle Android Apk Size Plugin
Gradle plugin that generates CSV files with apk size per output and variant of an apk
Stars: ✭ 79 (-16.84%)
Mutual labels:  apk
Ultimate
Stars: ✭ 95 (+0%)
Mutual labels:  program-analysis
Expose
A Dynamic Symbolic Execution (DSE) engine for JavaScript. ExpoSE is highly scalable, compatible with recent JavaScript standards, and supports symbolic modelling of strings and regular expressions.
Stars: ✭ 94 (-1.05%)
Mutual labels:  program-analysis
Updater
基于DownloadManager封装的更新器,使用超简单!
Stars: ✭ 82 (-13.68%)
Mutual labels:  apk

PATDroid Build Status Maven Central

PATDroid is a collection of tools and data structures for analyzing Android applications and the system itself. We intend to build it as a common base for developing novel mobile software debugging, refactoring, reverse engineering tools.
dependencies {
    compile group: 'mxia.me', name: 'patdroid', version: '1.0.0'
}

The master branch is the nightly dev branch, which could diverge greatly from the maven artifacts.

Packages

Here is a one-sentence description for each package. Find the detailed usage tutorials on our wiki by clicking on the package name to redirect to their wiki pages. Most public APIs are Java-doced. PATDroid requires Java6+. It goes well with Oracle/OpenJDK 1.6, 1.7, Dalvik (Yes, you can run it on a smartphone). Gradle (wrapper) is the default build system. You can import the project to IntelliJ IDEA (File->Import from Gradle Project) and Eclipse (similar).

  • patdroid.core: provide abstractions for methods, classes, fields, and primitive Java type values
  • patdroid.permission: specify what Android permissions are needed for every Android APIs
  • patdroid.fs: an emulated and simplified Android file system
  • patdroid.dalvik: Android Dalvik JVM instructions and representations
  • patdroid.smali: using SMALI to extract classes, methods, fields and instructions from an APK

Closely related functionality:

  • patdroid.dex2jar: using dex2jar to extract classes, methods, fields and instructions from an APK. This has been deprecated and removed.
  • Layout XMLs and manifest file, please refer to apktool and various AXML parsers exist for different programming languages.
  • Taint sources and sinks: FlowDroid provides a list of sources and sinks for taint analysis that we cross referenced.
  • Soot: my tribute to Sable's Soot and the happy seminar time at McGill McConnell 2rd floor. Soot provides a disassembler similar to smali, and a lot of high-level program analysis constructs and tasks, such as Call Graph. Also FlowDroid provides a nice and complete flow analysis.

History and Philosophy

PATDroid was part of AppAudit, which is a tool that simulates the execution of app code and checks if it leaks sensitive user data. You can find out more details from our S&P'15 paper. We make part of AppAudit public to be useful to researchers and developers. Overall, we try to make the entire project

  1. concise (with fewer abstractions as possible such that users wont feel like searching a needle in the ocean)
  2. properly documented (javadoc, and wiki tutorial)
  3. loosely coupled (packages trying to be self-contained)
  4. efficient (graduate students need life with bf/gf not waiting for computers to complete analyses)
  5. look like good code

If you want to contribute, make sure you follow these traditions and feel free to submit a pull request. Note that quick-and-dirty patches require many efforts to make them ready, and thus take more time to merge. I am always open to suggestions and willing to hear interesting projects that make use of PATDroid. Right now, several exciting research projects across McGill University and Shanghai Jiao Tong University are using PATDroid. We will update links to them soon.

  • Contact: email, new issues, pull requests.
  • PATDroid uses Apache License 2.0. If you would like to use PATDroid in academic publications, bibtex can be found here.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].