Pada pelajaran bahasa asembler kali ini agak unik karena kita akan berusaha menghilangkan setan dari code yang dibuat, codenya kira kira seperti ini
Bila kita lihat dari code yang ada, pada perulangan while terdapat cout setan dan perulangan itu tidak akan berhenti karena nilai dari while selalu true. Nah, tugas kita kali ini adalah menghapus setan dari kode tersebut sehingga program dapat berjalan tanpa setan :D
Oke, mari kita mulai, pertama alat yang kita butuhkan adalah
- OllyDbg
- Aplikasi setan.exe
Setelah download kedua aplikasi tersebut, bukalah aplikasi setan.exe dengan OllyDbg, dan analisa code mainnya
oke, code main aplikasi ini berada pada address 00401108 sampai 0040114D, okay nah sekarang mari kita mencari address dari 3 code yaitu header, setan, dan footernya
Kuncinya disini setiap code header, setan dan footer mempunyai code PUSH 0. jadi jika kamu menemukan code PUSH 0 berati itu adalah awalan dari kode cout. Kalau begitu kita temukan ketiga kode tersebut di address 00401117 (header), 00401123 (setan), dan 00401134 (footer)
Nah, mari kita laksanakan misi kita kali ini, misinya adalah menghilangkan setan yang ada dalam program. Karena kita sudah menetahui lokasi address dari ketiga kode tersebut maka yang kita butuhkan kali ini adalah melompatkan kode. Dalam hal ini yang kita gunakan adalah JMP (Jump), nah karena kita ingin menghilangkan setan maka buatlah kodenya menjadi seperti ini Header(Jump to Footer) - Setan - Footer.
Oke, mari kita laksanakan langkah kita, cari address setelah code akhir dari Header yang kita temukan di 00401120 dengan code ADD ESP,0C dan kita ganti dengan JMP (Address Footer) jadi JMP 00401134. Nah setelah kita asembler kode ini maka kita sudah melompatkan kode dari Header langsung lompat ke footer.
Oke, bila sudah selesai simpan ke dalam bentuk file dan coba dijalankan.maka kita akan mendapatkan tampilan yang tanpa setan
Nah, beginilah caranya melompatkan code, jadi kode setan tidak akan di eksekusi lagi,
Selamat Mencoba :)
#include <iostream> #include <conio> main () { cout<<"Saya Header"; while(true){ cout<<"Saya Setannya"; } cout<<"Saya Footer"; getch(); }
Bila kita lihat dari code yang ada, pada perulangan while terdapat cout setan dan perulangan itu tidak akan berhenti karena nilai dari while selalu true. Nah, tugas kita kali ini adalah menghapus setan dari kode tersebut sehingga program dapat berjalan tanpa setan :D
Tampilan setan, tidak berhenti |
Oke, mari kita mulai, pertama alat yang kita butuhkan adalah
- OllyDbg
- Aplikasi setan.exe
Setelah download kedua aplikasi tersebut, bukalah aplikasi setan.exe dengan OllyDbg, dan analisa code mainnya
Main Section dari Program Setan.exe |
Kuncinya disini setiap code header, setan dan footer mempunyai code PUSH 0. jadi jika kamu menemukan code PUSH 0 berati itu adalah awalan dari kode cout. Kalau begitu kita temukan ketiga kode tersebut di address 00401117 (header), 00401123 (setan), dan 00401134 (footer)
Nah, mari kita laksanakan misi kita kali ini, misinya adalah menghilangkan setan yang ada dalam program. Karena kita sudah menetahui lokasi address dari ketiga kode tersebut maka yang kita butuhkan kali ini adalah melompatkan kode. Dalam hal ini yang kita gunakan adalah JMP (Jump), nah karena kita ingin menghilangkan setan maka buatlah kodenya menjadi seperti ini Header(Jump to Footer) - Setan - Footer.
Oke, mari kita laksanakan langkah kita, cari address setelah code akhir dari Header yang kita temukan di 00401120 dengan code ADD ESP,0C dan kita ganti dengan JMP (Address Footer) jadi JMP 00401134. Nah setelah kita asembler kode ini maka kita sudah melompatkan kode dari Header langsung lompat ke footer.
Oke, bila sudah selesai simpan ke dalam bentuk file dan coba dijalankan.maka kita akan mendapatkan tampilan yang tanpa setan
Tampilan setelah setan di hilangkan |
Selamat Mencoba :)
{ 0 Komentar... read them below or add one }
Posting Komentar