HW竞争越来越激烈的年代,谁能在指定时间内打下更多的点,谁就能在内网中抢下先机。
在HW项目中,在有源码的情况下为了快速冲下一个站,势必需要提升自己看代码的速度,寻找最薄弱的环节。
在做项目的时候发现几个问题,第一个就是拿到目标网站的war包载入idea,发现缺少某些class 第二个就是某些class被分包编译在不同的jar包里面
我们想快速搜索代码中的关键点,就必须得对jar包进行反编译。所以我写了CodeReviewTools
- 通过正则搜索特定class名称
- 通过正则直接反编译拥有特定groupId的jar包到某个目录
CodeReviewTools v1.4 by f1ashine
usage: java -jar CodeReviewTools.jar -m <method>
-d,--dir <arg> target path
-f,--file <arg> target file
-h,--help print help information
-m,--method <arg> [search, unzip, decompiler, clear, all, war]
-n,--name <arg> search class file or group name
-o,--output <arg> output path
-e,--engine <arg> decompile
engine[defalut->fernflow;luyten->luyten;cfr->cfr]
工具release版本使用jdk 11.0.9编译,如需要1.8版本请自行下载源码编译使用
-
获得war包,一键反编译classes
java -jar CodeReviewTools.jar -m war -f webapps.war
会在-f制定的war包目录下生成对应的zip文件
-
想快速寻找哪些jar包存在名为*Controller的jar文件
java -jar CodeReviewTools.jar -m search -n "nc(.)*Controller\$" -d "home/"
-
想快速解压jar包中包含groupId为com.yxxxx的jar并且反编译存储在/tmp/nc
java -jar CodeReviewTools.jar -m all -n "com.yxxx(.)*" -d "home/lib" -o "/tmp/nc"
- 允许指定反编译器 支持fernflower、luyten和cfr
CodeReviewTools 是 404Team 星链计划2.0中的一环,如果对CodeReviewTools 有任何疑问又或是想要找小伙伴交流,可以参考星链计划的加群方式。