$ cat wrapped.txt CREATE or REPLACE PROCEDURE wrap_it wrapped a000000 b2 abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd 7 e0 f7 uveH+zmPD1snPwtBZmL3T1hkxRcwgy7w154VfC9GAME+MzyOFMq0DNYH29gBazqoJJQ0Xemb pdRvlWrC2UeKeKiS2uzT80HMAvKIMOYhjXZT4CrU98zgprrwl4jKnFKvFljUAnGx8GHexDSU XRa3oykCJIUWEovu72mqAm0vttgZB9E/9E6y2HhxKdu1k8arcrHegHYAvF1pwn1e6sCFJg04 QGsN1g1JLYIklPGBDEEZInWt0w== / $ ./unwrap.py wrapped.txt === Oracle 10g/11g PL/SQL unwrapper - by Niels Teusink - blog.teusink.net === PROCEDURE WRAP_IT (SEED_IN NUMBER) IS V_RAND INTEGER; BEGIN DBMS_RANDOM.INITIALIZE (SEED_IN); FOR I IN 1..5 LOOP V_RAND := MOD(ABS(DBMS_RANDOM.RANDOM),45); DBMS_OUTPUT.PUT_LINE(I||': '||V_RAND); END LOOP; END; $With: http://www.teusink.net/unwrap.py From: http://blog.teusink.net/2010/04/unwrapping-oracle-plsql-with-unwrappy.html
Thursday, May 24, 2012
Unwrapping Oracle PL/SQL (10g/11g)
The Oracle wrap utility can be used to obfuscate PL/SQL code, to ensure it can't be easily read. Pete Finnigan described (pdf) the wrapping process for Oracle 9g, but for 10g and 11g it still remains a bit of a mystery. I decided to release my Python unwrapping utility (supports 10g and 11g).
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment