Belajar Bahasa Assembler #3

Ditulis oleh robzlabz pada Jumat, 27 April 2012

Kemarin kita telah Belajar bahasa Assembler #1 dan Belajar bahasa Assembler #2. Pada Assembler #1 kita belajar bagaimana cara menghilangkan suatu fungsi dan pada bahasa Assembler 2 kita belajar bagaimana cara memperbanyak loop. Nah pada Belajar Assember 3 kita akan belajar bagaimana mengubah perulangan for yang menggunakan i=i+2 menjadi i++

Mari Download Alat yang kita butuhkan
- OllyDbg
- Program yang akan dibedah NONAME00.exe

Pada program noname00 aku tuliskan code seperti dibawah ini

#include <iostream>
#include <conio>

main () {
 for (int i=0;i<10;i=i+2) {
  cout<<i<<" : :) "<<endl;
   }
   getch();
}

 Nah, jika kode tersebut dijalankan maka akan menghasilkan


Perulangan yang dilakukan adalah, 0, 2, 4, 6, 8. Nah misi kita kali ini adalah membuat perulangan yang dilakukan menjadi 0,1,2,3,4,5,6,7,8,9

Oke, Mari kita mulai petualangan ini :)


Langsung saja buka program ollydbg dan analisa codenya, cari yang memiliki unsur 2 (karena kita akan mengganti 2 menjadi 1)
Oke, coba pelajari code yang kita dapat di program tersebut


Setelah analisa code, didapat code ADD EBX,2. Code tersebut artinya EBX=EBX+2 dan code itulah yang menyebabkan keluaran dalam program ini 0,2,4,6,8. Jika kita ingin menjadikannya outputan lain maka mari kita ubah code tersebut menjadi ADD EBX,1 (EBX=EBX+1)

Double click pada code tersebut dan ganti menjadi ADD EBX, 1


Oke, mari kita simpan kode tersebut dengan cara click kanan - copy to executable - all modifications, pilih copy all
Click Kanan -  Backup -  Save Data to file dan beri nama yang berbeda

Coba jalankan program tersebut dan lihat apa yang terjadi... Boom


Kita berhasil membuat looping dari 0,1,2,3,4,5,6,7,8,9 :)

Catatan : Selain ADD EBX,1 kita juga dapat menggunakan INC EBX (INC adalah singkatan dari Increase yang artinya akan menaikan 1 nilai, seperti i++)

Selamat Mencoba
You Probably Success

{ 0 Komentar... read them below or add one }

Posting Komentar

Label Could

Analisa (1) Assembler (4) c (1) cpp (3) Facebook (7) Fun (2) Galau (6) Hacking (1) Hardware (1) Java (7) JavaScript (4) Komik (10) My Family (1) My Life (14) My Way (8) NFC (1) NFC Hacking (1) Php (1) Program (47) Project (1) Script (1) Technology (1) Visual Basic 6 (2) Visual Basic.NET (4) What The Pufh (12)