Friday, June 29, 2012

Membuat MessageBox tanpa macro 'the hard way' Part 2

Meneruskan tulisan yang kemarin... bagi yang belum lihat ini linknya...
Membuat MessageBox tanpa macro 'the hard way'

Ternyata user32.dll berada pada urutan ke 8... di bawah modul2 berikut...

ntdll.dll
KERNELBASE.dll
kernel32.dll
msvcrt.dll
USP10.dll
LPK.dll
GDI32.dll
user32.dll

denga itu kita hanya perlu melakukan perulangan sebanyak 8x agar menemukan module user32.dll..., kemudian langkah selanjutnya masih sama seperti kemarin... ^_^


finallly code... :

;Calling MessageBoxA tanpa macro "the hard way"
;by Ayrbyte
;using masm32 Compiler
include \masm32\include\masm32rt.inc

.data
MyTitle db "Testing MessageBoxA by Ayrbyte",0
MyText1 db "Test Messagebox Dengan Macro by Ayrbyte",0
MyText2 db "Test Calling MessageboxA Tanpa Macro by Ayrbyte",0
.code
start:

;--->MessageBox Menggunakan Macro<---

invoke MessageBox, NULL, addr MyText1, addr MyTitle, MB_OK
jmp tanpa_macro

;--->MessageBox Tanpa Macro<---

tanpa_macro:
ASSUME FS:NOTHING
XOR ESI,ESI
XOR ECX,ECX            ; ECX = 0
MOV ESI,FS:[ECX + 30h] ; ESI = &(PEB) ([FS:0x30])
MOV ESI,[ESI + 0Ch]    ; ESI = PEB->Ldr
MOV ESI,[ESI + 1Ch]    ; ESI = PEB->Ldr.InInitOrder
xor ebx,ebx
next_module:
inc ebx
MOV EBP,[ESI + 08h]    ; EBP = InInitOrder[X].base_address
MOV EDI,[ESI + 20h]    ; EBP = InInitOrder[X].module_name (unicode)
MOV ESI,[ESI]          ; ESI = InInitOrder[X].flink (next module)
mov edx,8              ; user32.dll berada di urutan ke 8
CMP ebx,edx;
JNE next_module        ; No: mencoba module berikutnya.
                       ; EBP berisi base address user32
add ebp,1000h          ; offset awal user32.dll
mov eax,5DA71h               
add ebp,eax            ; EBP ditambah 5DA71 agar menjadi offset MessageBoxA
xor edx,edx            ; EDX = NULL / 0
push EDX
push offset MyTitle
push offset MyText2
push EDX
call ebp               ;calling MessageBoxA
ret 0
end start


progam di atas sudah saya test di windows 7 saya..., dan bisa di jalankan meskipun telah di restart berulang kali... ^_^ See You...




No comments:

Post a Comment