App Detonator
  • Documentation
Powered by GitBook
On this page
  • Getting Started
  • Analyze APK
  • Analyze via multipart/form-data
  • Dex Report

Was this helpful?

Documentation

appdetonator.run provides a RESTful API that allows you to glean into any application to retrieve metadata, detailed class name and methods and other build information.

Last updated 4 years ago

Was this helpful?

Getting Started

The simplest API call you can make is /analyze endpoint providing APK URL. The URL should be publicly accessible.

If you don't have an API key yet, you can get it from here,

curl https://api.appdetonator.run/analyze?key=<api_key>&url=https://storage.googleapis.com/detonator-samples/jack2.apk

Analyze APK

GET https://api.appdetonator.run/analyze?key=<api_key>&url=https://storage.googleapis.com/detonator-samples/jack2.apk

Submit application for analysis. The response might take somewhere between ~ 30 sec to 2min depending on the size of APK sample.

Path Parameters

Name
Type
Description

url

string

Publicly accessable APK URL

key

string

API Key

{
  "entryNameToEntry": {
    "classes.dex": {
      "name": "classes.dex",
      "xdostime": 1224180776,
      "crc": 1232565471,
      "size": 545008,
      "csize": 224195,
      "method": 8,
      "flag": 2056
    }
  },
  "certificate": {
    "apkCertificates": [
      {
        "subjectPrincipal": "1.2.840.113549.1.9.1=#16146c6f72656e7a406c6f6e6461746967612e6e6574,CN=Lorensius W. L. T,OU=AndroidDev,O=Londatiga,L=Bandung,ST=Jawa Barat,C=ID",
        "issuerPrincipal": "1.2.840.113549.1.9.1=#16146c6f72656e7a406c6f6e6461746967612e6e6574,CN=Lorensius W. L. T,OU=AndroidDev,O=Londatiga,L=Bandung,ST=Jawa Barat,C=ID",
        "publicKeyHash": "74bd7b456d9e651fc84446f65041bef1207c408d",
        "signatureHash": "2c0bc272a22dd43b06e4350b1c8edf9bed359f40"
      }
    ]
  },
  "androidManifest": {
    "application": {
      "activities": [
        {
          "allowEmbedded": false,
          "allowTaskReparenting": false,
          "alwaysRetainTaskState": false,
          "autoRemoveFromRecents": false,
          "banner": "",
          "clearTaskOnLaunch": false,
          "configChanges": 0,
          "documentLaunchMode": 0,
          "excludeFromRecents": false,
          "finishOnTaskLaunch": false,
          "hardwareAccelerated": false,
          "launchMode": 0,
          "maxRecents": 16,
          "multiprocess": false,
          "noHistory": false,
          "parentActivityName": "",
          "persistableMode": 0,
          "relinquishTaskIdentity": false,
          "resizeableActivity": false,
          "screenOrientation": 0,
          "showForAllUsers": false,
          "stateNotNeeded": false,
          "supportsPictureInPicture": false,
          "taskAffinity": "",
          "theme": "",
          "uiOptions": 0,
          "windowSoftInputMode": 0,
          "intentFilters": [
            {
              "actions": [
                "android.intent.action.MAIN"
              ],
              "categories": [
                "android.intent.category.LAUNCHER"
              ],
              "data": [],
              "icon": "",
              "label": "",
              "priority": 0
            }
          ],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "U[2130968576]",
          "name": "net.droidjack.server.MainActivity",
          "permission": "",
          "process": ""
        },
        {
          "allowEmbedded": false,
          "allowTaskReparenting": false,
          "alwaysRetainTaskState": false,
          "autoRemoveFromRecents": false,
          "banner": "",
          "clearTaskOnLaunch": false,
          "configChanges": 0,
          "documentLaunchMode": 0,
          "excludeFromRecents": false,
          "finishOnTaskLaunch": false,
          "hardwareAccelerated": false,
          "launchMode": 0,
          "maxRecents": 16,
          "multiprocess": false,
          "noHistory": false,
          "parentActivityName": "",
          "persistableMode": 0,
          "relinquishTaskIdentity": false,
          "resizeableActivity": false,
          "screenOrientation": 0,
          "showForAllUsers": false,
          "stateNotNeeded": false,
          "supportsPictureInPicture": false,
          "taskAffinity": "",
          "theme": "U[16973840]",
          "uiOptions": 0,
          "windowSoftInputMode": 0,
          "intentFilters": [
            {
              "actions": [
                "android.intent.action.CAMSNAPDJ"
              ],
              "categories": [
                "android.intent.category.DEFAULT"
              ],
              "data": [],
              "icon": "",
              "label": "",
              "priority": 0
            }
          ],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "U[2130968576]",
          "name": "net.droidjack.server.CamSnapDJ",
          "permission": "",
          "process": ""
        },
        {
          "allowEmbedded": false,
          "allowTaskReparenting": false,
          "alwaysRetainTaskState": false,
          "autoRemoveFromRecents": false,
          "banner": "",
          "clearTaskOnLaunch": false,
          "configChanges": 0,
          "documentLaunchMode": 0,
          "excludeFromRecents": false,
          "finishOnTaskLaunch": false,
          "hardwareAccelerated": false,
          "launchMode": 0,
          "maxRecents": 16,
          "multiprocess": false,
          "noHistory": false,
          "parentActivityName": "",
          "persistableMode": 0,
          "relinquishTaskIdentity": false,
          "resizeableActivity": false,
          "screenOrientation": 0,
          "showForAllUsers": false,
          "stateNotNeeded": false,
          "supportsPictureInPicture": false,
          "taskAffinity": "",
          "theme": "U[16973840]",
          "uiOptions": 0,
          "windowSoftInputMode": 0,
          "intentFilters": [
            {
              "actions": [
                "android.intent.action.VIDEOCAPDJ"
              ],
              "categories": [
                "android.intent.category.DEFAULT"
              ],
              "data": [],
              "icon": "",
              "label": "",
              "priority": 0
            }
          ],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "U[2130968576]",
          "name": "net.droidjack.server.VideoCapDJ",
          "permission": "",
          "process": ""
        },
        {
          "allowEmbedded": false,
          "allowTaskReparenting": false,
          "alwaysRetainTaskState": false,
          "autoRemoveFromRecents": false,
          "banner": "",
          "clearTaskOnLaunch": false,
          "configChanges": 0,
          "documentLaunchMode": 0,
          "excludeFromRecents": false,
          "finishOnTaskLaunch": false,
          "hardwareAccelerated": false,
          "launchMode": 0,
          "maxRecents": 16,
          "multiprocess": false,
          "noHistory": false,
          "parentActivityName": "",
          "persistableMode": 0,
          "relinquishTaskIdentity": false,
          "resizeableActivity": false,
          "screenOrientation": 0,
          "showForAllUsers": false,
          "stateNotNeeded": false,
          "supportsPictureInPicture": false,
          "taskAffinity": "",
          "theme": "U[16973840]",
          "uiOptions": 0,
          "windowSoftInputMode": 0,
          "intentFilters": [
            {
              "actions": [
                "android.intent.action.CAMSNAPDJ"
              ],
              "categories": [
                "android.intent.category.DEFAULT"
              ],
              "data": [],
              "icon": "",
              "label": "",
              "priority": 0
            }
          ],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "U[2130968576]",
          "name": "net.droidjack.server.CamSnapDJ",
          "permission": "",
          "process": ""
        },
        {
          "allowEmbedded": false,
          "allowTaskReparenting": false,
          "alwaysRetainTaskState": false,
          "autoRemoveFromRecents": false,
          "banner": "",
          "clearTaskOnLaunch": false,
          "configChanges": 0,
          "documentLaunchMode": 0,
          "excludeFromRecents": false,
          "finishOnTaskLaunch": false,
          "hardwareAccelerated": false,
          "launchMode": 0,
          "maxRecents": 16,
          "multiprocess": false,
          "noHistory": false,
          "parentActivityName": "",
          "persistableMode": 0,
          "relinquishTaskIdentity": false,
          "resizeableActivity": false,
          "screenOrientation": 0,
          "showForAllUsers": false,
          "stateNotNeeded": false,
          "supportsPictureInPicture": false,
          "taskAffinity": "",
          "theme": "U[16973840]",
          "uiOptions": 0,
          "windowSoftInputMode": 0,
          "intentFilters": [
            {
              "actions": [
                "android.intent.action.VIDEOCAPDJ"
              ],
              "categories": [
                "android.intent.category.DEFAULT"
              ],
              "data": [],
              "icon": "",
              "label": "",
              "priority": 0
            }
          ],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "U[2130968576]",
          "name": "net.droidjack.server.VideoCapDJ",
          "permission": "",
          "process": ""
        }
      ],
      "activityAliases": [],
      "allowTaskReparenting": false,
      "allowBackup": true,
      "backupAgent": "",
      "backupInForeground": false,
      "banner": "",
      "debuggable": false,
      "description": "",
      "directBootAware": false,
      "enabled": true,
      "extractNativeLibs": true,
      "fullBackupContent": "",
      "fullBackupOnly": false,
      "hardwareAccelerated": true,
      "hasCode": true,
      "icon": "U[2130837504]",
      "isGame": false,
      "killAfterRestore": true,
      "largeHeap": false,
      "label": "U[2130968576]",
      "logo": "",
      "manageSpaceActivity": "",
      "name": "",
      "networkSecurityConfig": "",
      "permission": "",
      "persistent": false,
      "process": "",
      "providers": [],
      "receivers": [
        {
          "intentFilters": [
            {
              "actions": [
                "android.net.conn.CONNECTIVITY_CHANGE",
                "android.intent.action.BOOT_COMPLETED"
              ],
              "categories": [],
              "data": [],
              "icon": "",
              "label": "",
              "priority": 0
            }
          ],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.Connector",
          "permission": "",
          "process": ""
        },
        {
          "intentFilters": [
            {
              "actions": [
                "android.intent.action.PHONE_STATE"
              ],
              "categories": [],
              "data": [],
              "icon": "",
              "label": "",
              "priority": 0
            }
          ],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.CallListener",
          "permission": "",
          "process": ""
        },
        {
          "intentFilters": [
            {
              "actions": [
                "android.net.conn.CONNECTIVITY_CHANGE",
                "android.intent.action.BOOT_COMPLETED"
              ],
              "categories": [],
              "data": [],
              "icon": "",
              "label": "",
              "priority": 0
            }
          ],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.Connector",
          "permission": "",
          "process": ""
        },
        {
          "intentFilters": [
            {
              "actions": [
                "android.intent.action.PHONE_STATE"
              ],
              "categories": [],
              "data": [],
              "icon": "",
              "label": "",
              "priority": 0
            }
          ],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.CallListener",
          "permission": "",
          "process": ""
        }
      ],
      "restoreAnyVersion": false,
      "requiredAccountType": "",
      "resizableActivity": false,
      "supportsRtl": false,
      "services": [
        {
          "isolatedProcess": false,
          "intentFilters": [],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.Controller",
          "permission": "",
          "process": ""
        },
        {
          "isolatedProcess": false,
          "intentFilters": [],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.GPSLocation",
          "permission": "",
          "process": ""
        },
        {
          "isolatedProcess": false,
          "intentFilters": [],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.Toaster",
          "permission": "",
          "process": ""
        },
        {
          "isolatedProcess": false,
          "intentFilters": [],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.Controller",
          "permission": "",
          "process": ""
        },
        {
          "isolatedProcess": false,
          "intentFilters": [],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.GPSLocation",
          "permission": "",
          "process": ""
        },
        {
          "isolatedProcess": false,
          "intentFilters": [],
          "metaData": [],
          "directBootAware": false,
          "enabled": true,
          "exported": false,
          "icon": "",
          "label": "",
          "name": "net.droidjack.server.Toaster",
          "permission": "",
          "process": ""
        }
      ],
      "taskAffinity": "",
      "theme": "U[2131034113]",
      "uiOptions": 0,
      "usesCleartextTraffic": true,
      "vmSafeMode": false,
      "usesLibraries": []
    },
    "compatibleScreens": [],
    "hasResources": false,
    "installLocation": 0,
    "instrumentations": [],
    "maxSdkVersion": 0,
    "minSdkVersion": 8,
    "packageName": "net.droidjack.server",
    "permissionGroups": [],
    "permissionTrees": [],
    "permissions": [],
    "platformBuildVersionCode": 17,
    "platformBuildVersionName": "4.2.2-1425461",
    "sharedUserId": "",
    "sharedUserLabel": "",
    "supportsGlTextures": [],
    "targetSdkVersion": 17,
    "usesConfigurations": [],
    "usesFeatures": [
      {
        "glEsVersion": 0,
        "name": "android.hardware.camera",
        "required": true
      },
      {
        "glEsVersion": 0,
        "name": "android.hardware.camera.autofocus",
        "required": true
      },
      {
        "glEsVersion": 0,
        "name": "android.hardware.camera.flash",
        "required": true
      }
    ],
    "usesPermissions": [
      "android.permission.READ_SMS",
      "android.permission.RECEIVE_SMS",
      "android.permission.RECORD_AUDIO",
      "android.permission.READ_EXTERNAL_STORAGE",
      "android.permission.WRITE_EXTERNAL_STORAGE",
      "android.permission.ACCESS_WIFI_STATE",
      "android.permission.READ_PHONE_STATE",
      "android.permission.WRITE_SMS",
      "android.permission.ACCESS_FINE_LOCATION",
      "android.permission.ACCESS_NETWORK_STATE",
      "android.permission.CAMERA",
      "android.permission.WRITE_CONTACTS",
      "android.permission.READ_CONTACTS",
      "android.permission.SEND_SMS",
      "android.permission.READ_CALL_LOG",
      "android.permission.WRITE_CALL_LOG",
      "com.android.browser.permission.READ_HISTORY_BOOKMARKS",
      "android.permission.RECEIVE_BOOT_COMPLETED",
      "android.permission.WAKE_LOCK",
      "android.permission.CALL_PHONE",
      "android.permission.GET_TASKS",
      "android.permission.CHANGE_NETWORK_STATE",
      "android.permission.CHANGE_WIFI_STATE",
      "android.permission.INTERNET"
    ],
    "versionCode": 1,
    "versionName": "1.0"
  },
  "dexReport": {
    "status": "COMPLETED",
    "entryNameToDex": {},
    "result": "dex/49e76051827f37baff9e2b75f342a00227da4f89cb57ed1b2a3be469a9281b8d"
  },
  "fileSHA256": "49e76051827f37baff9e2b75f342a00227da4f89cb57ed1b2a3be469a9281b8d"
}

Analyze via multipart/form-data

POST https://api.appdetonator.run/analyze?key=<api_key>

Typically, RESTful APIs accept requests in JSON format. However, in order to upload the file, you must use the multipart/form-data format

Path Parameters

Name
Type
Description

file

object

<file_path>

Dex Report

GET https://api.appdetonator.run/dex/<apk_hash>?key=<api_key>

When submitting an APK for analysis, the Dalvik binaries will be analyzed asynchronously in the background and the result is not included on /analyze endpoint. To retrieve DEX report use this method by providing the APK SHA-256 hash as a parameter SHA-256 can be obtained with the following methods 1. /analyze endpoint 2. /analyze exposes dexReport block

Path Parameters

Name
Type
Description

key

string

API Key

https://appdetonator.run/