x86-64


10 64- - 2


; )

call [MessageBox] ; MessageBox

mov ecx,eax ; ecx

; ( ExitProcess

32-

; mov rcx,rax,

; )

call [ExitProcess] ; ExitProcess

 

;

; (- ,

; , )

section '.data' data readable writeable

 

_caption db 'PENUMBRA is awesome!',0 ; ASCIIZ-

_message db 'Hello World!',0 ; ASCIIZ-

 

;

; ( , PE-

; ; API-)

section '.idata' import data readable writeable

 

dd 0,0,0,RVA kernel_name,RVA kernel_table

dd 0,0,0,RVA user_name,RVA user_table

dd

0,0,0,0,0 ; 64- !!!

 

kernel_table:

ExitProcess dq RVA _ExitProcess

dq

0 ; 64- !!!

user_table:

MessageBox dq RVA _MessageBoxA

dq 0

 

kernel_name db 'KERNEL32.DLL',0

user_name db 'USER32.DLL',0

 

_ExitProcess dw 0

db 'ExitProcess',0

_MessageBoxA dw 0

db

'MessageBoxA',0