Item request has been placed! ×
Item request cannot be made. ×
loading  Processing Request

SYSTEM AND SOLUTION TO OBFUSCATE AND PREVENT THE PATTERN ANALYSIS OF JAVA ARCHIVES

Item request has been placed! ×
Item request cannot be made. ×
loading   Processing Request
  • Publication Date:
    July 25, 2024
  • معلومة اضافية
    • Document Number:
      20240248967
    • Appl. No:
      18/099286
    • Application Filed:
      January 20, 2023
    • نبذة مختصرة :
      Methods, system, and non-transitory processor-readable storage medium for a design obfuscation system are provided herein. An example method includes a design obfuscation system that receives software code to be compiled on a system running a software compiler. The design obfuscation system generates obfuscated code from at least a portion of the software code, where the obfuscated code, when decompiled, avoids identification of design patterns in the software code. The design obfuscation system provides the obfuscated code to the software compiler for compiling, and the software compiler compiles the obfuscated code.
    • Assignees:
      Dell Products L.P. (Round Rock, TX, US)
    • Claim:
      1. A method comprising: receiving, by a design obfuscation system, software code to be compiled on a system running a software compiler; generating, by the design obfuscation system, obfuscated code from at least a portion of the software code, wherein the obfuscated code, when decompiled, avoids identification of design patterns in the software code; and providing the obfuscated code to the software compiler for compiling; and compiling the obfuscated code by the software compiler, wherein the method is performed by at least one processing device comprising a processor coupled to a memory.
    • Claim:
      2. The method of claim 1 further comprising: grouping a plurality of obfuscated code according to group related classes.
    • Claim:
      3. The method of claim 2 wherein grouping the plurality of obfuscated code comprises: grouping obfuscated Java source files according to respective packages.
    • Claim:
      4. The method of claim 1 wherein the portion of the software code comprises one or more archive files bundled with the portion of the software code.
    • Claim:
      5. The method of claim 4 wherein the one or more archive files comprise one or more Java archive files.
    • Claim:
      6. The method of claim 1 wherein generating, by the design obfuscation system, obfuscated code from at least the portion of the software code comprises: parsing the software code by a parser, to model the source code as a structured document.
    • Claim:
      7. The method of claim 6 wherein parsing the portion of the software code by the parser comprises: instantiating the parser to create an abstract syntax tree representing the software code.
    • Claim:
      8. The method of claim 1 wherein generating, by the design obfuscation system, obfuscated code from the at least the portion of the software code comprises: identifying, by the design obfuscation system, design patterns in the at least the portion of the software code.
    • Claim:
      9. The method of claim 8 wherein identifying, by the design obfuscation system design patterns in the at least the portion of the software code comprises: identifying at least one of a class, a method and a variable in the at least the portion of the software code.
    • Claim:
      10. The method of claim 8 wherein identifying, by the design obfuscation system design patterns in the at least the portion of the software code comprises: determining, by the design obfuscation system, that the at least the portion of the software code comprises a hierarchy of classes; and replacing the hierarchy of classes in the portion of the software code with a single class.
    • Claim:
      11. The method of claim 10 wherein replacing the hierarchy of classes in the portion of the software code with the single class comprises: instantiating, in the single class, components in the hierarchy of classes that were identified by the parser, where the components are instantiated as obfuscated code.
    • Claim:
      12. The method of claim 8 wherein identifying, by the design obfuscation system design patterns in the at least the portion of the software code comprises: determining, by the design obfuscation system, that the at least the portion of the software code comprises at least one super class; and replacing the at least one super class in the portion of the software code with at least two classes.
    • Claim:
      13. The method of claim 1 wherein generating, by the design obfuscation system, obfuscated code from the at least the portion of the software code comprises: creating a compilation class; creating a package class that depends from the compilation class, wherein the package class declares replacement packages that will replace the at least the portion of the software code with the obfuscated code; and creating an import class that imports packages necessary to compile the replacement classes.
    • Claim:
      14. The method of claim 13 further comprising: declaring at least one of a replacement class, replacement method and replacement variable that will replace the at least the portion of the software code with the obfuscated code; and grouping the at least one of the replacement class, replacement method and replacement variable according to a respective replacement package.
    • Claim:
      15. The method of claim 1 wherein compiling the obfuscated code by the software compiler comprises: compiling the obfuscated code with a Java compiler.
    • Claim:
      16. A system comprising: at least one processing device comprising a processor coupled to a memory; the at least one processing device being configured: to receive, by a design obfuscation system, software code to be compiled on a system running a software compiler; to generate, by the design obfuscation system, obfuscated code from at least a portion of the software code, wherein the obfuscated code, when decompiled, avoids identification of design patterns in the software code; and to provide the obfuscated code to the software compiler for compiling; and to compile the obfuscated code by the software compiler.
    • Claim:
      17. The system of claim 16 wherein the at least one processing device configured to generate, by the design obfuscation system, obfuscated code from at least the portion of the software code is further configured to: parse the software code by a parser, to model the source code as a structured document.
    • Claim:
      18. The system of claim 17 wherein the at least one processing device configured to parse the portion of the software code by the parser is further configured to: instantiate the parser to create an abstract syntax tree representing the software code.
    • Claim:
      19. The system of claim 16 wherein the at least one processing device configured to generate, by the design obfuscation system, obfuscated code from the at least the portion of the software code is further configured to: identify, by the design obfuscation system, design patterns in the at least the portion of the software code.
    • Claim:
      20. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device: to receive, by a design obfuscation system, software code to be compiled on a system running a software compiler; to generate, by the design obfuscation system, obfuscated code from at least a portion of the software code, wherein the obfuscated code, when decompiled, avoids identification of design patterns in the software code; and to provide the obfuscated code to the software compiler for compiling; and to compile the obfuscated code by the software compiler.
    • Current International Class:
      06; 06
    • الرقم المعرف:
      edspap.20240248967