Skip to content

有时候会遇到某些jar包中某些.class内容可能被加密,项目中提供了一个解密jar中所有被加密.class的大体结构

Notifications You must be signed in to change notification settings

longofo/decrypt-jar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

起因

在某OA中遇到了某些class文件被加密,但是在loadClass时会解密并定义class,调用的时候使用反射去调用,所以没办法调试。不过在调试时看到了这个OA解密方式,所以写了这个测试demo,并且解密后的jar能用于调试。

思路

思路很简单,就是新建一个jar,遍历原jar包中的entry:

  • 如果entry是目录,直接不做更改放到新jar
  • 如果entry是.class且class内容的十六进制前四字节不为"CAFEBABE",那么就是被加密过的数据,使用对应的解密方式解密.class内容,然后put到新jar
  • 如果entry是.class且class内容的十六进制前四字节为"CAFEBABE",直接put到新jar
  • 其他内容直接put到新jar

具体操作可以看代码,很简单。如果知道怎么解密class,直接替换加密部分,其他地方套用就行了。项目中代码某些依赖没有加进去,代码无法直接运行,只能当个模板用。

About

有时候会遇到某些jar包中某些.class内容可能被加密,项目中提供了一个解密jar中所有被加密.class的大体结构

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages