Belajar Bahasa Assembler #2

Ditulis oleh robzlabz pada Kamis, 26 April 2012

Pada tutorial sebelumnya di Belajar Bahasa Asembler #1 kita telah belajar bagaimana cara menghilangkan message box, nah  misi kedua kita adalah memperbanyak loop yang terjadi pada file executable

Alat yang kita butuhkan adalah
- OllyDbg
- Program Hello World Perulangan

Oke, download kedua alat tersebut dan coba jalankan Program Helloworld


oke, terlihat program akan menulis "hello world" sebanyak 10x dan program akan berhenti.
Jika program diatas dituliskan dalam code maka kira kira codenya seperti dibawah ini (Coded in C++)

#include <iostream>
#include <conio>

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

Misi kita kali ini adalah membuat perulangan bertambah banyak.

Oke, mari kita analisa program tersebut dengan ollydbg dan kita akan mendapatkan bagian seperti ini


bagian code asm di atas adalah bagian dari sub main dalam program yang telah dibuat
Kembali fokus ke misi kita, kita akan mengubah perulangan yang sebanyak 10x menjadi lebih banyak maka yang pertama kita lakukan adalah menganalisa code tersebut

Fokuskan kosentrasi kamu ke code dibawah ini

Code diats ini adalah code perulangan, bagaimana aku tahu? karena disitu terdapat CMP (Compare) dan JL (Jump if Less)

Logikanya seperti ini, jika CMP EBX, A0 = (EBX A0) maka code akan dilompatkan ke address 00401114 jika tidak maka code akan lanjut.

Nah, lalu dimana yang akan dirubah? tidak ada kata kata 10?
Disini perhitungan kita menggunakan Hexa jadi angka dari desimal di konversikan ke hexa
Jika 10 dalam desimal maka dalam hexa kita akan mendapatkan angka 0A

Nah, karena misi kita adalah memperbanyak loop maka kita akan mengubah code pada CMP EBX, 0A menjadi angka yang lebih banyak

Click kanan pada CMP EBX, 0A dan ganti menjadi 0F


oke, tugas kita selanjutnya adalah finishing

Click Kanan - Copy to executable - All Modification, Pilih Copy All
akan muncul form baru
nah, pada form tersebut click kanan - back up - save data to file


Simpan dengan nama lain, misal NONAME01.exe dan coba jalankan program tersebut

nah, kita akan mendapatkan hasil seperti ini


Perulangan yang dibuat bukan 10x melainkan 0F kali atau 15x perulangan

Selemat 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)