Setelah berbagai obfuscator Python berhasil dibongkar, banyak orang sekarang mulai menggunakan Cython agar modulnya sulit dibongkar. Menurut saya ini cara yang sangat baik, karena selain lebih sulit dibongkar, kode yang dihasilkan juga sering kali lebih cepat dari modul Python yang ditulis langsung dalam Python.
Karena kebanyakan yang mencari tahu soal RE Cython ini adalah newbie yang berusaha mencuri kode Python orang lain, maka ini saya tuliskan di awal. Karena biasanya orang-orang ini tidak sabar membaca sampai akhir:
- Jika punya file.so hasil kompilasi Cython, maka tidak bisa dikembalikan lagi menjadi .py secara otomatis.
- Proses reversing bisa dilakukan manual, tapi butuh waktu lama dan butuh kesabaran tinggi
Mengenal Modul Python dalam C/C++
Kita bisa menulis modul Python dalam C/C++ dan juga bahasa lain. Bahasa yang resmi didukung hanya C/C++, tapi bahasa lain seperti Rust juga bisa dipakai. Bahkan sebenarnya banyak modul Python yang dipakai sehari-hari yang ditulis dalam C/C++, misalnya numpy, tensorflow, dan bebagai modul AI lain.
Ada berbagai cara untuk menulis modul Python, pertama adalah cara 100% manual. Manual artinya kita menulis sendiri kodenya dalam C/C++ tanpa library tambahan atau tool tambahan. Dokumentasi lengkap cara manual ini bisa dilihat situs resmi Python.
Membuat modul secara manual ini butuh waktu lama, maka ada berbagai cara lain untuk memudahkan pembuatan modul ptyhon. Tapi perlu dicatat bahwa semua cara lain ini pada akhirnya akan memanggil API Python yang sama seperti jika kita menggunakan cara manual. Jadi pertama kita perlu memahami dulu modul yang dibuat secara manual.
Lanjutkan membaca “Reverse Engineering Cython”