Saya ingin menulis sebuah program yang dapat mengubah segmen kode itu sendiri. misalnya pertimbangkan kode perakitan ini:
Kode asli:
i1: mov eax,0
i2: mov eax,0X01
kode hasil yang saya ingin dibuat saat runtime dengan kode yang sama:
i1: mov eax,0
i": // some modifing instructions that when are excuted they change the i2 and/or add or remove some instruction such i3
i2: jmp 0x32
i3: mov ebx,0x67
Anda melihat i2
berubah setelah menjalankan instruksi i"
. i"
wajib mengubah instruksi kode penerusannya.
Sekarang pertanyaan saya adalah:
- Bagaimana cara mengubah segmen kode? Atau Bagaimana cara mengatasi area memori segmen kode?
- Apakah kami diperbolehkan untuk memodifikasinya dari segmen kode yang sama (Bukan program lain yang tidak memiliki akses ke sana)?
- bagaimana kita dapat mengatasi masalah yang disebabkan oleh perubahan ukuran segmen kode?
- masalah terakhir mungkin adalah anti-virus! yang mana mereka memeriksa perilaku program pada saat runtime dan sensitif terhadap modifikasi diri.
Terima kasih teman-temanku.