From e96c356de41680efa3bf5355a7f99288952aaf9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=80=A1=E7=84=B6?= <63996691+zhaodice@users.noreply.github.com> Date: Thu, 29 Feb 2024 01:19:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=81=E6=AD=A2=E7=89=88=E6=9C=AC9.0.20?= =?UTF-8?q?=E5=9F=BA=E4=BA=8EgetPackageGids=E7=9A=84=E6=A3=80=E6=B5=8B=20(?= =?UTF-8?q?#263)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 禁止基于getPackageGids的检测 --- .../shamrock/xposed/hooks/AntiDetection.kt | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/hooks/AntiDetection.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/hooks/AntiDetection.kt index ead260a..ad94175 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/hooks/AntiDetection.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/hooks/AntiDetection.kt @@ -1,12 +1,10 @@ @file:Suppress("UNCHECKED_CAST", "LocalVariableName") package moe.fuqiuluo.shamrock.xposed.hooks -import android.content.ContentProviderClient import android.content.ContentResolver import android.content.Context import android.content.pm.PackageManager import android.content.pm.VersionedPackage -import android.net.Uri import android.os.Build import android.os.Looper import de.robv.android.xposed.XC_MethodReplacement @@ -18,7 +16,6 @@ import moe.fuqiuluo.shamrock.remote.service.config.ShamrockConfig import moe.fuqiuluo.shamrock.tools.MethodHooker import moe.fuqiuluo.shamrock.tools.hookMethod import moe.fuqiuluo.shamrock.xposed.XposedEntry -import moe.fuqiuluo.shamrock.xposed.helper.AppTalker import moe.fuqiuluo.shamrock.xposed.loader.LuoClassloader import moe.fuqiuluo.shamrock.xposed.loader.NativeLoader import moe.fuqiuluo.symbols.XposedHook @@ -28,7 +25,10 @@ class AntiDetection: IAction { private external fun antiNativeDetections(): Boolean override fun invoke(ctx: Context) { - antiFindPackage(ctx) + try { + antiFindPackage(ctx) + }catch(_:Throwable){ } //某个大聪明在外面隐藏了shamrock,导致这个代码抛出异常,俺不说是谁>_< + antiGetPackageGidsDetection(ctx) antiProviderDetection() antiNativeDetection() if (ShamrockConfig.isAntiTrace()) @@ -36,6 +36,18 @@ class AntiDetection: IAction { antiMemoryWalking() } + private fun antiGetPackageGidsDetection(ctx: Context) { + //通过 android.content.pm.PackageManager->getPackageGids(Ljava/lang/String;)[I 扫 moe.fuqiuluo.shamrock + ctx.packageManager::class.java.hookMethod("getPackageGids").before { + val packageName = it.args[0] as String + if (packageName == "moe.fuqiuluo.shamrock") { + it.result = null + it.throwable = PackageManager.NameNotFoundException(packageName) + LogCenter.log("AntiDetection: 检测到对Shamrock的检测,欺骗GetPackageGids") + } + } + } + private fun antiProviderDetection() { ContentResolver::class.java.hookMethod("acquireContentProviderClient").before { val uri = it.args[0] as String