Go to file
Agaricus 297b9f5a33 Add runtime class inheritance remapping
If -l is specified, will now traverse the runtime class hierarchy in
tryClimb to determine the method/symbol from the parent to remap, in
addition to the classes in the jar.

This can be used to remap plugins that call into external classes.
For example, with a Bukkit plugin:

 java -cp ../jars/craftbukkit-1.4.7-R0.1.jar:target/SpecialSource-1.1-SNAPSHOT.jar net.md_5.specialsource.SpecialSource --shade-relocation net.minecraft.server=net.minecraft.server.v1_4_R1 --shade-relocation org.bouncycastle=net.minecraft.v1_4_R1.org.bouncycastle --srg-in ../jars/1.4.7/cb2obf.csrg  --in ../IncompatiblePlugin/IncompatiblePlugin-01.jar --out /tmp/bp/out.jar

using:
 https://bitbucket.org/agaricusb/incompatibleplugin/downloads/IncompatiblePlugin-01.jar
 6d75d94496

agaricus/plugins/IncompatiblePlugin/SamplePosCommand.java will be remapped:

  worldServer.q(...)

from worldServer.getTileEntity(). World provides getTileEntity and is remapped in cb2obf;
but WorldServer subclasses World and overrides getTileEntiy.. this information is not
available in the plugin itself and would not be remapped alone. By adding the CB jar to
the classpath and enabling runtime inheritance, the call is correctly remapped.
2013-01-23 00:23:38 -08:00
src/main/java/net/md_5/specialsource Add runtime class inheritance remapping 2013-01-23 00:23:38 -08:00
.gitignore Initial commit. 2012-12-08 08:52:58 +11:00
LICENSE Fix license formatting. 2012-12-09 10:15:58 +11:00
pom.xml Option parsing with joptsimple 2013-01-21 20:12:31 -08:00
README.md Initial commit. 2012-12-08 08:52:58 +11:00

Special Source

Automatic generator and renamer of jar obfuscation mappings.