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")
|
@file:Suppress("UNCHECKED_CAST", "LocalVariableName")
|
||||||
package moe.fuqiuluo.shamrock.xposed.hooks
|
package moe.fuqiuluo.shamrock.xposed.hooks
|
||||||
|
|
||||||
import android.content.ContentProviderClient
|
|
||||||
import android.content.ContentResolver
|
import android.content.ContentResolver
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.content.pm.VersionedPackage
|
import android.content.pm.VersionedPackage
|
||||||
import android.net.Uri
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import de.robv.android.xposed.XC_MethodReplacement
|
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.MethodHooker
|
||||||
import moe.fuqiuluo.shamrock.tools.hookMethod
|
import moe.fuqiuluo.shamrock.tools.hookMethod
|
||||||
import moe.fuqiuluo.shamrock.xposed.XposedEntry
|
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.LuoClassloader
|
||||||
import moe.fuqiuluo.shamrock.xposed.loader.NativeLoader
|
import moe.fuqiuluo.shamrock.xposed.loader.NativeLoader
|
||||||
import moe.fuqiuluo.symbols.XposedHook
|
import moe.fuqiuluo.symbols.XposedHook
|
||||||
@ -28,7 +25,10 @@ class AntiDetection: IAction {
|
|||||||
private external fun antiNativeDetections(): Boolean
|
private external fun antiNativeDetections(): Boolean
|
||||||
|
|
||||||
override fun invoke(ctx: Context) {
|
override fun invoke(ctx: Context) {
|
||||||
|
try {
|
||||||
antiFindPackage(ctx)
|
antiFindPackage(ctx)
|
||||||
|
}catch(_:Throwable){ } //某个大聪明在外面隐藏了shamrock,导致这个代码抛出异常,俺不说是谁>_<
|
||||||
|
antiGetPackageGidsDetection(ctx)
|
||||||
antiProviderDetection()
|
antiProviderDetection()
|
||||||
antiNativeDetection()
|
antiNativeDetection()
|
||||||
if (ShamrockConfig.isAntiTrace())
|
if (ShamrockConfig.isAntiTrace())
|
||||||
@ -36,6 +36,18 @@ class AntiDetection: IAction {
|
|||||||
antiMemoryWalking()
|
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() {
|
private fun antiProviderDetection() {
|
||||||
ContentResolver::class.java.hookMethod("acquireContentProviderClient").before {
|
ContentResolver::class.java.hookMethod("acquireContentProviderClient").before {
|
||||||
val uri = it.args[0] as String
|
val uri = it.args[0] as String
|
||||||
|
Loading…
x
Reference in New Issue
Block a user