Enkripsi dan Dekripsi Shellcode dengan XOR
Perkenalan
Selamat datang di artikel baru saya hari ini saya akan menunjukkan kepada Anda bagaimana saya membuat dua fungsi untuk Enkripsi dan Dekripsi Shellcode dengan XOR.
Kedua fungsi ini dibuat dengan C++ dan sangat mudah dipahami, mari kita mulai.
Apa itu XOR?
Enkripsi XOR adalah jenis operasi bitwise yang biasa digunakan dalam kriptografi untuk mengenkripsi data. Ini bekerja dengan menggabungkan pesan teks biasa dengan kunci rahasia menggunakan operator XOR (eksklusif atau). Hasil dari operasi ini adalah pesan ciphertext yang hanya dapat didekripsi dengan menggabungkannya dengan kunci asli menggunakan operasi XOR yang sama. Keamanan enkripsi XOR didasarkan pada fakta bahwa operasi XOR dapat dibalik dan sangat sulit untuk menentukan kunci asli dari ciphertext saja.
Mengapa digunakan untuk mengenkripsi shellcode?
Enkripsi XOR sering digunakan untuk mengenkripsi shellcode karena merupakan operasi sederhana dan cepat yang dapat digunakan untuk mengaburkan isi kode. Operasi XOR mengambil dua nilai biner dan menghasilkan hasil 1 jika salah satu inputnya adalah 1, dan 0 jika sebaliknya. Ketika enkripsi XOR digunakan untuk mengenkripsi shellcode, kunci dipilih dan digunakan untuk XOR setiap byte dari shellcode. Untuk mendekripsi kode shell, kunci yang sama digunakan untuk XOR setiap byte lagi, yang membalikkan enkripsi dan memulihkan kode shell asli.
Menggunakan enkripsi XOR untuk menyembunyikan konten shellcode dapat membantu menghindari deteksi oleh perangkat lunak keamanan, karena shellcode terenkripsi akan memiliki pola bit yang berbeda dari shellcode asli dan mungkin tidak cocok dengan tanda tangan yang diketahui untuk kode berbahaya. Namun, enkripsi XOR dapat dengan mudah dipecahkan jika kuncinya diketahui, sehingga sering digunakan bersamaan dengan metode lain, seperti obfuscation, untuk mempersulit rekayasa balik.
Kode
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
void XOR_decrypt(unsigned char key) {
for (int i = 0; i < len; i++) {
payload[i] = payload[i] ^ key;
cout << "\\x" << hex << setfill('0') << setw(2) << (int)payload[i];
}
cout << endl;
}
void XOR_encrypt(unsigned char key){
for(int i = 0; i < len; i++){
payload[i] ^= key;
}
for(int i = 0; i < len; i++){
cout << "\\x" << hex << (int)payload[i];
}
cout << endl;
}
Fungsi XOR_encrypt(unsigned char key)melakukan enkripsi XOR pada payloadmenggunakan kunci input dan menampilkan hasilnya dalam format heksadesimal.
POC
Mari kita coba kodenya:
Pertama saya membuat kode shell untuk memunculkan calc.
Sekarang saya taruh di sini di .cpp kode:
Itu menggunakan objek karena kode ini sebenarnya adalah objek dari perpustakaan pengembangan malware saya, tetapi fungsinya sama, di sini saya meletakkan tautan perpustakaan ini:
Mari kita jalankan:
Yang pertama menunjukkan kode shell yang sebenarnya dan kemudian mengenkripsi di dalamnya di bagian kedua.
Kesimpulan
Ini adalah topik ini saya harap Anda menyukainya dan menggunakannya untuk mengembangkan skrip malware Anda.
Jika Anda menikmati konten saya dan ingin membantu saya membawa proyek ini ke level selanjutnya, Anda dapat menjadi anggota dengan mendonasikan langganan bulanan. Dukungan Anda akan membantu saya terus membuat konten berkualitas tinggi. Terima kasih atas kemurahan hati Anda!
Jika donasi tidak memungkinkan untuk Anda saat ini, tidak masalah sama sekali! Dukungan Anda dalam membagikan proyek saya dan menyebarkan berita sangat kami hargai. Saya akan terus membuat dan membagikan karya saya, dan saya berterima kasih atas dorongan dan minat Anda.
Terima kasih telah membaca ini :)
S12.

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































