UNPKG

react-native-malwarelytics

Version:

Malwarelytics for React Native protects your banking or fintech app from a broad range of mobile security threats with an industry-leading mobile threat intelligence solution.

333 lines 11.4 kB
import type { EmulatorInfo } from "./model/rasp/EmulatorInfo"; import type { HttpProxyInfo } from "./model/rasp/HttpProxyInfo"; import type { RepackagingInfo } from "./model/rasp/RepackageInfo"; import type { ScreenSharingInfo } from "./model/rasp/ScreenSharingInfo"; import type { ScreenReaderInfo } from "./model/rasp/ScreenReaderInfo"; import type { ScreenshotInfo } from "./model/rasp/ScreenshotInfo"; import type { SystemIntegrityInfo } from "./model/rasp/SystemIntegrityInfo"; import type { TapjackingInfo } from "./model/rasp/TapjackingInfo"; import type { ActiveCallInfo } from "./model/rasp/ActiveCallInfo"; import type { AppPresenceInfo } from "./model/rasp/AppPresenceInfo"; import type { DebuggerInfo } from "./model/rasp/DebuggerInfo"; import type { BiometryInfo } from "./model/rasp/BiometryInfo"; import type { SpoofedLocationInfo } from "./model/rasp/SpoofedLocationInfo"; import type { ScreenRecordingDetectionInfo } from "./model/rasp/ScreenRecordingDetectionInfo"; import type { EventHelper } from "./internal/EventHelper"; import { CallDetectionInfo } from "./model/rasp/CallDetectionInfo"; import { AndroidAutoDetectionInfo } from "./model/rasp/AndroidAutoDetectionInfo"; /** * Malwarelytics RASP module. */ export declare class MalwarelyticsRasp { constructor(eventHelper: EventHelper); /** * Instance of EventHelper shared with Malwarelytics class. */ private readonly eventHelper; /** * Instance of native module interface. */ private readonly module; /** * Object representing a subscription to RASP events. */ private raspEventsSubscription; /** * Set listener for RASP events. * @param listener Listener implementation. */ setRaspListener(listener: MalwarelyticsRaspListener): Promise<void>; /** * Remove RASP listener previously set by `setRaspListener()` method. */ removeRaspListener(): void; /** * Get information about Jailbreak or Root presence on the device. */ getSystemIntegrityInfo(): Promise<SystemIntegrityInfo>; /** * Get information whether app is running in emulator. You can use `getEmulatorInfo()` method to get more details * about the emulator type. */ isRunningInEmulator(): Promise<boolean>; /** * Get information whether debugger is connected. */ isDebuggerConnected(): Promise<boolean>; /** * Get detailed information about debugger detection. */ getDebuggerInfo(): Promise<DebuggerInfo>; /** * Get information about application repackaging. */ getRepackagingInfo(): Promise<RepackagingInfo>; /** * Get information about HTTP proxy configured on the system. */ getHttpProxyInfo(): Promise<HttpProxyInfo>; /** * Get information whether app is running in emulator. */ getEmulatorInfo(): Promise<EmulatorInfo>; /** * Get information about active screen sharing or screen capturing. */ getScreenSharingInfo(): Promise<ScreenSharingInfo>; /** * Get information about active VPN connection. */ isVpnActive(): Promise<boolean>; /** * Get information about the active phone call. */ isOnCall(): Promise<boolean>; /** * Obtain information about app presence. */ getAppPresenceInfo(): Promise<AppPresenceInfo>; /** * Apple specific: Get information whether reverse engineering tools are present on the device. */ isReverseEngineeringToolsPresent(): Promise<boolean>; /** * Apple specific: Get information about enabled passcode in the system (device lock) */ isSystemPasscodeEnabled(): Promise<boolean>; /** * Apple specific: Get information about biometry enrolled by the user in the system. */ isSystemBiometryEnabled(): Promise<boolean>; /** * Apple specific: Get information the whole call detection information. * @returns `CallDetectionInfo` */ getCallDetectionInfo(): Promise<CallDetectionInfo>; /** * Android specific: Get information about tapjacking. */ getTapjackingInfo(): Promise<TapjackingInfo>; /** * Android specific: Get information about connected ADB. */ getAdbStatus(): Promise<boolean>; /** * Android specific: Check if system screen lock (PIN or pattern) is being used to prevent * unauthorized usage of the device by other people. It does not check if the device is currently locked. */ isScreenLockEnabled(): Promise<boolean>; /** * Android specific: Check if Play Protect is enabled on the device. `undefined` value indicates that there was * a problem obtaining the information. */ isPlayProtectEnabled(): Promise<boolean | undefined>; /** * Android specific: Get information about screen readers. */ getScreenReaderInfo(): Promise<ScreenReaderInfo>; /** * Android specific: Check if any not allowed screen reader is enabled on the device. Allowed screen readers are configured * in `MalwarelyticsAndroidRaspScreenReadersConfig.allowedScreenReaders`. */ isNotAllowedScreenReaderEnabled(): Promise<boolean>; /** * Android specific: Check if there's a bad app that is able to create a system overlay. A bad app is one that * has a treat index same or higher than `MalwarelyticsAndroidRaspTapjackingConfig.blockSensitivity`. */ isBadTapjackingCapableAppPresent(): Promise<boolean>; /** * Android specific: Check if developer options are enabled on the device. */ isDeveloperOptionsEnabled(): Promise<boolean>; /** * Android specific: Obtain information about biometry on the device. */ getBiometryInfo(): Promise<BiometryInfo>; /** * Android specific: Obtain information about active call. */ getActiveCallInfo(): Promise<ActiveCallInfo>; /** * Android specific: Obtain information about spoofed location apps. */ getSpoofedLocationInfo(): Promise<SpoofedLocationInfo>; /** * Android specific: Check if the screen is being recorded. */ isScreenBeingRecorded(): Promise<boolean>; /** * Android specific: Get details about screen recording. */ getScreenRecordingDetection(): Promise<ScreenRecordingDetectionInfo>; /** * Android specific: Get information about Android Auto connection. */ getAndroidAutoDetection(): Promise<AndroidAutoDetectionInfo>; /** * Acquire typed information about RASP detection. * @param messageType RASP message to get. * @returns Value returned from native code. */ private getRaspInfo; /** * Acquire typed information about RASP detection. This function fails if called on non-Apple platform. * @param messageType RASP message to get. * @returns Value returned from native code. */ private getRaspAppleInfo; /** * Acquire typed information about RASP detection. This function fails if called on non-Android platform. * @param messageType RASP message to get. * @returns Value returned from native code. */ private getRaspAndroidInfo; } export interface MalwarelyticsRaspListener { /** * Called when debuger is attached to the executable. * * Platforms: Apple, Android * * @param detected True is debugger is attached. */ debuggerDetected(detected: boolean): void; /** * Called when repackage is detected. * * Platforms: Apple, Android * * @param info Information about repackaging. */ repackagingDetected(info: RepackagingInfo): void; /** * Called when device is jailbroken or rooted. * * Platforms: Apple, Android * * @param info Information about compromited system integrity. */ systemIntegrityCompromised(info: SystemIntegrityInfo): void; /** * Called when application is running in emulator environment. * * Platforms: Apple, Android * * @param info Information about emulator environment. */ emulatorDetected(info: EmulatorInfo): void; /** * Called when HTTP proxy is detected. * * Platforms: Apple (limited), Android * * @param info Information about proxy configuration. */ httpProxyDetected(info: HttpProxyInfo): void; /** * Called when screen sharing or capturing is detected. * * Platforms: Apple, Android * * @param info Information about screen sharing. */ screenSharingDetected(info: ScreenSharingInfo): void; /** * Called when VPN status is changed * * Platforms: Apple, Android * @param active VPN status */ vpnDetected(active: boolean): void; /** * Called when application detects a change in enabled screen readers. * * Platforms: Android * * @param info Information about detected screen readers. */ screenReaderDetected(info: ScreenReaderInfo): void; /** * Called when a screenshot is taken and when the screenshots are not blocked. * * Platform: Android * * @param info Information about detected screenshot. */ screenshotDetected(info: ScreenshotInfo): void; /** * Called when tapjacking is detected. * * Platforms: Android * @param info Information about detected tapjacking. */ tapjackingDetected(info: TapjackingInfo): void; /** * Called when ADB status is changed. (TODO) * * Platforms: Android * * @param adbStatus ADB status changed */ adbStatusDetected(adbStatus: boolean): void; /** * Call when active call detection changes are detected. * * Platforms: Android * * @param info Information about active call. */ activeCallDetected(info: ActiveCallInfo): void; /** * Called when app presence changes. * * Platforms: Android * * @param info Information about app presence. */ appPresenceChangeDetected(info: AppPresenceInfo): void; /** * Called when a screen recording is detected. * * Platforms: Android 15+ * * @param info Information about detected screen recording. On */ onScreenRecordingDetected?(info: ScreenRecordingDetectionInfo): void; /** * Called after user took the screenshot. * * Platforms: Apple */ userScreenshotDetected(): void; /** * Called when reverse engineering tools detected on the system. * * Platforms: Apple */ reverseEngineeringToolsDetected(): void; /** * Called when device passcode configuration is changed. * * Platforms: Apple * * @param enabled Passcode is enabled or disabled. */ systemPasscodeConfigurationChanged(enabled: boolean): void; /** * Called when device's biometry configuration is changed. * * Platforms: Apple * * @param enabled Biometry is enabled or disabled. */ systemBiometryConfigurationChanged(enabled: boolean): void; /** * Called when the status of phone call is changed. * * Platforms: Apple * * @param callDetectionInfo `CallDetectionInfo` the whole call detection data. */ callDetectionInfoChanged(callDetectionInfo: CallDetectionInfo): void; } //# sourceMappingURL=MalwarelyticsRasp.d.ts.map