Halaman

Rabu, 16 September 2020

TUTORIAL 3: BELAJAR WINDOWS MASM32 ASSEMBLY DAN X64DBG - INTEGER DAN CHAR STRING

 Source code :

Nama file: CharDanNomor


.386                                          ; set instruksi
.model flat, stdcall  ; model memori flat(untuk 32bit windows), calling convention stdcall
option casemap:none                 ; nama fungsi case sensitif
 
include c:\masm32\include\windows.inc
include c:\masm32\include\kernel32.inc
includelib c:\masm32\lib\kernel32.lib
 
STD_OUTPUT_HANDLE equ -11      ;standard output
 
;Seksi/ bagian 1 untuk data yang sudah di inisialisasi
.DATA
                        ;0   1    2     3    4   5     6   7    8    9   10   0
          isi_pesan db 30h, 20h, 31h, 20h, 32h, 20h, 33h, 20h, 34h, 20h, 35h, 20h, 36h, 20h, 37h, 20h, 38h, 20h, 39h, 20h, 31h, 30h ; null terminator string
          panjang_pesan equ $-isi_pesan ; 15 desimal
         
;Bagian 2 data yang belum diketahui
.DATA?
          consoleOutHandle dd ?
          bytesWritten dd ?
         
; Bagian 3 Code program
.CODE
start:
 
          ; saya akan menghindari penggunaan invoke dulu untuk sekarang
          ; karena ini merupakan dasar
         
          push STD_OUTPUT_HANDLE ; masukkan data ke stack, pada kasus ini, ini merupakan parameter fungsi
          call GetStdHandle  ; panggil fungsi, nilai return berada di eax
          mov [consoleOutHandle], eax    ; simpan nilai returnnya 
 
          ;Fungsi WriteConsole memerlukan 5 parameter, menurut MSDN
          push 0                   ; reserved (belum digunakan, hanya cadangan)
          push offset bytesWritten ; karakter yang berhasil ditulis
          push panjang_pesan         ; sesuai deskripsi, panjang karakter pesan
          push offset isi_pesan
          push consoleOutHandle    ; console handle
          call WriteConsole            ; nama fungsi yang dipanggil
         
          push 0                   ; return exit code
          call ExitProcess

          end start

 

File make,

Nama file: set appname=CharDanNomor


if exist %appname%.obj del %appname%.obj
if exist %appname%.exe del %appname%.exe
c:\masm32\bin\ml.exe /c /coff /Zd %appname%.asm
c:\masm32\bin\link.exe /subsystem:console /entry:start %appname%.obj
dir
cmd

pause


Link YouTube:






Tidak ada komentar:

Dasar

TUTORIAL 1 : DASAR BAHASA ASSEMBLY WINDOWS 32bit MASM32 CONSOLE UNTUK PEMULA

Alhamdulillahirabbilalamin, pada saat ini kita semua masih diberi kesempatan untuk terus belajar, kita niatkan mudah-mudahan apa yang kita l...

Postingan Populer