mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
parent
bbdb0a65fb
commit
e96c356de4
@ -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) {
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user