XJAR解密
分析过程
在解密xjar加密的jar时发现无法正常解密,研究后发现是不同版本的xjar加密方式不一样。
新版本使用的AES-CBC,老版本是AES(ECB)。
以下为调试过程:
启动调试模式
| java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -javaagent:xjar-agent-hibernate-v1.0.0.jar -Xms2g -Xmx2g -jar saas-out.jar --xjar.password=yoc.xjar
|
使用IDEA远程调试

添加断点
| javax.crypto.Cipher.init javax.crypto.Cipher.getInstance ...
|

查看加密模式

代码对比

解密
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import io.xjar.XKit; import io.xjar.jar.XJar; import io.xjar.key.XKey;
public class Main {
public static void main(String[] args) throws Exception { String input_path = "encrypted.jar"; String output_path = "decrypted.jar"; String password = "123456"; XKey xKey = XKit.key(password); XJar.decrypt(input_path, output_path, xKey);
} }
|
| javac -cp encrypted.jar Main.java
java -cp .;encrypted.jar;commons-compress-1.21.jar Main
|
