@@ -22,7 +22,7 @@ import moe.ore.xposed.utils.GlobalData
2222import moe.ore.xposed.utils.HookUtil
2323import moe.ore.xposed.utils.HttpUtil
2424import moe.ore.xposed.utils.PacketDedupCache
25- import moe.ore.xposed.utils.QQ_9_1_90_26520
25+ import moe.ore.xposed.utils.QQ_9_2_10_29175
2626import moe.ore.xposed.utils.XPClassloader
2727import moe.ore.xposed.utils.getPatchBuffer
2828import moe.ore.xposed.utils.hookMethod
@@ -57,7 +57,7 @@ object MainHook {
5757 private val tlv_t = XPClassloader .load(" oicq.wlogin_sdk.tlv_type.tlv_t" )!!
5858 private val MD5 = XPClassloader .load(" oicq.wlogin_sdk.tools.MD5" )!!
5959 private val HighwaySessionData = XPClassloader .load(" com.tencent.mobileqq.highway.openup.SessionInfo" )!!
60- // private val MSFKernel = XPClassloader.load("com.tencent.mobileqq.msfcore.MSFKernel")
60+ private val MSFKernel = XPClassloader .load(" com.tencent.mobileqq.msfcore.MSFKernel" )
6161
6262 lateinit var unhook: XC_MethodHook .Unhook
6363 val hasUnhook get() = ::unhook.isInitialized
@@ -67,16 +67,15 @@ object MainHook {
6767 HttpUtil .contextWeakReference = WeakReference (ctx)
6868 this .source = source
6969
70+ hookMSFKernelPacket()
7071 hookCodecWarpperInit()
7172 hookMD5()
7273 hookTlv()
7374 hookTea()
7475 hookSendPacket()
7576 hookBDH()
7677 hookParams()
77- if (QQTypeEnum .valueOfPackage(hostPackageName) == QQTypeEnum .QQ && hostVersionCode >= QQ_9_1_90_26520 ) {
78- hookReceData(true )
79- } else hookReceData(false )
78+ hookReceData(AntiDetection .isSupportedQQVersion(hostPackageName, hostVersionCode))
8079 }
8180
8281 private fun hookCodecWarpperInit () {
@@ -94,8 +93,11 @@ object MainHook {
9493 }
9594
9695 private fun hookMSFKernelPacket () {
97- hookMSFKernelSend()
98- hookMSFKernelReceive()
96+ if (QQTypeEnum .valueOfPackage(hostPackageName) == QQTypeEnum .QQ &&
97+ hostVersionCode > QQ_9_2_10_29175 ) {
98+ hookMSFKernelSend()
99+ hookMSFKernelReceive()
100+ }
99101 }
100102
101103 private fun hookMSFKernelReceive () {
@@ -137,7 +139,7 @@ object MainHook {
137139 }
138140
139141 private fun hookMSFKernelSend () {
140- /* MSFKernel?.hookMethod("sendPacket")?.after {
142+ MSFKernel ?.hookMethod(" sendPacket" )?.after {
141143 val from = it.args[0 ]
142144 if (from.javaClass.name == " com.tencent.mobileqq.msfcore.MSFRequestAdapter" ) {
143145 val cmdField = from.javaClass.getDeclaredField(" mCmd" ).also { it.isAccessible = true }
@@ -164,7 +166,7 @@ object MainHook {
164166 HttpUtil .sendTo(defaultUri, value, source)
165167 }
166168 }
167- }*/
169+ }
168170 }
169171
170172 private fun hookBDH () {
0 commit comments