immibis / bearded-octo-nemesis Goto Github PK
View Code? Open in Web Editor NEWNow 99.9% fat free!
Now 99.9% fat free!
No Download link
I'm having issues in specific situations when trying to use reob to reobfuscate a mod. Specifically here's some examples I've pulled out with JD-GUI from the reob'ed jar. These two examples are from two different classes.
public <T extends Item> T getItem(String name)
{
return (up)this.registeredMinecraftObjects.get(name);
}
// FloodFillState is a mod class
private List<FloodFillState> getBlocksToBreak(World world, int x, int y, int z, Block wood, int woodMeta, Block leaves, int leavesMeta) {
// ... <snip>
}
These seem to be representative of all the issues we've run into.
Happens every time. On a macbook pro:
Exception in thread "main" java.lang.UnsupportedClassVersionError: immibis/bon/gui/GuiMain : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
szaki-C02G80WTDRJK:~ localmacaccount$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06-451-10M4406)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01-451, mixed mode)
szaki-C02G80WTDRJK:~ localmacaccount$
I want to use it but I can't download it
I tried to deobfuscate computercraft 1.42pr1 with the latest version (joined mode) and found a strange error:
It seems that the class GuiTerminal, which inherits from GuiButton, has two public int fields width and height. These fields are hiding the protected fields width and height of the GuiButton class. The obfuscator renamed the fields in GuiButton to a and b, and the fields in GuiTermial were renamed to. The deobfuscator changed all references to these fields back to the real names, but the fields themselves hadn't been renamed, so every instruction trying to access GuiTermial.width now actually accesses GuiButton.width. As that field is not public, it produces a runtime "Field not visible" error.
I have tried to decompile a mod file to test that I can use your program to get back into my mod, and the mod was on my desktop. When I used your auto-download Forge option, Forge version being 1.7.10 10.13.4.1614, and it would not download. Could you please help, I am very confused, and lost all of my source code for the mod.
Using the GUI, when "Output file" is blank, I get this:
An error has occurred - give immibis this stack trace (which has been copied to the clipboard)
java.io.FileNotFoundException: (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
at java.io.FileOutputStream.<init>(FileOutputStream.java:165)
at immibis.bon.io.JarWriter.write(JarWriter.java:23)
at immibis.bon.gui.GuiMain$1.run(GuiMain.java:191)
Perhaps it should validate the output file path before deobfuscating, and display a helpful error message if the path is missing or invalid?
I'm not going to pretend to know how easy or hard it may be, but it would be really cool if deobfuscated jars/zips could be reobfuscated using a different MCP folder. Would make updates for small mods really easy assuming the mappings haven't changed names.
I just keep bothering you!
I noticed a method not get deobfuscated from a 1.2.5 mod a few days ago, but I just created a temporary workaround in my code to call the right one. But now it's happened with another mod, and the problem is more pronounced. A wild guess is an inheritance issue based on my own experience with remapping, but who knows.
If you want examples, get buildcraft-client-B-transport-2.2.14.zip, look in BuildCraftTransport.initialize(), for:
pipeWaterproof = new ItemBuildCraftTexture(DefaultProps.PIPE_WATERPROOF_ID).e(33);
e is supposed to be setIconIndex.
The more pronounced one was RedPowerLogic-2.0pr5b2.zip, in eloraam.logic.BlockLogic. The constructor has three unmapped methods, and then down in the class itself is an actual method without a deobfuscated name.
I pulled these from Tekkit Classic, btw.
Was wondering if I could take a crack at fixing up the GUI and making it prettier?
First: BON is great for finding/fixing compatibility bugs and testing API interactions, thank you fro creating it.
Using the newest BON (as of April 22, 2013, 8:04:25 PM)
Now that SRG names are supported I'm only having issues with signed jars.
After running forestry-A-2.1.2.28.jar through BON I'm still left with a signing issue.
With MetaINF in the jar, the game crashes
[ForgeModLoader] Problem loading class java.lang.SecurityException: SHA1 digest error for forestry/Forestry.class
[ForgeModLoader] Caught exception from Forestry java.lang.ClassNotFoundException: forestry.Forestry
Without MetaINF in the jar, the game closes
[INFO] [Forestry] Fingerprint of the mod jar is invalid. The jar file was tampered with.
[SEVERE] [Forestry] forestry.Forestry failed validation. Halting runtime for security reasons. Please replace your mods with untampered versions from the official download sites.
That is:
I'd like to have the 'loaders stop working after the player owning them has remained logged off for, say, a week. This is to simplify garbage-collection of chunkloaders owned by players who are no longer playing.
Upon an attempt to decompile a mod with Minecraft 1.6.2 and MCP 8.04, along with Minecraft Forge 9.10.0.789, I get this stack trace from Bearded Octo Nemesis:
An error has occurred - give immibis this stack trace (which has been copied to the clipboard)
java.io.FileNotFoundException: F:\development\forge\mcp\conf\client.exc (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at java.io.FileReader.(Unknown Source)
at immibis.bon.mcp.ExcFile.(ExcFile.java:24)
at immibis.bon.mcp.MappingLoader_MCP.loadEXCFile(MappingLoader_MCP.java:101)
at immibis.bon.mcp.MappingLoader_MCP.(MappingLoader_MCP.java:93)
at immibis.bon.io.MappingFactory.registerMCPInstance(MappingFactory.java:32)
at immibis.bon.gui.GuiMain$1.run(GuiMain.java:157)
An error has occurred - give immibis this stack trace (which has been copied to the clipboard)
java.lang.NullPointerException
at immibis.bon.mcp.MappingLoader_MCP.loadCSVMapping(MappingLoader_MCP.java:182)
at immibis.bon.mcp.MappingLoader_MCP.(MappingLoader_MCP.java:97)
at immibis.bon.io.MappingFactory.registerMCPInstance(MappingFactory.java:32)
at immibis.bon.gui.GuiMain$1.run(GuiMain.java:157)
I'm on Mac OS X 10.8.3, java 1.7.0_06
Check if static fields and methods are handled properly.
In particular it should NOT check for mappings in superclasses.
Also check private fields and methods.
The command I try to use and the error I get.
C:\Users\XXXX\Minecraft 1.4.6 DeObfuscate Folder> java -cp BON.jar -mcp . -from OBF -to M
CP -side UNIVERSAL -in Defence-Non.zip -out Defence-DeOb.zip -ref fallencore.zip -refn MCP
:bin/minecraft
Unrecognized option: -mcp
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Hi immibis, could you help me ?I wan't to decompile an 1.6.4 forge mod (with forge-1.6.4-9.11.1.964) but it's doesn't work
An error has occurred - give immibis this stack trace (which has been copied to the clipboard)
java.lang.Exception: conf/packaged.srg not found in Forge jar file
at immibis.bon.gui.NewGUI$11.run(NewGUI.java:676)
Thanks
Compiled the latest source and found that "Joined" is unavailable from the dropdown box (only Client and Server, as before), making deobfuscation of 1.3.x mods impossible from the GUI.
Immibis,
There is an issue with your Core program that is causing an issue with the latest forge versions that is causing connection issues for the client to connect with the server.
See Issue here: http://www.minecraftforge.net/forum/index.php/topic,30947.0.html
hey,
how you can see on the screenshot you can go over the limit of chunks, I'm not sure if it loads this chunks or just 9.
Most is already said in title. basicly i want a way to get srg-mappings for mods where authors refused to use srg mappings. Should be possible to implement
I've been working with loading Minecraft 1.2.5 mods after deobfuscating them with BON, and after having some class loading issues due to the package of some of the mod's classes, I eventually realized that it was the JARs themselves at fault. BON had placed the unpackaged classes in the JARs into "net.minecraft.src".
This isn't a problem for newer mods, where everyone defaults to using a package, and Forge scans the JAR for them. But for these old ones that use the ModLoader technique it's obviously an issue. I realize that it's adding a default package for handling Minecraft's obfuscated base classes, and I also realize that BON can probably be used to remap the Minecraft JAR itself, so not repackaging classes in the input JAR by default isn't necessary the answer.
So unless there's something I'm overlooking, I guess a viable solution would just be to add a config option on whether or not to repackage classes found in the input JAR, and have it still do so by default to retain compatibility.
As the title states, Bearded Octo Nemesis doesn't support deobfuscating generics.
EDIT: Whoops, didn't see the TODO you made in the Remapper class.
After specifying a valid source and destination for the target JAR, it is impossible to use auto-download to deobfuscate the JAR.
I selected Forge 11.15.1.1722. Once that version of Forge was done downloading, a dialog popped up saying "Not a directory: "
I had filled up all required textboxes, yet got this bug.
Hello you may see that you can't install the jar file
you can install the file via:https://web.archive.org/web/20170924093158/http://dl.dropbox.com/u/2944265/mods/BON.jar
I trying deobfuscate OptiFine for mc 1.7.3 beta, but get an error.
An error has occurred - give immibis this stack trace (which has been copied to the clipboard)
immibis.bon.ClassFormatException: Unable to load class
at immibis.bon.io.IOUtils.readClass(IOUtils.java:30)
at immibis.bon.io.DirLoader.loadFromDir(DirLoader.java:43)
at immibis.bon.io.DirLoader.loadFromDir(DirLoader.java:38)
at immibis.bon.io.DirLoader.loadClassesFromDirectory(DirLoader.java:25)
at immibis.bon.io.ClassCollectionFactory.loadClassCollection(ClassCollectionFactory.java:15)
at immibis.bon.gui.NewGUI$13.run(NewGUI.java:962)
Screenshot: https://www.dropbox.com/s/sz5o38mpfk4ovgd/17_06_2015-1434476793.png?dl=0
I don't know where can download the userdev.jar file
Meta-inf might contain Manifest with "coremod" info. When nemesis deletes it, coremod won't be activated and one has to re-add Meta-inf from obfuscated mod. So it mustn't.
For some unknown reason BON doesn't wan't to obfuscate TileEntity xCoord, yCoord, zCoord fields.
ComputerCraft doesn't like this and throws an NPE.
File "forgeSrc-1.7.10-10.13.2.1307-1.7.10.jar" is not in ".gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.2.1307-1.7.10" after simply installing and building forge 1.7.0-10.13.2.1307
and the File is originally named forge-1.7.10-10.13.2.1307-1.7.10-src.zip and I had to download it manually, rename it and place it in the folder above
Auto download for 1.7.10-10.13.2.1307 tries to download from
"http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.7.10-10.13.2.1307/forge-1.7.10-13.2.1307-userdev.jar"
the correct URL would be "http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.7.10-10.13.2.1307-1.7.10/forge-1.7.10-10.13.2.1307-1.7.10-userdev.jar"
I have the following crash on startup:
According to @skyboy, if a class has a field with the same name (and maybe descriptor?) as a superclass, it will be remapped incorrectly. EG:
class A {int a;}
class B extends A {int a;}
where A/a:I has a mapping and B/a:I doesn't, it shouldn't use the A/a mapping for B/a, but does it?
.An error has occurred - give immibis this stack trace (which has been copied to the clipboard) java.io.FileNotFoundException: E:\minemod\conf\client.srg (═х єфрхЄё эрщЄш єърч рээ√щ Їрщы) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(Unknown Source) at java.util.Scanner.(Unknown Source) at immibis.beardedoctonemesis.mcp.SrgFile.(SrgFile.java:18) at immibis.beardedoctonemesis.mcp.McpMapping.(McpMapping.java:19) at immibis.beardedoctonemesis.gui.GuiMain$1.run(GuiMain.java:70)
when try to deobf
minecraftforge have changed to a graddle generated workspace, which is incompatible with bon at this time.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.