Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps

Tuesday, December 4, 2007

Undecipherable strings in pl/sql during Oracle DB creation

If you have ever watched an Oracle DB getting created, you might have seen many screens like this one:

CREATE OR REPLACE PACKAGE dbms_repcat_sna_utl wrapped
2 a000000
3 1
4 abcd
5 abcd
6 abcd
7 abcd
8 abcd
9 abcd
10 abcd
11 abcd
12 abcd
13 abcd
14 abcd
15 abcd
16 abcd
17 abcd
18 abcd
19 9
20 41fe b06
21 mbt5sPmynQOp/DlAlZbh0ZEW7uEwg9dxDNBdGy//MpLquAVBFqPpremIQ2cFtM1fshzdAOtJ
22 oEJo8RaXG7UkcEuy8Cyp2rdU7ezq6sx3ToxNGW/Jckuij8EsqvhW+eRD0E8ic2witfmh5HOx
23 ZKbCavumTsC81XtuCBhwaWbRuNein0DShVdEmyZ8U2flP07X6ltLpchRcOMK/gbiraiS5xYG
24 pJBaT0cJYmyIl9oYXf2DdMDMKmJrceLjwsEL9DjW4Zx2QTllSk1RrfMJ7+PEofKbGCr6S3TO
25 uRJLoTlnPyd1fKzBFgoki02pTNcCi87OoL6VsKEI+dmo/xasdr1AONn/RgoBDPJFMxEaW8wj
26 ZeyQQeejjO4Ug18hshXPpys+c2oHYssJ72JWa5uus8h2QnbKmAaKWb0bpAVdK9h9NVJqTEwg
27 8iGT3cE4embbE4oXBQMr5BulMktV1ZwnTDLiWoT+0B4BLXftWoivcXt0A+GjMWOpKoSoo1Sa
28 FK1zqWU/kWFuLeDhwqKkyfU/eesyGsQaxH8KjOfRXNqXcFLuoJmRCfrm+y1W/SK3YsekaCGT
29 K8Vq2L4LoEGpQ/A+2+1WlICh2ws8DKinEx/t0F89IXWgdTEICzD6KaWdARiQ1HV4xor/brI1
30 8u5cS7nbMJXaSkqSH+QuE0D1cUmHn421h/zQHRdhqFjJXu96wr0DjmBk4KxcayNNuPnfP/1T
31 8TaRyqdg/Caa8YS2ukJ2c/7IgBHkuIrHAqUtsaODISEiVmgaWHA4qac+J+Pbozax6i9AFIFm
32 zXTx5Cj73V+5Mmdesk+jWjhqSCfP8mcZDvo2ywt6Sce4aN5faoWjz4Y4IhMW0Z/xwr56krBP
33 r3vtmik2EwYeM/y8xvjcA1bWNWCGYF8v8+xTjWbUb+ynGlYK8mNNwHOEuOIdP0gIhFddfLiG
34 4wPP4ZARMCVer+gQRCO3KanNf07oDYZXyKRlFBMZeglJ70IsSwxsIJM7Wfl3Z65Ps+IsLDQa
35 7ZdqCVUqtPoso0B1tkUBQCFljG3Op6xN1eRuZ581iSafXFfm4qE5HjBVEWWueHjorUekrbvg
36 E5T4X2VXCu9HXR+GLgZj1jJcw7Yz8hFkLmZGU31fWuWwU6mmxJVUR7NtjtwDl5YVxDEl3hAZ
37 zHltxRN5X/9NOxV0zCIaiJOyblm2B1EAvvHTPYNhFeRaDZv1KCgRdUw4WmRRFXaNa94FFl0V
38 dNB1ibUZDgBpxZjp/A2AeDe1rzPs7N1xXUJiV3qkQ+q9c9Vx/FD7NZQr06GDNacatsKR91hz
39 BG+DWnD43eK2SPQam8NOusCrEjLM5zcU81j/cY73jlKcwmDRENqvs7HxRdRuQ6DU8yS3z60A
40 flrIz85L1Tp+UcfWz77gNorFh0XXIXYUVaXCuqeIa77rbF7gmFd8DVDxw8BbKMYbgLdU/kMz
41 GXEzg058AVf+uUpOLWjGzGxjB6DkfDORhk25tysGmxh5T5zLf+KvCvW5rGaf3P9i/DEdZ0OS
42 4DQhkwLuC8uIHQPgUfbHFgyj8J8OpduEJdfUIG34nCwcC/MHjG+Qr/Vkm96zibK+0mvf6+69
43 mvLs4YpGjuxK3MhrramrZ+nxTehNM5IyjCQBNg+OdmTAr/R054XnIsuYbVgjEWx22v8PkVO7
44 1sMYKy/FQbOBXDyr+PxRcmzePq9FvuN9dQSIOdo5+J0yx+7oDmLmgq7Trs4j4sPq6AKTZO4F
45 bddGEtLWEnUqlG0yeSR3f+S9PJgljD8zkCVJy354W8LWannq0cI+scFIOD2BXQB9EzfXQaEF
46 PYG40r/AkSXwsKpPL6GXJaGhniYdj4yhAip084Tlo2SnjEaY9KNeYGv6r/dGPH3pX0sXm+Xh
47 7ZBa1zffESdH9tN1aqxpfs3uY2zYaIxk15OkyEt/TjBqOCZfkosXXn8bCmiKFK7KLC+t/+F6
48 Yi04mbthZe7Bfzc0ckH2CRg08Y0lOs2gwNIVs05cyWBS0fY5I67y+gw+wD7w2YkJBA/kd/M7
49 gAFAZhyxsgc0pSqxo0qSJU7u7q9EPbogTt1LM9UeeSs8OdUg2T005jL8V5dznxaHpKXDSj62
50 KsXlxH2v/zO+dqEL3pCSj7l+AsVrfH6AXfVIaURzff/aY26IaMywyODayr0vUiu4gG7h7rwi
51 FI6JIbOiM30rzm7rOGHRt0rJFrJzSfv5FF9P9VK39W9aqbXcqG1B+DLYZVEaQFpKsbwDMBM4
52 u7NpHW9kOAco/clBuQA15HHwMlvsZ9efzLdEJ1hkLF++LDkCTRc7gZn2FzR3JzP4MJ+xULsc
53 G/ZPrefJwnOzB6Am+WqK8NtHxumFR0sS5fKFTHVXjLv0WeRerpc16Uz3UcQqhkbCm0du/+Vx
54 XsB2CugV5qE87sUecwQa3DrWUB10HtyWpFHqgJI4+n1q8NYAwfXz324XfxOWWabbZce4iofJ
55 y4OQBYs5XQ0sW/m5XFjWB/5l/QXomj87NMKNHELlzMottc7i2CRCnPl7R99CAcs7Ls50spra
56 9UK7UIvthE/+y/AZVZAZ2qAjHxLt81ZAEyAb0bnXgTi8gSSJtK9s+SREPApkPlm5k3sZ76X+
57 2xCFlHJwu1VrnXi5/jlzGeOa/TsShCpW3AVKbeyPCVp4PLH5y8VYPFWjnwTW/YUl0PDx6xVr
58 Uvlf24fVQZOkqoIi9qiaxXPWvi0aPGd5Vt41EUCi+wp7M//bQjQiiBLNWJ4p3PS9j2GNCyKB
59 VHel5k2Suyi49DOV+OJwDyxTYFe/9VHo19qHJBAIKDejStA=
60
61 /

Package created.

Notice that all such packages would have the keyword WRAPPED in their CREATE statement.

Oracle hides (obfuscates) its PL/SQL source code. Traditionally this has been done using the WRAP utility, but Oracle 10g Release 2 also allows this to be done dynamically using the DBMS_DDL package. This article in ORACLE_BASE presents examples of both methods of PL/SQL source obfuscation.

No comments: