Wrapper un code PL/SQL (procédure, fonction ou package) contenu dans un fichier nommé greg.sql
est simple. Cela nécessite d’utiliser la commande wrap
comme décrit dans la documentation et illustré ci-dessous ;
wrap iname=greg.sql oname=greg.pls
Si vous pensez que cette méthode peut contribuer à sécuriser votre application, jetez un oeil sur le site http://www.codecrete.net/UnwrapIt/, Copyright ©2011 Manuel Bleichenbacher.
Voici un exemple d’utilisation du site avec curl
et sed
:
cat greg.sql
create or replace procedure greg is
begin
dbms_output.put_line('Hello Slacker');
end;
/
wrap iname=greg.sql oname=greg.pls
PL/SQL Wrapper: Release 11.2.0.2.0- Production on Thu Jul 14 19:49:31 2011
Copyright (c) 1993, 2009, Oracle. All rights reserved.
Processing greg.sql to greg.pls
cat greg.pls
create or replace procedure greg wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
47 85
+eZAzTft5XUNvshjJ3doThsaFyQwg5nnm7+fMr2ywFxalvIu6qV0i8DAMv7ShglpabhSm7JK
/iiyveeysx0GMCyuJOqyMtB3bm7PAo9u212Kd2YyLvbR6iQf9jmms6q2/g==
/
MYFILE=greg.plb
curl -s -F "file=@${MYFILE}"
-F "ShowLineNumbers=false"
-F "UnwrapFile=Unwrap File"
http://www.codecrete.net/UnwrapIt/ |
sed '0,/pre class/d' | sed '/pre>/,$d' | tee ${MYFILE}.unwrapped
PROCEDURE greg IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello Slacker');
END;
Mettez un peu de contenu et vous verrez ! C’est juste impressionnant…
5 réflexions sur “Wrap et Unwrap de code PL/SQL”
Article très intéressant, juste une question au passage : pourquoi ça ne marche pas avec dbms_stat ? je tente le unwrap mais ça ne marche pas. Si tu as une explication je suis preneur et merci d’avance.
justement je connais des éditeurs qui ont du soucis à se faire
🙂
Ce qui est intéressant ici, ce n’est pas exactement la partie « wrap »…
On voit ça souvent chez les éditeurs de progiciels qui à juste titre ne veulent pas que leurs clients puissent accéder au code PL/SQL du produit.
Excellent !!!
Je devais faire un petit mémo sur l’existence du binaire Wrap…et bien je crois que je ne vais plus le faire 🙂
Les commentaires sont fermés.