Obfuskasi Source Code Bahasa C dengan Fungsi Hash dan Algoritma Enkripsi
Sarah Rosdiana Tambunan, Dr. Nur Rokhman, S.Si., M.Kom.; Faizal Makhrus, S.Kom., M.Sc., Ph.D.
2023 | Tesis | S2 Ilmu Komputer
Obfuskasi penting untuk dilakukan karena beberapa alasan, diantaranya meningkatkan keamanan code, melindungi hak cipta dan menguji ketahanan antivirus. Obfuskasi adalah teknik untuk mentransformasi kode program menjadi bentuk yang berbeda dengan mempertahankan semantik dan behavior-nya. Ada beberapa metode obfuskasi yang sering digunakan untuk obfuskasi source code diantaranya adalah deadcode insertion, code transposition dan string encryption. Pada penelitian ini dilakukan pengembangan sebuah obfuscator yang dapat bekerja pada source code bahasa C dengan metode code transposition yaitu mengacak susunan baris kode dengan fungsi hash kemudian menggunakan algoritma enkripsi DES untuk menyembunyikan parameter dari fungsi hash tersebut sehingga semakin sulit untuk menemukan format asli nya. Obfuscator yang dikembangkan memiliki routine untuk melakukan invers terhadap fungsi hash yang bekerja sehingga file yang diobfuskasi dapat dikompilasi secara normal. Obfuscator ini secara khusus digunakan untuk menjaga keamanan source code dalam bahasa C dari plagiarisme maupun pembajakan. Untuk mengetahui apakah obfuscator telah berjalan sesuai dengan harapan, maka dilakukan pengujian kualitatif terhadap dissimilarity dan potency. Dissimilarity diuji dengan menggunakan Euclidean Distance sementara Potency diuji oleh 9 orang programmer untuk melihat apakah source code yang telah diobfuskasi dapat dipahami oleh programmer tersebut. Hasil pengujian yang diperoleh menunjukkan bahwa obfuskasi dengan fungsi hash menghasilkan nilai dissimilarity yang lebih baik jika dibandingkan dengan metode obfuskasi yang telah berkembang, selain itu obfuscator juga secara efektif mampu menjaga keamanan code dan membuat analisis terhadap kode menjadi lebih rumit.
Obfuscation is essential for several reasons, including increasing code security, protecting copyright, and testing anti-virus resistance. Obfuscation is a technique for transforming program code into a different form while preserving its semantics and behavior. Several obfuscation methods are often used to obfuscate source code, including dead-code insertion, code transposition, and string encryption.
In this research, the development of an obfuscator that can work on C language source code uses the code transposition method, namely randomizing the arrangement of lines of code with a hash function and then using the DES encryption algorithm to hide the parameters of the hash function so that it is increasingly difficult to find the original format. The developed obfuscator has a routine to inverse the working hash function so that obfuscated files can be compiled normally. This obfuscator is specifically used to maintain the security of source code in C language from plagiarism and piracy. A qualitative test of dissimilarity and potency is carried out to determine whether the obfuscator has run as expected. Dissimilarity was tested using Euclidean Distance, while nine programmers tested potency to see whether the programmers could understand the obfuscated source code.
The test results show that obfuscation with a hash function produces a better dissimilarity value when compared to obfuscation methods that have been developed; besides that, the obfuscator can also effectively maintain code security and make code analysis more complicated.
Kata Kunci : Obfuscator, source code, hash