jd-core | JD-Core is a JAVA decompiler written in JAVA | Plugin library
kandi X-RAY | jd-core Summary
kandi X-RAY | jd-core Summary
JD-Core is a standalone JAVA library containing the JAVA decompiler of "Java Decompiler project". It support Java 1.1.8 to Java 12.0, including Lambda expressions, method references and default methods. JD-Core is the engine of JD-GUI.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Visit an array variable initializer
- Updates the binary operator
- Visit a Lambda identifiersExpression
- Implements the visitor to look for arrayVariableInitializerType
- Overrides the visitor to look for arrayVariableInitializerType
- Makes sure that the given FOR statement is a valid update
- Lookup the parameters for a new class
- Overrides the visitor to look for parameters of a method invocation
- Updates a TernaryOperatorExpression
- Visit a method invocation
- Visit a cast expression
- Handles a ClassNewExpression
- Visit a binary operator expression
- Visit a TernaryOperatorExpression
- Visits an inner type
- Implements the visitor to look for types that are type arguments
- Visit a wildcard type
- Visits an object type
- Binds the type arguments
- Visit an object type
- Visit an inner object type
- Visit a type arguments
- Visits an inner object type
- Visits a type
- Visit an ElementValueArrayValueValueArray
- Generate the element value types
- Visit a ElementValueEnumConstant
- Visits a try statement
- Visits a generic type
- Visit the type arguments
- Implements the visitor to look for statements that are finally statements
jd-core Key Features
jd-core Examples and Code Snippets
Community Discussions
Trending Discussions on jd-core
QUESTION
I have de-compiled a Java project using JD-GUI, and was surprised when I saw that all identifiers are using Java reserved keywords such as int do throw extends etc..
Here is a snippet of the project:
...ANSWER
Answered 2021-Feb-24 at 01:00While reserved words may not occur in Java source code, they are permitted in compiled Java code. Some code obfuscation tools can make use of this to make decompiling harder. For instance, ProGuard provides the following option:
-obfuscationdictionary filename
Specifies a text file from which all valid words are used as obfuscated field and method names. By default, short names like 'a', 'b', etc. are used as obfuscated names. With an obfuscation dictionary, you can specify a list of reserved key words, or identifiers with foreign characters, for instance. White space, punctuation characters, duplicate words, and comments after a# sign are ignored. Note that an obfuscation dictionary hardly improves the obfuscation. Decent compilers can automatically replace them, and the effect can fairly simply be undone by obfuscating again with simpler names. The most useful application is specifying strings that are typically already present in class files (such as 'Code'), thus reducing the class file sizes just a little bit more. Only applicable when obfuscating.
So if you feed this a list with Java identifiers (such as this one) you end up with a class file that causes syntax errors if decompiled. Of course, you can simply rename the variables to fix these compilation errors (for instance by using ProGuard yourself before decompiling), so this is only a minor inconvenience.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install jd-core
You can use jd-core like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the jd-core component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page