Jasmin対応のJava逆アセンブラができた。

(追記。2018/3/12公開。http://www.nabeta.tk/jhoja/)
SWAGのJavap2というJavapに似た逆アランブラを改造してJasminというJavaバイトコードのアセンブラにかけられるJava逆アセンブラを作った。
類似の物としてはJasperがあるが、Jasperは最近のJDKでコンパイルしたクラスファイルを逆アセンブルできない。
(試したところJ2SE 1.4○、JDK1.6×、JDK1.8×)
(※二年後の追記。Jasper自体はJRE 1.8でも起動するが、逆アセンブルに対応するclassファイルはJ2SE 1.4などの古いJDKでコンパイルされたものしか対応しない。)
JDK1.6でコンパイルした物でさえ逆アセンブルできないからかなり使いにくい。
過去にはD-Javaという物もあったらしいがなぜか現在は入手不能で、Jasminにかけるには手作業でソースを修正しなければならない場合も多いと聞く。
(D-Java使ったことありません。)
何の役に立つのか分からない人もいるだろうが、逆アセンブラとアセンブラのセットで、逆コンパイラがエラーを出して逆コンパイルされないクラスファイルを作れる。
(このセットで逆コンパイルできるように戻すこともできるのだが。)
今回私が作った物はいちから作ったのではなく改造なので著作権関係の問い合わせをしてみようと思う。
ホームページにはライセンスについて一切書いてない。
元を作った所はカナダにあるUniversity of Waterlooという大学。