fix: update HomeAdsPatch
Signed-off-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
parent
994d41ecd1
commit
62f1801e9c
|
@ -11,7 +11,6 @@ import app.revanced.patcher.signature.PatternScanMethod
|
||||||
import org.jf.dexlib2.AccessFlags
|
import org.jf.dexlib2.AccessFlags
|
||||||
import org.jf.dexlib2.Opcode
|
import org.jf.dexlib2.Opcode
|
||||||
import org.jf.dexlib2.iface.instruction.formats.Instruction11x
|
import org.jf.dexlib2.iface.instruction.formats.Instruction11x
|
||||||
import org.jf.dexlib2.iface.instruction.formats.Instruction35c
|
|
||||||
|
|
||||||
|
|
||||||
private val packageMetadata = listOf(
|
private val packageMetadata = listOf(
|
||||||
|
@ -38,7 +37,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-1",
|
"home-ads-method-1",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljco;",
|
"Ljke;",
|
||||||
"k",
|
"k",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -88,7 +87,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-2",
|
"home-ads-method-2",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljlv;",
|
"Ljsi;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -160,7 +159,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-3",
|
"home-ads-method-3",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljkt;",
|
"Ljrh;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -187,10 +186,44 @@ class HomeAdsPatch : Patch(
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
|
||||||
"[B"
|
"[B"
|
||||||
),
|
),
|
||||||
listOf(
|
listOf(
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
Opcode.IPUT_OBJECT,
|
Opcode.IPUT_OBJECT,
|
||||||
|
@ -225,13 +258,61 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.IPUT_OBJECT,
|
Opcode.IPUT_OBJECT,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.CONST,
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST_16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST_16,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST_16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT_RANGE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
MethodSignature(
|
MethodSignature(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-4",
|
"home-ads-method-4",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljkx;",
|
"Ljrk;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -281,7 +362,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-5",
|
"home-ads-method-5",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljla;",
|
"Ljrn;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -334,7 +415,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-6",
|
"home-ads-method-6",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljld;",
|
"Ljrq;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -361,7 +442,6 @@ class HomeAdsPatch : Patch(
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
|
||||||
"[B"
|
"[B"
|
||||||
),
|
),
|
||||||
listOf(
|
listOf(
|
||||||
|
@ -403,7 +483,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-7",
|
"home-ads-method-7",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljle;",
|
"Ljrr;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -462,7 +542,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-8",
|
"home-ads-method-8",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljlh;",
|
"Ljrt;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -489,7 +569,6 @@ class HomeAdsPatch : Patch(
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
|
||||||
"[B"
|
"[B"
|
||||||
),
|
),
|
||||||
listOf(
|
listOf(
|
||||||
|
@ -526,7 +605,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-9",
|
"home-ads-method-9",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljli;",
|
"Ljru;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -554,7 +633,6 @@ class HomeAdsPatch : Patch(
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
|
||||||
"[B"
|
"[B"
|
||||||
),
|
),
|
||||||
listOf(
|
listOf(
|
||||||
|
@ -588,7 +666,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-10",
|
"home-ads-method-10",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljlj;",
|
"Ljrv;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -615,7 +693,6 @@ class HomeAdsPatch : Patch(
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
"[B",
|
||||||
"[B",
|
|
||||||
"[B"
|
"[B"
|
||||||
),
|
),
|
||||||
listOf(
|
listOf(
|
||||||
|
@ -661,7 +738,7 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.NEW_INSTANCE,
|
Opcode.NEW_INSTANCE,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.CONST_4,
|
Opcode.CONST_16,
|
||||||
Opcode.INVOKE_DIRECT,
|
Opcode.INVOKE_DIRECT,
|
||||||
Opcode.NEW_INSTANCE,
|
Opcode.NEW_INSTANCE,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
@ -671,8 +748,8 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-11",
|
"home-ads-method-11",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljiw;",
|
"Ljpm;",
|
||||||
"lG",
|
"lX",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
packageMetadata,
|
packageMetadata,
|
||||||
|
@ -731,7 +808,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-12",
|
"home-ads-method-12",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljjb;",
|
"Ljpr;",
|
||||||
"b",
|
"b",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -799,7 +876,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-13",
|
"home-ads-method-13",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljjv;",
|
"Ljqk;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -809,7 +886,15 @@ class HomeAdsPatch : Patch(
|
||||||
),
|
),
|
||||||
"V",
|
"V",
|
||||||
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
||||||
listOf("L", "L", "L", "L", "Z", "L", "[B"),
|
listOf(
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"[B",
|
||||||
|
"[B"
|
||||||
|
),
|
||||||
listOf(
|
listOf(
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
@ -834,7 +919,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-14",
|
"home-ads-method-14",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljjk;",
|
"Ljqa;",
|
||||||
"b",
|
"b",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -898,7 +983,7 @@ class HomeAdsPatch : Patch(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-15",
|
"home-ads-method-15",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljkl;",
|
"Ljra;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -910,6 +995,39 @@ class HomeAdsPatch : Patch(
|
||||||
AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
|
AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
|
||||||
listOf("L", "I"),
|
listOf("L", "I"),
|
||||||
listOf(
|
listOf(
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
Opcode.IPUT_OBJECT,
|
Opcode.IPUT_OBJECT,
|
||||||
|
@ -1002,7 +1120,7 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.NEW_INSTANCE,
|
Opcode.NEW_INSTANCE,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_4,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.CONST_4,
|
Opcode.CONST_4,
|
||||||
Opcode.INVOKE_DIRECT,
|
Opcode.INVOKE_DIRECT,
|
||||||
|
@ -1013,10 +1131,6 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.NEW_INSTANCE,
|
Opcode.NEW_INSTANCE,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.INVOKE_DIRECT,
|
Opcode.INVOKE_DIRECT,
|
||||||
Opcode.IGET_BOOLEAN,
|
|
||||||
Opcode.MOVE_FROM16,
|
|
||||||
Opcode.CONST_16,
|
|
||||||
Opcode.CONST_16,
|
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_16,
|
||||||
Opcode.INVOKE_DIRECT_RANGE,
|
Opcode.INVOKE_DIRECT_RANGE,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
@ -1026,25 +1140,74 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.IGET_BOOLEAN,
|
|
||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.IGET_OBJECT,
|
Opcode.IGET_OBJECT,
|
||||||
Opcode.CONST_4,
|
Opcode.CONST_4,
|
||||||
|
Opcode.CONST_4,
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_16,
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_16,
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_16,
|
||||||
Opcode.CONST_16,
|
|
||||||
Opcode.MOVE_OBJECT,
|
Opcode.MOVE_OBJECT,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT,
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.INVOKE_DIRECT_RANGE,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.RETURN_VOID
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
MethodSignature(
|
MethodSignature(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-16",
|
"home-ads-method-16",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljkp;",
|
"Ljrd;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -1054,8 +1217,62 @@ class HomeAdsPatch : Patch(
|
||||||
),
|
),
|
||||||
"V",
|
"V",
|
||||||
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
||||||
listOf("L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "Z", "L", "L", "[B", "[B", "[B", "[B", "[B"),
|
listOf(
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"[B",
|
||||||
|
"[B",
|
||||||
|
"[B",
|
||||||
|
"[B"
|
||||||
|
),
|
||||||
listOf(
|
listOf(
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
Opcode.IPUT_OBJECT,
|
Opcode.IPUT_OBJECT,
|
||||||
|
@ -1121,13 +1338,10 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.CONST_4,
|
Opcode.CONST_4,
|
||||||
Opcode.INVOKE_DIRECT,
|
Opcode.INVOKE_DIRECT,
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_4,
|
||||||
Opcode.CONST_16,
|
|
||||||
Opcode.CONST_16,
|
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.INVOKE_DIRECT,
|
||||||
Opcode.INVOKE_DIRECT_RANGE,
|
|
||||||
Opcode.IPUT_OBJECT,
|
Opcode.IPUT_OBJECT,
|
||||||
Opcode.NEW_INSTANCE,
|
Opcode.NEW_INSTANCE,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
@ -1145,7 +1359,7 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.NEW_INSTANCE,
|
Opcode.NEW_INSTANCE,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_4,
|
||||||
Opcode.INVOKE_DIRECT,
|
Opcode.INVOKE_DIRECT,
|
||||||
Opcode.NEW_INSTANCE,
|
Opcode.NEW_INSTANCE,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
@ -1155,8 +1369,8 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.INVOKE_DIRECT,
|
Opcode.INVOKE_DIRECT,
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_16,
|
||||||
Opcode.CONST_16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.CONST_16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
@ -1171,15 +1385,81 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_16,
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_16,
|
||||||
Opcode.CONST_16,
|
Opcode.CONST_16,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
Opcode.MOVE_OBJECT_FROM16,
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT_RANGE,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT_RANGE,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.RETURN_VOID
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
MethodSignature(
|
MethodSignature(
|
||||||
MethodSignatureMetadata(
|
MethodSignatureMetadata(
|
||||||
"home-ads-method-17",
|
"home-ads-method-17",
|
||||||
MethodMetadata(
|
MethodMetadata(
|
||||||
"Ljkq;",
|
"Ljre;",
|
||||||
"<init>",
|
"<init>",
|
||||||
),
|
),
|
||||||
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
PatternScanMethod.Fuzzy(2), // FIXME: Test this threshold and find the best value.
|
||||||
|
@ -1189,7 +1469,26 @@ class HomeAdsPatch : Patch(
|
||||||
),
|
),
|
||||||
"V",
|
"V",
|
||||||
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
AccessFlags.PROTECTED or AccessFlags.CONSTRUCTOR,
|
||||||
listOf("L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "[B", "[B", "[B", "[B", "[B"),
|
listOf(
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"L",
|
||||||
|
"[B",
|
||||||
|
"[B",
|
||||||
|
"[B",
|
||||||
|
"[B"
|
||||||
|
),
|
||||||
listOf(
|
listOf(
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
@ -1197,6 +1496,53 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.CONST,
|
Opcode.CONST,
|
||||||
Opcode.INVOKE_VIRTUAL,
|
Opcode.INVOKE_VIRTUAL,
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
Opcode.MOVE_OBJECT,
|
Opcode.MOVE_OBJECT,
|
||||||
Opcode.CHECK_CAST,
|
Opcode.CHECK_CAST,
|
||||||
Opcode.IPUT_OBJECT,
|
Opcode.IPUT_OBJECT,
|
||||||
|
@ -1211,6 +1557,130 @@ class HomeAdsPatch : Patch(
|
||||||
Opcode.MOVE_RESULT_OBJECT,
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
Opcode.MOVE_OBJECT,
|
Opcode.MOVE_OBJECT,
|
||||||
Opcode.CHECK_CAST,
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.IF_NEZ,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.GOTO,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.CONST_16,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.CONST_16,
|
||||||
|
Opcode.CONST_16,
|
||||||
|
Opcode.CONST_16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT_RANGE,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.CONST_4,
|
||||||
|
Opcode.CONST_16,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT_RANGE,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.CONST,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_RESULT_OBJECT,
|
||||||
|
Opcode.CHECK_CAST,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.CONST_16,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.NEW_INSTANCE,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_DIRECT,
|
||||||
|
Opcode.IPUT_OBJECT,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.MOVE_OBJECT_FROM16,
|
||||||
|
Opcode.IF_EQZ,
|
||||||
|
Opcode.SGET_OBJECT,
|
||||||
|
Opcode.INVOKE_VIRTUAL,
|
||||||
|
Opcode.RETURN_VOID
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -1222,13 +1692,9 @@ class HomeAdsPatch : Patch(
|
||||||
val implementation = result.method.implementation!!
|
val implementation = result.method.implementation!!
|
||||||
val index = result.scanData.startIndex
|
val index = result.scanData.startIndex
|
||||||
val instructions = implementation.instructions
|
val instructions = implementation.instructions
|
||||||
val register =
|
|
||||||
if (i < 2)
|
|
||||||
(instructions[index - 1] as Instruction11x).registerA
|
|
||||||
else
|
|
||||||
(instructions[index] as Instruction35c).registerC
|
|
||||||
|
|
||||||
implementation.injectHideCall(index, register)
|
val register = (instructions[index + (if (i < 2) -1 else 1)] as Instruction11x).registerA
|
||||||
|
implementation.injectHideCall(index + 2, register)
|
||||||
}
|
}
|
||||||
|
|
||||||
return PatchResultSuccess()
|
return PatchResultSuccess()
|
||||||
|
|
Loading…
Reference in a new issue