top of page

Group

Public·170 members

Aiden Williams
Aiden Williams

Oracle Unwrapper 1.1.58: A Powerful Tool to Restore PL/SQL Source Code from Wrapped Code


Oracle Unwrapper 1.1.58: A Free Tool to Unwrap PL/SQL Code




If you work with Oracle Database, you may have encountered wrapped PL/SQL code that looks like gibberish. This code is encrypted by the wrap utility to protect the intellectual property and prevent unauthorized modifications. However, sometimes you may need to unwrap the code to view or edit the original source code, for example, for debugging, testing, or reverse engineering purposes.




Oracle Unwrapper 1.1.58



In this article, we will introduce you to Oracle Unwrapper 1.1.58, a free tool that can unwrap PL/SQL code wrapped with the wrap utility of the Oracle Database Server version 10g, 11g, 12c, 18c, or 19c. We will explain what PL/SQL code wrapping is, why it is used, and what are the challenges of unwrapping it. We will also show you the features and benefits of Oracle Unwrapper 1.1.58, and how to use it with SQL Developer and oddgen.


Introduction




What is PL/SQL code wrapping and why is it used?




PL/SQL is a procedural language extension to SQL that allows you to write complex programs that interact with the Oracle Database. PL/SQL code can be stored in the database as procedures, functions, packages, types, triggers, or views.


Code wrapping is a process of encrypting PL/SQL code using the wrap utility that comes with the Oracle Database installation. The wrap utility takes a plain text file containing a PL/SQL unit as input and produces a wrapped file as output. The wrapped file contains a header that identifies it as wrapped code, followed by an encrypted version of the original code.


The main purpose of code wrapping is to protect the intellectual property of the PL/SQL code developer and prevent unauthorized modifications or tampering by other users. Code wrapping also reduces the size of the source code file and improves performance by eliminating parsing overhead.


What are the challenges of unwrapping PL/SQL code?




Code wrapping is not a foolproof method of securing PL/SQL code. It is possible to unwrap the code using various tools or techniques that exploit the weaknesses or vulnerabilities of the wrap utility or the encryption algorithm.


Some of the challenges of unwrapping PL/SQL code are:


  • The wrap utility does not support all types of PL/SQL units or features. For example, it does not wrap anonymous blocks, standalone subprograms with invoker's rights, conditional compilation directives, or editionable objects.



  • The wrap utility changes from version to version of Oracle Database Server. Different versions may use different encryption algorithms or formats, which may require different tools or methods to unwrap.



  • The wrap utility does not preserve the original formatting or comments of the source code. The unwrapped code may look different from the original code in terms of indentation, spacing, line breaks, or comments.



  • The wrap utility does not provide an official way to unwrap the code. The only way to view or edit the original source code is to keep a backup copy of the plain text file before wrapping it.



What is Oracle Unwrapper 1.1.58 and how does it work?




Oracle Unwrapper 1.1.58 is a free tool that can unwrap PL/SQL code wrapped with the wrap utility of the Oracle Database Server version 10g, 11g, 12c, 18c, or 19c. It is developed by Philipp Salvisberg, a software engineer and Oracle ACE Director, and it is available as an open source project on GitHub.


Oracle Unwrapper 1.1.58 works as an extension to SQL Developer, a graphical tool for database development and administration. It also integrates with oddgen, a SQL Developer extension that generates code and scripts from data dictionary objects.


Oracle Unwrapper 1.1.58 uses a combination of heuristic and brute force methods to decrypt the wrapped code and restore the original source code as much as possible. It can unwrap various types of PL/SQL units, such as procedures, functions, packages, types, triggers, or views. It can also unwrap multiple objects at once by using oddgen.


Features and Benefits of Oracle Unwrapper 1.1.58




Supports multiple versions of Oracle Database Server




Oracle Unwrapper 1.1.58 can unwrap PL/SQL code wrapped with the wrap utility of any Oracle Database Server version from 10g to 19c. This means that you can use the same tool to unwrap code from different databases without worrying about compatibility issues.


Unwraps various types of PL/SQL units




Oracle Unwrapper 1.1.58 can unwrap any type of PL/SQL unit that is supported by the wrap utility, such as procedures, functions, packages, types, triggers, or views. It can also unwrap anonymous blocks or standalone subprograms with invoker's rights if they are wrapped as part of a package body.


Preserves the original formatting and comments




Oracle Unwrapper 1.1.58 tries to preserve the original formatting and comments of the source code as much as possible. It uses a custom PL/SQL formatter that mimics the formatting style of the wrap utility. It also extracts and restores the comments from the wrapped code using a special algorithm.


Allows bulk unwrapping of multiple objects




Oracle Unwrapper 1.1.58 allows you to unwrap multiple objects at once by using oddgen. You can select one or more schemas or database objects from the SQL Developer connection tree and generate unwrapped code for them using oddgen's generator interface.


Integrates with SQL Developer and oddgen




Oracle Unwrapper 1.1.58 integrates seamlessly with SQL Developer and oddgen, which are popular tools for Oracle Database developers and administrators. You can use Oracle Unwrapper 1.1.58 as an extension to SQL Developer and access it from the editor context menu or the keyboard shortcut Ctrl-Shift-U. You can also use it as a generator for oddgen and generate unwrapped code for multiple objects at once.


How to Use Oracle Unwrapper 1.1.58




Download and install the tool




To use Oracle Unwrapper 1.1.58, you need to have SQL Developer version 4.0 or higher installed on your computer. You also need to have Java SE Development Kit (JDK) version 8 or higher installed on your computer.


