![]() |
|
[Java] Anyone recognize this obfuscation? - Printable Version +- Hack Forums (https://hackforums.net) +-- Forum: Tech (https://hackforums.net/forumdisplay.php?fid=444) +--- Forum: Coding (https://hackforums.net/forumdisplay.php?fid=151) +---- Forum: Software Development (https://hackforums.net/forumdisplay.php?fid=118) +---- Thread: [Java] Anyone recognize this obfuscation? (/showthread.php?tid=5846699) |
Anyone recognize this obfuscation? - sneezing panda - Jun 9, 2018 Anyone here recognize this type of obfuscation? Code public class 11 extends 5RE: Anyone recognize this obfuscation? - GenericSkid - Jun 10, 2018 Need more for confirmation, but maybe Stringer. Edit: See post below for analysis RE: Anyone recognize this obfuscation? - sneezing panda - Jun 10, 2018 I'm mainly interested in the parts that look like this. Code final String 1i11II1I1I1I11 = 1I11II1I1I1I11((CharSequence)1i11II1I1I11II, (CharSequence)1i11II1I1I11I1);There are parts like that all over the source code. I've seen a reference to a "FumeObfuscator" but I see nothing online about it.. RE: Anyone recognize this obfuscation? - GoodVibes - Jun 10, 2018 (Jun 10, 2018 10:58 AM)sneezing panda Wrote: I'm mainly interested in the parts that look like this. I've seen private obfuscator do this, but this is a simple method I'm sure any of the better obfuscators employ by now. Can you say what software you're looking at? edit: was talking about the jump parts, that's just the string obfuscating part RE: Anyone recognize this obfuscation? - sneezing panda - Jun 10, 2018 (Jun 10, 2018 01:58 PM)GoodVibes Wrote: I've seen private obfuscator do this, but this is a simple method I'm sure any of the better obfuscators employ by now. Can you say what software you're looking at? Some minecraft client. The file I'm looking at is "LiquidBounce1.12.2.jar" I just wanna see how they do stuff in it. RE: Anyone recognize this obfuscation? - GoodVibes - Jun 10, 2018 (Jun 10, 2018 05:18 PM)sneezing panda Wrote: Some minecraft client. The file I'm looking at is "LiquidBounce1.12.2.jar" I just wanna see how they do stuff in it. What you looking to do bro, I (and genericskid, he's prolly better connected than I am if you looking for exploits it has) can probably help you out with it RE: Anyone recognize this obfuscation? - GenericSkid - Jun 10, 2018 (Jun 10, 2018 05:18 PM)sneezing panda Wrote: Some minecraft client. The file I'm looking at is "LiquidBounce1.12.2.jar" I just wanna see how they do stuff in it. Link for jar: https://my.mixtape.moe/epjvbu.jar The javap output of any file in the jar shows this: Code public class byCCBlueX.AA extends byCCBlueX.wFSo GoodVibes is right on the part of it being a private obfuscator. Lets take a look at another sample: PHP Code PHP Code This actually is pretty weak obfuscation if you break it down. Lets take a look at the bytecode of the method above. PHP Code Looks kinda complicated, but I'm going to format this a bit and add some more notes. It should make a lot more sense once this is done. The only reason why decompilers trip up on this code is the first part, range 0-14, so lets look at that first. PHP Code As you can see in the comments, this just jumps from 0->4 then 4->14. So the method really begins at offset 14. The decompiler shows this code because it does not check the bytecode for redundency like this. This is a technique called opaque predicates. The rest of the code is stupid simple. PHP Code This is your standard constructor where fields are instantiated. The indented sections are used to visualize the stack size. I've sectioned the code into where line breaks in the source code would appear. For recommendations on handling this, I would personally write a small ASM program to snip off the bullshit at the beginning of methods (It seems to be applied to all of them, and the junk only shows up at the beginning, which is hilariously weak and easy to remove via automation) and then run the cleaned output through proguard for simpler (Non-unicode) names. If you wanted to remap some cleartext names, I would suggest looking at the mixins package. It contains proxy/wrapper classes for core Minecraft classes. The annotations and mixin framework will redirect calls to these cleartext names to the obfuscated methods in the classes protected by the obfuscation. If you know what the mixins are doing, you can get a sense of what the obfuscated code calls they make in the methods are doing. Also I don't see any string obfuscation in here. Most of the shit is just junk code and basic class and member renaming. RE: Anyone recognize this obfuscation? - sneezing panda - Jun 10, 2018 Well that's pretty damn neat.. Unfortunately I'm an idiot when it comes to coding.. I can read a lot of it pretty well, but I can't make it do shit.. Thanks for the fantastic info though. RE: Anyone recognize this obfuscation? - GenericSkid - Jun 10, 2018 (Jun 10, 2018 09:24 PM)sneezing panda Wrote: Well that's pretty damn neat.. Unfortunately I'm an idiot when it comes to coding.. I can read a lot of it pretty well, but I can't make it do shit.. Thanks for the fantastic info though. Check:
The code removal may be supported by DeadCodeRemover. RE: Anyone recognize this obfuscation? - sneezing panda - Jun 10, 2018 Yea, I followed through with what deobfuscator-gui said last night and I get something like this. I just clicked on a random .class file btw. Code package byCCBlueX;Also get this weird stuff. Quite a few .class files are like that. Name wise anyway.
RE: Anyone recognize this obfuscation? - GenericSkid - Jun 10, 2018 (Jun 10, 2018 10:18 PM)sneezing panda Wrote: Yea, I followed through with what deobfuscator-gui said last night and I get something like this. I just clicked on a random .class file btw.; Hmm... Can you post the modified jar? Also maybe try another tool like: https://github.com/Col-E/Recaf Edit: Dead code remover from deobfuscator does not work... RE: Anyone recognize this obfuscation? - sneezing panda - Jun 10, 2018 (Jun 10, 2018 10:31 PM)GenericSkid Wrote: Hmm... Can you post the modified jar? Also maybe try another tool like: Yea, here's the file I ran with jar deobfuscator. https://mega.nz/#!8MsmAJLL!J3m7rJ06-IK0D8dTgHnxxowtfqjvxJUWy2UQmIX24DY And Recaf fails to load the modified file..
RE: Anyone recognize this obfuscation? - GenericSkid - Jun 11, 2018 (Jun 10, 2018 11:31 PM)sneezing panda Wrote: Yea, here's the file I ran with jar deobfuscator. https://mega.nz/#!8MsmAJLL!J3m7rJ06-IK0D8dTgHnxxowtfqjvxJUWy2UQmIX24DY Make an issue for recaf, the dude seems to respond to bug reports stupidly fast. Looks like its a name parsing issue. Probably cuz the unicode names. Also, that build looks old. RE: Anyone recognize this obfuscation? - sneezing panda - Jun 11, 2018 (Jun 11, 2018 12:11 AM)GenericSkid Wrote: Make an issue for recaf, the dude seems to respond to bug reports stupidly fast. Looks like its a name parsing issue. Probably cuz the unicode names. Also, that build looks old. Possibly, and I was on 1.0, looks like it's now 1.2.0.. In any case, it still happens so I'll make a report. :) Just a quick update, he updated it for that bug report. Seems like an issue both with a blank name .class file and crazy long file names. https://github.com/Col-E/Recaf/releases/tag/1.2.1 EDIT: And it NPE's on startup, but I made another bug report lol. RE: Anyone recognize this obfuscation? - GenericSkid - Jun 12, 2018 (Jun 11, 2018 12:22 AM)sneezing panda Wrote: Possibly, and I was on 1.0, looks like it's now 1.2.0.. In any case, it still happens so I'll make a report. :) Looks like that's already resolved. Anyways he's right, looks like the auto-deobfuscator is fucking things up with both naming and other attributes. At this point you may as well open an issue requesting he do the whole thing for you 🤣 |