IDEA mybatis plugin 辅助工具 ideaagent(转)

IntelliJ IDEA 是本人常用的IDE之一,其中有两款插件特别好用,Mybatis pluginIedis,由于不是免费的,所以制作了本工具来绕过限制。

ideaagent 下载 https://github.com/mrshawnho/ideaagent

插件分析

Mybatis plugin v3.42

3.42 使用 Kotlin 开发,代码做了混淆,更变态的是将核心代码藏在了 mybatis-generator-core-1.3.5.jar
包中的 DeleteByPrimaryKeyElementGenerator.class 文件中以供插件运行时动态加载,对修改插件字节码而达到目的增加了一定难度。

继续分析后发现插件是通过服务端请求认证的,那么我们修改为本地认证就好啦,最初以为改改hosts文件伪造请求就可以了,但没那么简单,内容通过了RSA加密与验签,没有私钥是徒劳的,那么暴力点把公钥改了,皆大欢喜!

Iedis v2.43

2.43 只是做了代码混淆,同上的思路也能达到目的。

技术实现

  1. 通过 java instrumentation 技术创建 IDEA 的代理程序
  2. 使用 javassist 动态修改代码
  3. 使用 vert.x 创建本地 http 认证服务器

使用方法

  1. 解压到 ${dir}

  2. 添加到 IDEA VM options 末尾 (IDEA Help > Edit Custom VM Options…)

    1
    -javaagent:${dir}/ideaagent-1.0-jar-with-dependencies.jar
  3. 重启 IDEA

测试环境

  1. Windows 10 && MacOS Sierra
  2. JDK 1.8
  3. IDEA 2017 3.1

切勿用于非法用途,转载自http://shawnho.me/2017/12/20/ideaagent/, 感谢原作者。

Enjoy it ? Donate me !
欣赏此文?求鼓励,求支持!