Wednesday, September 22, 2010
PL/SQL - wrapping/obfuscating objects
Preciso escrever um post um pouco mais detalhado,mas por hoje vou deixar algumas linha de código por aqui.Acho que deve ajudar.
A palavra "Wrap" tem alguns significados dentre eles embrulhar ou envolver algo ,normalmente para protegê-lo.
No nosso caso iremos proteger nosso codigo.
Pois bem " wrapping" é diferente de "encrypting" .Uma vez tendo um wrapped object você não consegue mais desfaze-lo* .
Para trabalhar com criptografia existem outros pacotes no Oracle que não iremos entrar em detalhe agora,mas se você procura por isso pode encontrar alguns detalhes em :
Usando wrap utility :
Tenho um arquivo ".sql" que contem o codigo da minha procedure em pl/sql.
$ ls |grep my_p
my_proc.sql
jccorrea|arvato28 ~/Documents
$
jccorrea|arvato28 ~/Documents
$ wrap iname=my_proc.sql
PL/SQL Wrapper: Release 11.2.0.1.0- Production on Thu Sep 23 19:01:15 2010
Copyright (c) 1993, 2009, Oracle. All rights reserved.
Processing my_proc.sql to my_proc.plb
jccorrea|arvato28 ~/Documents
$ more my_proc.plb
CREATE OR REPLACE PROCEDURE my_procfoo wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
43 79
If0FucdLbueE4p3U0uRQWu+lr9Awg5nnm7+fMr2ywFyFO1+WFpeu3NlywcB0iwlp523+mYFc
pdKZUjK/ssKLwMAy/tLWmboxxXXFVMe+kr5UgqampybzvA==
/
jccorrea|arvato28 ~/Documents
$
Feito isso você pode rodar o arquivo my_proc.plb para criar a procedure.
Usando a package DBMS_DDL
Usando a package dbms_ddl podemos usar o objeto create_wrapped para fazer a mesma coisa que fizemos acima :
SQL> declare
my_ddl varchar2(150) ;
begin
my_ddl := 'create or replace procedure my_procfoo as v_num integer; begin v_num := 5 ; end;' ;
dbms_ddl.create_wrapped(my_ddl);
end ; 2 3 4 5 6
7 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.01
SQL> select TEXT
from all_source
where name = 'MY_PROCFOO'
and type = 'PROCEDURE' 2 3 4
5 /
TEXT
--------------------------------------------------------------------------------
procedure my_procfoo wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
TEXT
--------------------------------------------------------------------------------
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
3f 75
IpCGLNo/BDIha28AwTNsfGHp6Cgwg5nnm7+fMr2ywFyFO1+WFpeu3Nly6rh0K+dt/pmBXKXS
mVIyv7LCK7jAMv7S1p6jMcV1xVTVU5K+VIKmphHX89g=
TEXT
--------------------------------------------------------------------------------
Elapsed: 00:00:00.06
SQL>
Em um próximo post trateremos o assunto de criptografia !
Abs,
JC
/
jccorrea|arvato28 ~/Documents
$
Feito isso você pode rodar o arquivo my_proc.plb para criar a procedure.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment