Saya nulis ini supaya ga lupa. Sebenarnya bisa dicari lagi sih alamat ini, cuma lebih enak klo udah ada disini tanpa nyari lagi khan?!.
Sejumlah alamat yang dipake untuk tehnik ROP, sbb:
VirtualAlloc()
Secara sederhana, fungsi VirtualAlloc() akan mengalokasikan memory baru. Salah satu dari parameter di fungsi ini yang bisa membuat memory yang baru bisa memiliki opsi eksekusi dan baca-tulis. Untuk itu, tujuan utama di fungsi ini adalah memastikan nilai EXECUTE_READWRITE sesuai.
Pada Windows XP SP3, VirtualAlloc() ada di alamat 0x7C809AF1 (kernel32.dll), sedangkan di Windows 7, terdapat pada alamat 0x75C57A4F (kernel32.dll).
Info: http://msdn.microsoft.com/en-us/library/aa366887(VS.85).aspx
HeapCreate()
Membuat memory heap baru yang dapat digunakan oleh shellcode kita. Fungsi ini mengalokasikan sebuah ruang pada ruang virtual address (virtual address space) dari proses yang bersangkutan.
Fungsi ini, hanya akan membuat heap privat dan menandainya sebagai executable. Kita masih harus mengalokasikan memori di heap ini (dengan HeapAlloc() misalnya) dan kemudian meng-copy menyalin shellcode ke lokasi heap (dengan memcpy() misalnya).
Ketika heap memori baru dialokasikan, kita bisa pake memcpy() untuk menyalin shellcode kita ke tempat heap dialokasikan dan jalankan.
Pada XP SP3, HeapCreate terletak di 0x7C812C56 yang juga bagian dari kernel32.dll. Pada Windows 7, HeapCreate terletak di 0x75C5EDFF, bagian dari KERNELBASE.dll
Info: http://msdn.microsoft.com/en-us/library/aa366599(VS.85).aspx
SetProcessDEPPolicy()
Syarat agar fungsi ini berjalan dengan baik, maka DEP harus di set OptIn atau OptOut, jika yang terjadi adalah AlwaysOn atau AlwaysOff, tehnik ini akan jadi error atau ga jalan. Jika modul di linked dengan /NXCOMPAT, tehnik ini juga akan gagal. Begitu juga, tehnik ini hanya bisa dipakai apabila fungsi ini belum dipakai sebelumnya, misalnya IE8 pasti memanggil fungsi ini ketika aplikasi dijalankan, maka tehnik ini tidak bisa dipakai.
Kabar baiknya, fungsi ini hanya perlu 1 parameter, sehingga membuat ROP chain tidak terlalu sulit. Alamat SetProcessDEPPolicy pada Windows XP SP3 0x7C8622A4, sedangkan pada Windows 7 0x762B62E4, keduanya merupakan bagian dari kernel32.dll.
Info: http://msdn.microsoft.com/en-us/library/bb736299(VS.85).aspx
NtSetInformationProcess()
Fungsi ini akan membuat memory menjadi executable, tapi tidak akan berjalan jika DEP di set permanen dan AlwaysOn. Alamat pada Windows XP SP3 pada 0x7C90DC9E. Hanya bisa dipake di Windows XP, Vista, dan 2003.
Info:http://uninformed.org/index.cgi?v=2&a=4
VirtualProtect()
Fungsi VirtualProtect merubah perlindungan akses memori saat proses dipanggil. Perlindungan terhadap akses memori bisa dilihat disini. Pada Windows XP SP3 alamatnya adalah 0x7C801AD4, sedangkan pada Windows 7, bisa ditemukan di 0x75C5F306. Keduanya merupakan bagian dari kernel32.dll
WriteProcessMemory()
Pada Windows XP SP3, WriteProcessMemory() terletak di 0x7C802213 (kernel32.dll), dan pada Windows 7 terletak di 0x75C744CF (kernelbase.dll) . Fungsi ini memungkinkan attacker untuk menyalin shellcode ke lokasi lain (executable) sehingga kita bisa melompat pindah ke sana dan menjalankannya. Selama menyalin, fungsi ini memastikan lokasi tujuan ditandai sebagai writeable (bisa ditulis).
Info: http://packetstormsecurity.org/files/view/87883/Windows-DEP-WPM.txt
(Source: corelan.be)