|
|
我打算在我的hook软件里面加上ksweb的hook代码在论坛里面找的ksweb修改教程然后我让ai写了一个代码(没学过java代码)就是没法用请教一下各位大佬咋搞
代码:- // ==================== KSWEB ====================
- /**
- * Hook目标:KSWEB
- * 功能:解锁专业版(基于MT教程:l8.l类全方法改true/1)
- *
- * 核心字段:
- * - a:I = 2 (1=Standard, 2=Pro)
- * - d:Z = true (license验证通过标志)
- *
- * 涉及方法:
- * - j(SharedPreferences)Z: license校验,直接true
- * - t()V: 初始化校验流程,阻止执行
- * - u(SharedPreferences)Z: type解密,直接true并设a=2
- * - v()V: 调用w(a,false),阻止执行
- * - m()I: 返回a,强制返回2
- * - o()Z: 试用期检查,直接true
- * - p()Z: 功能可用性,直接true
- * - q()Z: Pro版检查,直接true
- * - r()Z: 授权标志,直接true
- * - s()Z: Standard版检查,直接true
- */
- public static void ksweb(final XC_LoadPackage.LoadPackageParam lpparam) {
- final String TAG_KSWEB = "[KSWEB]";
-
- XposedBridge.log(TAG_KSWEB + " 开始Hook KSWEB");
-
- if (!lpparam.packageName.equals("ru.kslabs.ksweb")) {
- XposedBridge.log(TAG_KSWEB + " 包名不匹配,跳过Hook");
- return;
- }
-
- XposedHelpers.findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() {
- @Override
- protected void afterHookedMethod(MethodHookParam param) throws Throwable {
- try {
- Context context = (Context) param.args[0];
- ClassLoader appClassLoader = context.getClassLoader();
-
- XposedBridge.log(TAG_KSWEB + " 成功获取应用ClassLoader,开始Hook l8.l");
-
- final Class<?> l8lClass = XposedHelpers.findClass("l8.l", appClassLoader);
-
- // ===== 1. j(SharedPreferences)Z -> true =====
- // 原方法:解密校验license字符串,设置d字段
- // 修改:直接返回true,并设置d=true
- XposedHelpers.findAndHookMethod(l8lClass, "j",
- android.content.SharedPreferences.class,
- new XC_MethodReplacement() {
- @Override
- protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
- try {
- XposedHelpers.setBooleanField(param.thisObject, "d", true);
- } catch (Exception e) {
- XposedBridge.log(TAG_KSWEB + " j()设置d字段失败: " + e.getMessage());
- }
- XposedBridge.log(TAG_KSWEB + " j() Hook成功,返回true");
- return true;
- }
- });
-
- // ===== 2. t()V -> 空实现 =====
- // 原方法:调用j()和u()进行校验,失败则重置
- // 修改:阻止原逻辑执行(避免触发重置或失败流程)
- XposedHelpers.findAndHookMethod(l8lClass, "t", new XC_MethodReplacement() {
- @Override
- protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
- // 空实现,阻止原校验流程
- XposedBridge.log(TAG_KSWEB + " t() Hook成功,阻止原校验流程");
- return null;
- }
- });
-
- // ===== 3. u(SharedPreferences)Z -> true =====
- // 原方法:解密type字段,设置a字段
- // 修改:直接返回true,并设置a=2(Pro版)
- XposedHelpers.findAndHookMethod(l8lClass, "u",
- android.content.SharedPreferences.class,
- new XC_MethodReplacement() {
- @Override
- protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
- try {
- XposedHelpers.setIntField(param.thisObject, "a", 2);
- } catch (Exception e) {
- XposedBridge.log(TAG_KSWEB + " u()设置a字段失败: " + e.getMessage());
- }
- XposedBridge.log(TAG_KSWEB + " u() Hook成功,返回true");
- return true;
- }
- });
-
- // ===== 4. v()V -> 空实现 =====
- // 原方法:调用w(a, false)写入配置
- // 修改:阻止执行,避免覆盖我们的修改
- XposedHelpers.findAndHookMethod(l8lClass, "v", new XC_MethodReplacement() {
- @Override
- protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
- XposedBridge.log(TAG_KSWEB + " v() Hook成功,阻止原写入流程");
- return null;
- }
- });
-
- // ===== 5. m()I -> 2 =====
- // 原方法:返回a字段(1=Standard, 2=Pro)
- // 修改:强制返回2(Pro版)
- XposedHelpers.findAndHookMethod(l8lClass, "m",
- XC_MethodReplacement.returnConstant(2));
-
- // ===== 6. o()Z -> true =====
- // 原方法:检查q()或试用期状态
- // 修改:直接true(跳过试用期检查)
- XposedHelpers.findAndHookMethod(l8lClass, "o",
- XC_MethodReplacement.returnConstant(true));
-
- // ===== 7. p()Z -> true =====
- // 原方法:检查s()或q()判断是否可用
- // 修改:直接true
- XposedHelpers.findAndHookMethod(l8lClass, "p",
- XC_MethodReplacement.returnConstant(true));
-
- // ===== 8. q()Z -> true =====
- // 原方法:检查r()且m()==2(Pro版判断)
- // 修改:直接true
- XposedHelpers.findAndHookMethod(l8lClass, "q",
- XC_MethodReplacement.returnConstant(true));
-
- // ===== 9. r()Z -> true =====
- // 原方法:返回d字段(授权标志)
- // 修改:直接true,并设置d=true
- XposedHelpers.findAndHookMethod(l8lClass, "r", new XC_MethodReplacement() {
- @Override
- protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
- try {
- XposedHelpers.setBooleanField(param.thisObject, "d", true);
- } catch (Exception e) {
- XposedBridge.log(TAG_KSWEB + " r()设置d字段失败: " + e.getMessage());
- }
- return true;
- }
- });
-
- // ===== 10. s()Z -> true =====
- // 原方法:检查r()且m()==1(Standard版判断)
- // 修改:直接true(虽然m()已返回2,但直接true更保险)
- XposedHelpers.findAndHookMethod(l8lClass, "s",
- XC_MethodReplacement.returnConstant(true));
-
- // ===== 11. 构造函数Hook:初始化时直接设置字段 =====
- // <init>(Context)中原本设a=1, d=false
- // 我们在afterHookedMethod中修正为a=2, d=true
- XposedHelpers.findAndHookConstructor(l8lClass,
- android.content.Context.class, new XC_MethodHook() {
- @Override
- protected void afterHookedMethod(MethodHookParam param) throws Throwable {
- try {
- XposedHelpers.setIntField(param.thisObject, "a", 2);
- XposedHelpers.setBooleanField(param.thisObject, "d", true);
- XposedBridge.log(TAG_KSWEB + " 构造函数Hook:已设置a=2, d=true");
- } catch (Exception e) {
- XposedBridge.log(TAG_KSWEB + " 构造函数Hook失败: " + e.getMessage());
- }
- }
- });
-
- // ===== 12. w(IZ)V -> 阻止写入 =====
- // 原方法:写入SharedPreferences,可能覆盖我们的修改
- // 修改:阻止执行(但允许t()/v()调用时已经阻止了)
- XposedHelpers.findAndHookMethod(l8lClass, "w",
- int.class, boolean.class, new XC_MethodReplacement() {
- @Override
- protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
- // 阻止写入,但保留字段设置
- int type = (Integer) param.args[0];
- try {
- XposedHelpers.setIntField(param.thisObject, "a", type);
- } catch (Exception e) {
- XposedBridge.log(TAG_KSWEB + " w()设置a字段失败: " + e.getMessage());
- }
- XposedBridge.log(TAG_KSWEB + " w() Hook成功,阻止写入SharedPreferences");
- return null;
- }
- });
-
- // ===== 13. x()V -> 阻止重置 =====
- // 原方法:重置license为默认值(清空配置)
- // 修改:阻止执行,避免被重置
- XposedHelpers.findAndHookMethod(l8lClass, "x", new XC_MethodReplacement() {
- @Override
- protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
- XposedBridge.log(TAG_KSWEB + " x() Hook成功,阻止license重置");
- return null;
- }
- });
-
- XposedBridge.log(TAG_KSWEB + " KSWEB l8.l Hook设置完成");
-
- } catch (Exception e) {
- XposedBridge.log(TAG_KSWEB + " Hook过程中发生错误: " + e.getMessage());
- }
- }
- });
- }
复制代码 |
|