obfuscation


Apa itu Obfuscation???

Menurut Clark Thomborson, obfuscation ialah mentransformasi sintaks kode komputer namun dengan tetap memelihara semantik (isi) sehingga kerahasiaan tetap terjaga. Beberapa aspek yang mestinya tetap menjadi rahasia dalam sebuah aplikasi komputer yaitu :

  • Algoritma, sehingga kompetitor tidak dapat membangun hal yang sama kecuali membangunnya dari awal.
  • Constant, seperti kunci enkripsi.
  • Fungsi internal yang penting, seperti fungsi untuk mengecek lisensi “if (not licensed) exit()”.
  • Antarmuka eksternal, untuk menolak akses dari penyerang dan kompetitor sehingga dapat masukan dari “pintu belakang” atau “lubang”.

Cara-cara untuk meng-obfuskasi perangkat lunak dapat digolongkan menjadi :

  1. Obfuskasi Leksikal : Kacaukan nama variable, constant, method, class, antar muka dan sebagainya.
  2. Obfuskasi Data : Kacaukan nilai variable (misalnya dengan meng-kode Boolean menjadi int, meng-kode int pada flat, meng-kode nilai-nilai pada graph).
  3. Obfuskasi Kendali : Kacaukan penyataan-pernyataan kendali (if, while, for).

Pada intinya obfuscation digunakan untuk mencegah adanya reverse engineering. Teknik obfuscation umumnya mengubah sintaks skrip tanpa mengubah semantiknya. Maksudnya adalah walaupun tulisan skrip menjadi susah untuk dibaca namun ketika dieksekusi masih tetap dapat dijalankan seperti sebelum di-obfuskasi.

Macam – macam Algoritma Obfuskasi (Christian Collberg) :

1. Algoritma obfLBS : Obfuskasi dengan Point Fungsi

Saat satu aplikasi menggunakan password di dalam kode sumbernya maka password tersebut disamarkan agar tidak mudah diketahui, inilah salah satu bentuk penggunaan Obfuskasi dengan point fungsi.

2. Algoritma obfNS : Obfuskasi Database

Sesuai dengan namanya Obfuskasi Database dilakukan pada database sehingga data di dalam database disamarkan nilainya agar tidak mudah dikenali secara langsung. Hal ini tidak memungkinkan mencari data dengan memasukan nilai yang dicari.

3. Algoritma obfPP : Enkripsi Homomorphic

Enkripsi Homomorphic adalah jenis enkripsi di mana anda melakukan suatu operasi pada suatu nilai dengan melakukan suatu (mungkin berbeda) operasi pada enkripsi.

4. Algoritma obfCEJO : Whitebox DES

Cara kerja Obfuskasi ini adalah dengan meng-enkripsi data sumber dengan menggunakan kunci / key tertentu, sehingga untuk mendapatkan data sebenarnya tidak dapat dilakukan dengan dekripsi saja melainkan harus dengan memasukkan kunci / key.

Contohnya seperti berikut :

void primes(int cap) {
  int i, j, composite;
  for(i = 2; i < cap; i++) {
    composite = 0;
    for(j = 2; j < i; j++)
      composite += !(i &percnt; j);
    if(!composite)
      printf("&percnt;d\t", i);
  }
}

int main() {
  primes(100);
}

Setelah di-obfuskasi menjadi sebagai berikut :

 
_(__,___,____){___/__<=1?_(__,___+1,____):!(___&percnt;__)?_(__,___+1,0):___&percnt;__==___/
__&&!____?(printf("&percnt;d\t",___/__),_(__,___+1,0)):___&percnt;__>1&&___&percnt;__<___/__?_(__,1+
___,____+!(___/__&percnt;(___&percnt;__))):___<__*__?_(__,___+1,____):0;}main(){_(100,0,0);}

Skrip hasil obfuskasi akan sulit dibaca meskipun bila dijalankan pada compiler yang sama akan menghasilkan keluaran yang sama.

sumber : berbagai sumber

About esdynoa

aq adalah orang yang pengen ikut berpartisipasi dalam hiruk pikuk kehidupan maya moga aja dengan membuat blog ini aq bisa lebih serius untuk belajar dan selalu bersemangat :D
This entry was posted in berbagi, informasi and tagged , , . Bookmark the permalink.

One Response to obfuscation

  1. RIZON BARNS says:

    Waw…Extreme… Mas bisa dijelaskan tidak, bagaimana caranya obfuscation code Visual Basic 6 Enterprise… Terima Kasih..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s