mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
Shamrock
: Anti Provider Detection
This commit is contained in:
parent
a22dc50f14
commit
262af4108b
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name=".ui.service.internal.MultifunctionalProvider"
|
android:name=".ui.service.internal.MultifunctionalProvider"
|
||||||
android:authorities="moe.fuqiuluo.xqbot.provider"
|
android:authorities="moe.fuqiuluo.108.provider"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:grantUriPermissions="true"
|
android:grantUriPermissions="true"
|
||||||
tools:ignore="ExportedContentProvider" />
|
tools:ignore="ExportedContentProvider" />
|
||||||
|
@ -3,9 +3,11 @@ package moe.fuqiuluo.shamrock.xposed.helper
|
|||||||
import android.content.ContentValues
|
import android.content.ContentValues
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import mqq.app.MobileQQ
|
import mqq.app.MobileQQ
|
||||||
|
import kotlin.random.Random
|
||||||
|
|
||||||
internal object AppTalker {
|
internal object AppTalker {
|
||||||
private val URI = Uri.parse("content://moe.fuqiuluo.xqbot.provider")
|
val uriName = "content://moe.fuqiuluo.108.provider" // 你是真的闲,这都上个检测
|
||||||
|
val URI = Uri.parse(uriName)
|
||||||
|
|
||||||
fun talk(values: ContentValues, onFailure: ((Throwable) -> Unit)? = null) {
|
fun talk(values: ContentValues, onFailure: ((Throwable) -> Unit)? = null) {
|
||||||
val ctx = MobileQQ.getContext()
|
val ctx = MobileQQ.getContext()
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
@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.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
|
||||||
@ -15,6 +18,7 @@ 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
|
||||||
@ -25,12 +29,26 @@ class AntiDetection: IAction {
|
|||||||
|
|
||||||
override fun invoke(ctx: Context) {
|
override fun invoke(ctx: Context) {
|
||||||
antiFindPackage(ctx)
|
antiFindPackage(ctx)
|
||||||
|
antiProviderDetection()
|
||||||
antiNativeDetection()
|
antiNativeDetection()
|
||||||
if (ShamrockConfig.isAntiTrace())
|
if (ShamrockConfig.isAntiTrace())
|
||||||
antiTrace()
|
antiTrace()
|
||||||
antiMemoryWalking()
|
antiMemoryWalking()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun antiProviderDetection() {
|
||||||
|
ContentResolver::class.java.hookMethod("acquireContentProviderClient").before {
|
||||||
|
val uri = it.args[0] as String
|
||||||
|
if (uri == "moe.fuqiuluo.108.provider" || uri == "moe.fuqiuluo.xqbot.provider") {
|
||||||
|
it.result = null
|
||||||
|
LogCenter.log("AntiDetection: 检测到对Shamrock的检测,欺骗ContentResolver", Level.WARN)
|
||||||
|
}
|
||||||
|
//else {
|
||||||
|
// LogCenter.log(uri)
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val isModuleStack = fun String.(): Boolean {
|
val isModuleStack = fun String.(): Boolean {
|
||||||
return contains("fuqiuluo") || contains("shamrock") || contains("whitechi") || contains("lsposed") || contains("xposed")
|
return contains("fuqiuluo") || contains("shamrock") || contains("whitechi") || contains("lsposed") || contains("xposed")
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user