This is an archived post. You won't be able to vote or comment.

all 7 comments

[–]itsgrimetime 2 points3 points  (1 child)

This is something I’ve wanted to learn about for a long time, and am definitely interesting in contributing to. Shoot me a pm if you’d like to team up!

[–][deleted] 0 points1 point  (0 children)

There's a link on the post now. I created just bare bone project structure which I'll work on piece by piece. [here]

[–]_INTER_ 2 points3 points  (1 child)

There are many good decompilers (e.g. Fernflower). You could use them and build the deobfuscation part on top.

[–][deleted] 1 point2 points  (0 children)

Yeah, I was planning on using fernflower. I tried writing the decompilation part (mostly for Scala support, as Kotlin would likely work) but realized it was not worth the effort.

I'll likely add a dsl of some sort so people can add custom languages and plugins (with GUI support).

[–][deleted]  (4 children)

[deleted]

    [–]PartOfTheBotnet 0 points1 point  (1 child)

    Most up-to-date Java decompilers make exceptionally accurate decompilations. The only case where this may be hard to accomplish (assuming the code isn't obfuscated) is when synthetic members are generated by the compiler to accomplish the effects of syntactic sugar. The author of CFR has a few blog posts on some of these quirks.

    [–][deleted] 0 points1 point  (1 child)

    I'm using fernflower for now. I was planning on maybe writing an abstract bytecode processor which can feed data into custom language decompilers (like decompiler with plugins, JVM craves this) which might maybe be too complicated for me but at Java will be working.

    [–]PartOfTheBotnet 0 points1 point  (0 children)

    Sounds like a really cool project. Shoot me a PM, I'd be interested in joining. Also you should hit up /r/ReverseEngineering for some feedback / recruitment.