DexcaliburProject

DexcaliburProject

new DexcaliburProject(pEngine, pUID)

Source:
Author:
  • Georges-B. MICHEL
Parameters:
Name Type Description
pEngine DexcaliburEngine

Instance of the DexcaliburEngine (holding the context)

pUID String

The UID of the project, an unique name for this project

Members

analyze :Analyzer

Source:
Type:

apiVersion

Source:

appAnalyzer :AndroidAppAnalyzer

Source:
Type:

application

Source:

bus :Bus

Source:
Type:
  • Bus

config

Source:

connector :*

Source:
Type:
  • *

dataAnalyser :DataAnalyzer

Source:
Type:
  • DataAnalyzer

device

Source:

Default device

engine :DexcaliburEngine

Source:
Type:

find :Finder

Source:
Type:

inspectors :Array.<Inspector>

Source:
Type:

nofrida

Source:

pkg :String

Source:
Type:
  • String

platform

Source:

Target platform

ready

Source:

Ready flag

uid :String

Source:
Type:
  • String

workspace :Workspace

Source:
Type:

Methods

(static) exists(pUID) → {Boolean}

Source:

To detect if there is a project with the specified UID

Parameters:
Name Type Description
pUID String

Project UID

Returns:

TRUE if a project exists, else FALSE

Type
Boolean

(static) load(pContext, pProjectUID, pConfigPath)

Source:
Parameters:
Name Type Default Description
pContext *
pProjectUID *
pConfigPath * null

(static) suggests(pUID)

Source:

To suggest a new project name

Parameters:
Name Type Description
pUID *

deployInspectors(pStep)

Source:

To deploy all inspectors starting at the specified step

Supported step :

  • BOOT
  • POST_PLATFORM_SCAN
  • POST_APP_SCAN
  • POST_DEV_SCAN
  • ON_DEMAND
Parameters:
Name Type Description
pStep String

Inspector step

(async) fullscan(path) → {Project}

Source:

To perform a fullsacn of the application. It performs : - Android API bytecode scan (for the specified API version - by default it's API 25) - Application bytecode scan - Application package scan

Parameters:
Name Type Description
path string

Optional, the path of the folder containing the decompiled smali code.

Returns:

Returns the instance of this project

Type
Project

getAnalyzer() → {Analyzer}

Source:

To get the bytecode static code analyzer which contains the internal database.

Returns:

The internal bytecode analyzer

Type
Analyzer

getAppAnalyzer() → {AndroidAppAnalyzer}

Source:

To get the application analyzer, which includes manifest and permission analysis.

Returns:

The application analyzer

Type
AndroidAppAnalyzer

getContext() → {DexcaliburEngine}

Source:

To get DexcaliburEngine instance associated to this project

Returns:

DexcaliburEngine instance

Type
DexcaliburEngine

getDataAnalyzer() → {DataAnalyzer}

Source:

To get the data analyzer.

Returns:

The data analyzer

Type
DataAnalyzer

getDevice()

Source:

To get device target of the project

getInspector(Inspector) → {Inspector}

Source:

To get the inspector with specified name

Parameters:
Name Type Description
Inspector String

name

Returns:

Inspector instance

Type
Inspector

getPackageName() → {String}

Source:

To get application package name

Returns:

Applciation package name

Type
String

getSearchEngine() → {Finder.SearchAPI}

Source:

To get Search Engine

Returns:

Search engine for this project

Type
Finder.SearchAPI

getUID() → {String}

Source:

To get the project UID

Returns:

ProjectUID

Type
String

init()

Source:

To init the project

isReady() → {Boolean}

Source:

To get 'ready' status

Returns:

TRUE if the project has been successully opened and analyzed, else FALSE

Type
Boolean

(async) open()

Source:

To open an existing project

Read project.json file

save(pExportPath)

Source:

To save project metadata into 'project.json'

Parameters:
Name Type Default Description
pExportPath * null

scan(path) → {Project}

Source:
Deprecated:
  • ?

To perform a scan of the application byetcode only.

All reference to Android system classes will be tagged MissingReference or VMBinding

Parameters:
Name Type Description
path string

Optional, the path of the folder containing the decompiled smali code.

Returns:

Returns the instance of this project

Type
Project

scanForFiles(path) → {Project}

Source:
Deprecated:
  • Yes

To perform a scan of the set of files (not bytecode/dex/smali).

Parameters:
Name Type Description
path string

Optional, the path of the folder containing the decompiled smali code.

Returns:

Returns the instance of this project

Type
Project

setConnector(pConnectorType)

Source:

To select the way to store the internal data

Parameters:
Name Type Description
pConnectorType String

Connector type

setDevice()

Source:

To set default device

start(activity) → {ApplicationInstance}

Source:
Deprecated:
  • Yes

To start the application from a specific Activity. Use the default device. It can used in order to force application crawl.

Parameters:
Name Type Description
activity String

The activity to start

Returns:

A reference to the process running the Application

Type
ApplicationInstance

startWebserver(port)

Source:
Deprecated:
  • Yes

To start the web server

Parameters:
Name Type Description
port int

Optional - The port number to use. By default, the port number from configuration is used.

(async) synchronizePlatform(pName)

Source:

To synchronize project platform used during analysis with device and APK

Parameters:
Name Type Description
pName *

trigger(eventData)

Source:

To create an event and push it to the queue. The argulent should be given by using the format expected by the Event constructor.

Parameters:
Name Type Description
eventData Object

The description of the event to use with the Event constructor.

(async) useAPK(pPath)

Source:
Parameters:
Name Type Description
pPath *

useEmulator()

Source:
Deprecated:
  • Yes

To use the emulator by default instead of an USB device

(async) usePlatform(pVersion)

Source:

To set target platform to use during analysis

Replace Project.useAPI()

Parameters:
Name Type Description
pVersion String