Shamrock: 更新反检测逻辑

Signed-off-by: WhiteChi <whitechi73@outlook.com>
This commit is contained in:
WhiteChi 2023-10-29 18:04:03 +08:00
parent 547f224140
commit 79f2594a2f
3 changed files with 37 additions and 1 deletions

View File

@ -345,7 +345,8 @@ internal object GlobalEventTransmitter: BaseSvc() {
@ShamrockDsl
suspend inline fun onNoticeEvent(collector: FlowCollector<NoticeEvent>) {
noticeEventFlow.collect(collector)
noticeEventFlow
.collect(collector)
}
}

View File

@ -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<StackTraceElement>
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<StackTraceElement>
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<StackTraceElement>
it.result = result.filter {
!it.className.contains("fuqiuluo") && !it.className.contains("shamrock")
}.toTypedArray()
}
}
}

View File

@ -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进程拉扯配置文件