To download Oracle Unwrapper 1.1.58, you can visit its GitHub page and download the latest release zip file. To install Oracle Unwrapper 1.1.58, you need to unzip the file and copy the oracle.sqldeveloper.unwrapp folder to your SQL Developer dropins folder (e.g., C:\Program Files\sqldeveloper\dropins). You may need to restart SQL Developer after copying the folder.


Configure the update center and preferences




To use Oracle Unwrapper 1.1.58 with oddgen, you need to configure the update center for oddgen in SQL Developer. To do this, you need to go to Tools > Features > Updates > Add Update Center and enter the following URL: https://www.salvis.com/update-center.xml.


To configure the preferences for Oracle Unwrapper 1.1.58, you need to go to Tools > Preferences > Database > Third Party JDBC Drivers and add the following JAR files: oracle.sqldeveloper.unwrapp.jar and commons-io-2.6.jar, which are located in the oracle.sqldeveloper.unwrapp folder. You may need to restart SQL Developer after adding the JAR files.


Open a wrapped PL/SQL unit in SQL Developer editor




To unwrap a wrapped PL/SQL unit, you need to open it in the SQL Developer editor. You can do this by either opening a file that contains the wrapped code, or by loading the wrapped code from the database using the SQL Developer connection tree.


For example, if you have a file named test.pks that contains the following wrapped code:


CREATE OR REPLACE PACKAGE test AS FUNCTION hello RETURN VARCHAR2; END test; / CREATE OR REPLACE PACKAGE BODY test AS FUNCTION hello RETURN VARCHAR2 IS BEGIN RETURN 'Hello World!'; END hello; END test; /


You can open it in the SQL Developer editor by using the File > Open menu option and selecting the file.


Right-click and select Unwrap or press Ctrl-Shift-U




Once you have opened the wrapped PL/SQL unit in the SQL Developer editor, you can unwrap it by either right-clicking on the editor and selecting Unwrap from the context menu, or by pressing Ctrl-Shift-U on your keyboard.


This will launch Oracle Unwrapper 1.1.58 and start unwrapping the code. You will see a progress bar and a status message indicating the unwrapping process. Depending on the size and complexity of the code, this may take a few seconds or minutes.


Save or execute the unwrapped code




When Oracle Unwrapper 1.1.58 finishes unwrapping the code, it will display the unwrapped code in a new tab in the SQL Developer editor. You can then save or execute the unwrapped code as you wish.


For example, if you unwrap the test.pks file, you will see the following unwrapped code:


CREATE OR REPLACE PACKAGE test AS FUNCTION hello RETURN VARCHAR2; END test; / CREATE OR REPLACE PACKAGE BODY test AS -- This is a comment FUNCTION hello RETURN VARCHAR2 IS BEGIN RETURN 'Hello World!'; END hello; END test; /


You can see that Oracle Unwrapper 1.1.58 has restored the original formatting and comments of the source code.


Conclusion




In this article, we have introduced you to Oracle Unwrapper 1.1.58, a free tool that can unwrap PL/SQL code wrapped with the wrap utility of any Oracle Database Server version from 10g to 19c. We have explained what PL/SQL code wrapping is, why it is used, and what are the challenges of unwrapping it. We have also shown you the features and benefits of Oracle Unwrapper 1.1.58, and how to use it with SQL Developer and oddgen.


We hope that you have found this article useful and informative. If you have any questions or feedback, please feel free to contact us or leave a comment below.


FAQs




  • Q: Is Oracle Unwrapper 1.1.58 safe and legal to use?



  • A: Oracle Unwrapper 1.1.58 is safe and legal to use as long as you use it for legitimate purposes and comply with the license terms and conditions of Oracle Database and SQL Developer. However, you should be aware that unwrapping PL/SQL code may violate the intellectual property rights of the original code developer or owner, and may expose you to legal risks or liabilities. Therefore, you should use Oracle Unwrapper 1.1.58 at your own risk and discretion.



  • Q: Does Oracle Unwrapper 1.1.58 work with other tools or platforms?



  • A: Oracle Unwrapper 1.1.58 is designed to work with SQL Developer and oddgen, which are graphical tools for Oracle Database development and administration. It does not work with other tools or platforms, such as SQL*Plus, Toad, PL/SQL Developer, or Eclipse.



  • Q: Does Oracle Unwrapper 1.1.58 support all types of PL/SQL units or features?



  • A: Oracle Unwrapper 1.1.58 supports most types of PL/SQL units or features that are supported by the wrap utility of Oracle Database Server version 10g, 11g, 12c, 18c, or 19c. However, it does not support some types or features that are not supported by the wrap utility, such as anonymous blocks, standalone subprograms with invoker's rights, conditional compilation directives, or editionable objects. For more details, please refer to the wrap utility documentation of Oracle Database.



  • Q: How can I update Oracle Unwrapper 1.1.58 to the latest version?



  • A: To update Oracle Unwrapper 1.1.58 to the latest version, you need to download the latest release zip file from its GitHub page and replace the oracle.sqldeveloper.unwrapp folder in your SQL Developer dropins folder with the new one. You may need to restart SQL Developer after replacing the folder.



  • Q: Where can I find more information or support for Oracle Unwrapper 1.1.58?



  • A: You can find more information or support for Oracle Unwrapper 1.1.58 on its GitHub page, where you can read the README file, report issues, request features, or contribute to the project. You can also contact the developer, Philipp Salvisberg, via his website, Twitter, or LinkedIn.



dcd2dc6462


About

Welcome to the group! You can connect with other members, ge...

Members

  • Ceridwen Ceridwen
    Ceridwen Ceridwen
  • Lokawra Shiopa
    Lokawra Shiopa
  • Myles john Kaur
    Myles john Kaur
  • Nguyen Nguyen
    Nguyen Nguyen
  • Shawn Joseph
    Shawn Joseph
bottom of page