diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/GlobalEventTransmitter.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/GlobalEventTransmitter.kt index a65bc89..da1a2a5 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/GlobalEventTransmitter.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/GlobalEventTransmitter.kt @@ -345,7 +345,8 @@ internal object GlobalEventTransmitter: BaseSvc() { @ShamrockDsl suspend inline fun onNoticeEvent(collector: FlowCollector) { - noticeEventFlow.collect(collector) + noticeEventFlow + .collect(collector) } } diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/actions/AntiDetection.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/actions/AntiDetection.kt new file mode 100644 index 0000000..6d09116 --- /dev/null +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/actions/AntiDetection.kt @@ -0,0 +1,34 @@ +@file:Suppress("UNCHECKED_CAST") +package moe.fuqiuluo.shamrock.xposed.actions + +import android.content.Context +import moe.fuqiuluo.shamrock.tools.hookMethod +import java.lang.Exception + +/** + * 反检测 + */ +class AntiDetection: IAction { + override fun invoke(ctx: Context) { + Thread::class.java.hookMethod("getStackTrace").after { + val result = it.result as Array + it.result = result.filter { + !it.className.contains("fuqiuluo") && !it.className.contains("shamrock") + }.toTypedArray() + } + + Throwable::class.java.hookMethod("getStackTrace").after { + val result = it.result as Array + it.result = result.filter { + !it.className.contains("fuqiuluo") && !it.className.contains("shamrock") + }.toTypedArray() + } + + Throwable::class.java.hookMethod("getOurStackTrace").after { + val result = it.result as Array + it.result = result.filter { + !it.className.contains("fuqiuluo") && !it.className.contains("shamrock") + }.toTypedArray() + } + } +} \ No newline at end of file diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/loader/ActionLoader.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/loader/ActionLoader.kt index cb1005f..9bec8e9 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/loader/ActionLoader.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/loader/ActionLoader.kt @@ -8,6 +8,7 @@ import kotlin.reflect.full.createInstance object ActionLoader { private val ACTION_FIRST_LIST = arrayOf( + AntiDetection::class, DataReceiver::class, // 注册一个接收数据的动态广播 IpcService::class, PullConfig::class, // 从APP进程拉扯配置文件