Skip to content

A tool for C# that allows you to connect, configure and conveniently use any decompiler.

License

Notifications You must be signed in to change notification settings

aleksandrresetnikov/fastLPI-decompile-tool

Repository files navigation

fastLPI-decompile-tool

A tool for C# that allows you to connect, configure and conveniently use any decompiler.

✅Inspiration and needs.

I was making my own Java code editor in C#, I needed to know what packages, classes, methods are in Jar libraries (Jar files that the user imports) for further code hinting and syntax highlighting.

✅Decision.

I found a very handy jd-cli utility, which was a branch of the JD-Core project. It was decided to develop a C# Api, to which any decompiler could be connected. In this case, the input commands and parameters of the decompilers may differ, so you can specify your command dictionary, as well as add your own.

- For example :

The jd-cli decompiler has an outputZipFile command that takes the value of the output zip path, and in the dictionary this command will be given as "-oz".

✅Usage the code analysis:

Here are the code analysis files for fastLPI-decompile-tool-example (based on jd-gui).

Usage: jd-gui-forLPI <path to jar file> - Next to the selected jar file (in the same folder) an xml document will be created with the contents of this jar file (classes, fields, motods and their access level). Next, you can connect the fastLPI-decompile-tool library to your C Sharp project, and use it to find out the entire contents of the jar, as well as the access level of classes, motods, fields, etc. You can also find interfaces, enumerations, etc.

You can download the jd-gui-forLPI source here.
You can use the excellent example using fastLPI-decompile-tool.
You can see ready-made examples here.

For more examples and help just email me ([email protected])

✅Additionally:

I started developing a java source code analyzer to determine which packages, classes, methods are in the library.

✅New:

  1. JarDataLoader - loading data about jar file from xml file.
  2. IJarDataSerialization - Interface for jar data serialization (implements: BinJarDataSerialization and XmlJarDataSerialization).
  3. JarDataInstance - Information about an instance of the JarFile class for its further saving as a file.
  4. AccessLevelManager - Quick actions with item access level.

✅Corrected:

  1. Resource definition among jar content.
  2. Regex-related slow loading of data.
  3. Slowdown when determining the element type.
  4. Confuses AccessLevel.Synchronized and AccessLevel.PublicClass
  5. Distinguishes between types: synchronized*, deprecated params*, native params*.

About

A tool for C# that allows you to connect, configure and conveniently use any decompiler.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published