From 870840260577aaa26acb02a1e653047bb3dfd442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=83=B3=E8=A6=81=E6=88=90=E4=B8=BARapStar=E5=90=97?= =?UTF-8?q?=EF=BC=9F?= Date: Mon, 21 Sep 2020 14:47:40 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E6=96=B0?= =?UTF-8?q?=E7=9A=84models=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../headwolf/entry/RealEntry.java | 2 ++ .../headwolf/handlers/KuaishouHandler.java | 3 +- .../headwolf/models/Kuaishou_v1.java | 30 +++++++++++++++++++ .../headwolf/models/Kuaishou_v2.java | 30 +++++++++++++++++++ .../utils/ClassesReaderAssistant.java | 29 ++++++++++++++++++ 5 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/lateautumn4lin/headwolf/models/Kuaishou_v1.java create mode 100644 app/src/main/java/com/lateautumn4lin/headwolf/models/Kuaishou_v2.java diff --git a/app/src/main/java/com/lateautumn4lin/headwolf/entry/RealEntry.java b/app/src/main/java/com/lateautumn4lin/headwolf/entry/RealEntry.java index a89feda..16312e2 100644 --- a/app/src/main/java/com/lateautumn4lin/headwolf/entry/RealEntry.java +++ b/app/src/main/java/com/lateautumn4lin/headwolf/entry/RealEntry.java @@ -47,6 +47,8 @@ public class RealEntry implements IXposedHookLoadPackage { HashMap associate_handlers = ClassesReaderAssistant.reader(context, loadPackageParam.packageName); // step2:由注册类进行handler注册 if (Register.GroupRegister(loadPackageParam, associate_handlers)) { +// 初始化对应handler的model + ClassesReaderAssistant.init(context, loadPackageParam.packageName, loadPackageParam.classLoader); Logger.logi(String.format("Real Hook Logic About:%s Success", loadPackageParam.packageName)); RegisterState = true; } else { diff --git a/app/src/main/java/com/lateautumn4lin/headwolf/handlers/KuaishouHandler.java b/app/src/main/java/com/lateautumn4lin/headwolf/handlers/KuaishouHandler.java index 8a64408..c5d495c 100644 --- a/app/src/main/java/com/lateautumn4lin/headwolf/handlers/KuaishouHandler.java +++ b/app/src/main/java/com/lateautumn4lin/headwolf/handlers/KuaishouHandler.java @@ -21,6 +21,7 @@ import java.util.Map; * The type Kuaishou handler. */ public class KuaishouHandler extends BaseHandler implements SekiroRequestHandler { + /** * Gets belong. * @@ -45,7 +46,7 @@ public class KuaishouHandler extends BaseHandler implements SekiroRequestHandler final Gson gson = new Gson(); final Map object = new HashMap(); String name = sekiroRequest.getString("name"); - object.put("name", name + " again kuaishou no.3"); + object.put("name", name + " again Kuaishou no.3"); // 测试三种请求返回方式 测试方案 1000/s 总请求 50*1000 // P1:阻塞返回 // sekiroResponse.send(gson.toJson(object)); diff --git a/app/src/main/java/com/lateautumn4lin/headwolf/models/Kuaishou_v1.java b/app/src/main/java/com/lateautumn4lin/headwolf/models/Kuaishou_v1.java new file mode 100644 index 0000000..f1424de --- /dev/null +++ b/app/src/main/java/com/lateautumn4lin/headwolf/models/Kuaishou_v1.java @@ -0,0 +1,30 @@ +package com.lateautumn4lin.headwolf.models; +/* + * Kuaishou + * + * @author lateautumn4lin + * @github https://github.com/lateautumn4lin + * @date 2020/9/21 14:07 + */ + +import com.lateautumn4lin.headwolf.commons.Logger; + +/** + * The type Kuaishou. + */ +public class Kuaishou_v1 { + /** + * The constant classLoader. + */ + public static ClassLoader classLoader = null; + + /** + * Init. + * + * @param classloader the classloader + */ + public static void init(ClassLoader classloader) { + classLoader = classloader; + Logger.logi(classloader.toString()); + } +} diff --git a/app/src/main/java/com/lateautumn4lin/headwolf/models/Kuaishou_v2.java b/app/src/main/java/com/lateautumn4lin/headwolf/models/Kuaishou_v2.java new file mode 100644 index 0000000..8c3ccdd --- /dev/null +++ b/app/src/main/java/com/lateautumn4lin/headwolf/models/Kuaishou_v2.java @@ -0,0 +1,30 @@ +package com.lateautumn4lin.headwolf.models; +/* + * Kuaishou + * + * @author lateautumn4lin + * @github https://github.com/lateautumn4lin + * @date 2020/9/21 14:07 + */ + +import com.lateautumn4lin.headwolf.commons.Logger; + +/** + * The type Kuaishou v 2. + */ +public class Kuaishou_v2 { + /** + * The constant classLoader. + */ + public static ClassLoader classLoader = null; + + /** + * Init. + * + * @param classloader the classloader + */ + public static void init(ClassLoader classloader) { + classLoader = classloader; + Logger.logi(classloader.toString()); + } +} diff --git a/app/src/main/java/com/lateautumn4lin/headwolf/utils/ClassesReaderAssistant.java b/app/src/main/java/com/lateautumn4lin/headwolf/utils/ClassesReaderAssistant.java index b3c53f1..1d2f441 100644 --- a/app/src/main/java/com/lateautumn4lin/headwolf/utils/ClassesReaderAssistant.java +++ b/app/src/main/java/com/lateautumn4lin/headwolf/utils/ClassesReaderAssistant.java @@ -126,6 +126,35 @@ public final class ClassesReaderAssistant { } + /** + * Init. + * + * @param context the context + * @param associateName the associate name + * @param classLoader the class loader + */ + public static void init(Context context, String associateName, ClassLoader classLoader) { + String packageName = String.format("%s.models", Config.GetPackageName()); + final String group_name = Config.GetGroup(associateName); + final String feature_name = group_name.split("_")[1]; + try { + Context moudleContext = context.createPackageContext(Config.GetPackageName(), Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); + List> associate_classes = reader(packageName, moudleContext.getPackageCodePath()); + for (Class cls : associate_classes) + try { + Logger.logi(String.format("%s,get", cls.getName().toLowerCase())); + if (cls.getName().toLowerCase().contains(feature_name)) { + Method init = cls.getDeclaredMethod("init", ClassLoader.class); + init.invoke(null, classLoader); + } + } catch (Exception e) { + Logger.loge(e.toString()); + } + } catch (Exception e) { + Logger.loge(e.toString()); + } + } + /** * Reader list. *