PL/SQL Obfuscating: Wrap


Orang-orang yang tidak suka berbagi source code pasti akrab dengan obfuscating. Mereka akan melakukan apapun agar source code mereka sukar dibongkar dan ditemukan. Oracle 10g datang dengan sebuah utility, yaitu wrap yang dapat men-obfuscate source code SQL. Kode-kode CREATE [OR REPLACE] FUNCTION, PROCEDURE, PACKAGE, PACKAGE BODY, TYPE .. AS OBJECT, TYPE .. UNDER .., dan TYPE BODY akan diterjemahkan menjadi kode-kode asing yang hanya dikenali oleh PL/SQL compiler.

Sebagai contoh, perhatikan isi file SQL berikut:

 

create or replace
PROCEDURE Proc_Latihan AS
  monthly_salary          NUMBER(6);
  number_of_days_worked   NUMBER(2);
  pay_per_day             NUMBER(6,2);

-- the following is the executable part,
-- from BEGIN to END
BEGIN
  monthly_salary := 2290;
  number_of_days_worked := 21;
  pay_per_day := monthly_salary /
     number_of_days_worked;
  DBMS_OUTPUT.PUT_LINE('The pay per day is ' ||
    TO_CHAR(pay_per_day));

EXCEPTION
  WHEN ZERO_DIVIDE THEN
    pay_per_day := 0;

END;

 

Aku menyimpan file tersebut dengan nama latihan.sql, kemudian aku menjalankan perintah berikut melalui command prompt:


wrap iname=c:\latihan.sql
oname=c:\obfuscated_latihan.sql

Setelah menjalankan perintah di atas, aku akan memperoleh sebuah file bernama obfuscated_latihan.sql yang isinya sebagai berikut:

 

create or replace
PROCEDURE Proc_Latihan wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
190 148
sd0UBKHsKqg1HM4SSQJ1KTf77qkwgzLQLm0VfC9AAMHqR9eeUfYorNESWhOzOQUUGiaD7XSZ
1YoZoq6sJBkmBltcW0ChQBeLkLFCE1HleqyGH0NlfVmryGOmFti9k4dePscp9lMCJhg2ECG5
EBgeB4pfidgMo5OdZzIHBoJdkS5KPmCPf+ITkh9Z4zbBg3oMrp3KSkksu4GrcHcrBsn2cqWB
MIJN8VEUukTqAvtJQ4Nwd7Kq/bT5dnCYMa+WsbUA9e4wRnA+1xrQHF0jH5lT3LNEef0fCnSy
z4zEGtIJ1UbdsrMEIJD6/zarvIzH4TxiAYM=

/

 

Mmm,sungguh beda jauh dari kode aslinya, bukan? Setidaknya pada pandangan pertama😉 Sekarang aku akan mencoba apakah kode-kode aneh di atas masih dapat di-eksekusi oleh SQL*Plus. Saat memasukkan perintah:


SQL> @c:\obfuscated_latihan.sql

Oracle merespon dengan tulisan “Procedure created.” Ini berarti memang Oracle masih mengenali kode-kode aneh di atas🙂

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: