xjar是Spring Boot JAR 安全加密运行工具, 同时支持的原生JAR.
攻
xjar用go写了个启动器,把密码放在了go的程序中,可以通过gdb把密码给取出来
源码:
gdb xjar
# 进入gdb后
(gdb) set args {java_home} -jar {xxx.jar}
(gdb) start
(gdb) p xKey
$9 = {algorithm = {array = 0x559650 <main.statictmp_6> "AES/CBC/PKCS5Padding", len = 20, cap = 20}, keysize = {
array = 0x559004 <main.statictmp_7> "128", len = 3, cap = 3}, ivsize = {array = 0x559008 <main.statictmp_8> "128",
len = 3, cap = 3}, password = {array = 0x5594a0 <main.statictmp_9> "这个就是密码", len = 14, cap = 14}}
获取密码之后就可以通过xjar提供的工具类把完整的jar解密出来了
好像全网没有发过这样的思路,在前公司实践过一波
防
编译go的xjar时做代码混淆等等,增加破解成本。