将任意代码注入Java Jar



有没有办法将任意代码注入JAR文件?例如,给定一个JAR文件,该程序将在X类方法中注入INIT函数,该功能将检查某些条件并在未满足条件时退出。可以做到吗?

如果jar被签名 - 否**。如果罐子未签名 - 是的,这当然是可能的。从更改类的方法来添加或替换整个课程。

JAR文件实际上是一个包含类文件的zip文件 - 由编译字节代码,字符串和其他文字以及其他必要信息组成的源程序的二进制表示。这些类文件的格式由Java VM规范定义。由于可以以某种方式读取和处理任何文件,因此可以更改类文件,然后写回。

确定必须更改/添加/删除的内容 - 当然,这是一个想要改变程序行为并具有足够技能的人的任务代码。有一些Java分解器可用,它们会产生Java源,这些源通常很难理解,但仍然有可能。


**如果篡改jar的事实并不重要,则可以删除签名并仍然进行修改

最新更新