lvbuqing 发表于 2022-1-10 15:15

破解AnroidStudio插件之 Android WiFiADB插件,以及有关jar包说明

本帖最后由 lvbuqing 于 2022-1-10 15:25 编辑

介绍的插件是AS插件仓库里面的连接ADB的插件

插件地址:https://plugins.jetbrains.com/plugin/13156-android-wifiadb


机翻内容:
Android Studio 插件,允许您通过 WiFi 连接 Android 设备。用法:- 请确保您的计算机已在 PATH 中配置 adb。然后通过在终端或 cmd 中键入命令“adb”来验证它。更多关于 adb -> Android 调试桥- 从导航栏 > 工具 > WiFiADB 打开 WiFiADB 工具,或使用键盘快捷键 Ctrl+Alt+2。- 通过 USB 将您的 Android 设备连接到计算 > 单击“刷新”按钮 > 选择“连接”。请记住,下次它会记住您的设备。- 如果它没有找到您的设备,您可以通过转到菜单栏工具 > 日志来检查日志。
正版是要收费的:

本帖内容仅针对 Release 2021.3版本有效,其他版本请自测

一般情况下,使用不了的。因为是收费的,需要授权



安装插件后会在C:\Users\AppData\Roaming\Google\AndroidStudio2020.3\plugins\WiFiADB\lib目录下


我们通过jd-gui打开:WiFiADB.jar查看代码发现是这段代码在起作用。

public static boolean isLicensed() {
    LicensingFacade facade = LicensingFacade.getInstance();
    if (facade == null)
      return false;
    String cstamp = facade.getConfirmationStamp("PWIFIADB");
    if (cstamp == null)
      return false;
    if (cstamp.startsWith("key:"))
      return isKeyValid(cstamp.substring("key:".length()));
    if (cstamp.startsWith("stamp:"))
      return isLicenseServerStampValid(cstamp.substring("stamp:".length()));
    if (cstamp.startsWith("eval:"))
      return isEvaluationValid(cstamp.substring("eval:".length()));
    return false;
}只有让他返回true,才算是授权成功





破解说明:1.环境:java

2.压缩包管理工具(本文用到的是360压缩)


3.工具包:javassist仓库地址:https://mvnrepository.com/artifact/org.javassist/javassist


直接上核心代码:    public static void hookMethod(final String classname, final String hookMethodName, ClassPool pool, String body) throws CannotCompileException, NotFoundException {
      CtClass driverClass = pool.get(classname);
      CtMethod[] declaredMethods = driverClass.getDeclaredMethods();
      CtMethod hookMethod = null;
      for (CtMethod declaredMethod : declaredMethods) {
            String name = declaredMethod.getName();
            if (name.equals(hookMethodName)) {
                hookMethod = declaredMethod;
                break;
            }
      }
      if (hookMethod != null) {
            System.out.println(hookMethod.getDeclaringClass());
            hookMethod.setBody(body);
      }
      try {
            driverClass.writeFile("writeFile");
      } catch (CannotCompileException | IOException e) {
            e.printStackTrace();
      }
    }


调用:

hookMethod("com.dengzii.plugin.adb.tools.CheckLicense",
                "isLicensed", pool, "return true;");


会在工程目录生成处理好的字节码



修改后的代码:


进行代码覆盖:


打包插件:需要将这么文件重新压缩一遍





有三层目录,不会的话就把官方的插件下下来自己对比看,压缩目录一定要对齐,不然插件识别不了。

删除之前的授权文件,目录:C:\Users\AppData\Roaming\Google\AndroidStudio2020.3\eval



然后手动安装插件到AS,重启勾选,勾选启用



然后重启AS 即可!选择restart







可以看到插件已经加载进来了。连接手机





填写ip即可








可以看到,已经连接上了


可以完美调试了

提一嘴,不止用不如此哦,任何jar包都能这样搞,混淆加密找到对应的包与类都行



结束!!!!!!!!!!


截图不易,给个双击,么么哒{:301_1003:}


附上修改好了的插件:https://lvbuqing.lanzouj.com/iVfvAylkrif密码:fmub

thatCbin 发表于 2022-1-10 15:36

本帖最后由 thatCbin 于 2022-1-10 17:06 编辑

Android Studio 自己的ADB 就能调试WIFI 设备   在控制台输入adb connect [被调试设备ip] 连接 然后你的设备栏目就有这个设备了
#ADB [package] 为app包名
    安装/强制安装
    adb install [文件路径]
    adb install -r -d [文件路径]

    卸载
    adb uninstall
   
    清理
    adb shell pm clear

    连接
    adb connect

    断开
    adb disconnect

    启动
    adb shell am start +
   
    关闭
    adb shell am force-stop

lvbuqing 发表于 2022-1-10 15:38

thatCbin 发表于 2022-1-10 15:36
Android Studio 自己的ADB 就能调试WIFI 设备   在控制台输入adb connect [被调试设备ip] 连接 然后你的设 ...

那都不是重点,重点是去掉Licensed过程{:1_918:}

sensMe 发表于 2022-1-10 15:23

感谢分享,学到了!!!!{:301_986:}

lvbuqing 发表于 2022-1-10 15:28

sensMe 发表于 2022-1-10 15:23
感谢分享,学到了!!!!

谢谢谢谢

不苦小和尚 发表于 2022-1-10 15:45

谢谢分享经验,随便用不到{:1_937:}

YR0207 发表于 2022-1-10 15:49

感谢分享

无闻无问 发表于 2022-1-10 15:59

只要不000OOO混淆的代码就是贼爽啊

yuan71058 发表于 2022-1-10 16:22

debug_cat 发表于 2022-1-10 16:34

收藏了,之前就想过,怎么修改一个jar,原来是有现成工具的,感谢感谢。只要在jar中找到判断的方法,再通过这工具修改,替换,就能移除或者增加功能了,感谢分享,思路很好。{:1_918:}
页: [1] 2 3 4 5
查看完整版本: 破解AnroidStudio插件之 Android WiFiADB插件,以及有关jar包说明