³o¤@³¹±N§Q¥Î MASM64 SDK ©Ò´£¨Ñªº¸ê·½¡A«·s¼¶¼g FIRST_WND1.ASM¡C§A·|µo²{¡A«¼g«áÅܱo§ó¨ã¥iŪ©Ê¡A¤]§ó²³æ¤F¡C¦b»¡©ú¦p¦ó§ï¨} FIRST_WND1.ASM ¤§«e¡A¥ý¤¶²Ð INCLUDE °²«ü¥O¡A²¦³º§ï¨}«áªº²Ä¤@¦æ¡A´N¬O INCLUDE °²«ü¥O¡C
INCLUDE °²«ü¥O¯à±N¥]§tÀɯǤJì©lµ{¦¡¤º¡C¥]§tÀɪº¤º®e¨ä¹ê´N¬O²Õ¦X»y¨¥ì©l½X¡A¨Ã¥B¯à°÷³q¹L²Õ;¹²ÕĶªº¡C·íì©lµ{¦¡¥Î INCLUDE §â¥]§tÀɯǤJ®É¡A´N¬Û·í©ó§â¥]§tÀɪº¥þ³¡¤º®e¶K¦b INCLUDE ©Ò¦b¤§³B¡CINCLUDE ªº»yªk¦p¤U¡G
INCLUDE ¥]§tÀɦWºÙ
¥]§tÀɬO¯Â¤å¦rÀÉ¡A°ÆÀɦW¨Ã¨S¦³µw©Ê³W©w¡A¤@¯ë¬O *.INC¡]«Ü©úÅã¡A¬O include ªºÁY¼g¡^©Î *.MAC¡]¨ã¦³³oºØ°ÆÀɦWªºÀɮפº®e¡A¤j¦h¬O¥¨¶°«ü¥O¡^¡A¦ý¬O¤]¥i¥H¬O¨ä¥L°ÆÀɦW¡C
¥i¯à¦³¤H·|°Ý¡A¬JµM¬O²Õ¦X»y¨¥ì©l½X¡A¦ó¤£ª½±µ¼g¦bì©lµ{¦¡¤º¡A¤Ï¦Ón¦h¦¹¤@Á|©O¡Hì¦]¬O¡A¦pªG»s§@¦¨¥]§tÀÉ¡A«Ü®e©ö¥i¥HÅý¨ä¥Lµ{¦¡¨Ï¥Î¡A¨Ã¥BÁÙ¯à¼W¥[¥iŪ©Ê¡C¨Ò¦p¦b win64.inc ¸Ì«Å§i¤F MB_OK¡BMB_OKCANCEL¡K¡Kµ¥±`¼Æ¡A¥un¥Î INCLUDE §â win64.inc ¯Ç¶i¨Ó¡A¥ô¦óµ{¦¡©I¥s MessageBoxA¡A²Ä¥|ӰѼƴN¥i¥H¨Ï¥Î MB_OK ³o¼Ë¤@¥ØÁAµMªº±`¼Æ¡A¤£¥Î¥h°O¼ÆÈ¡C
³o¤@³¹n§Q¥Î MASM64 SDK ©Ò´£¨Ñªº¥]§tÀÉ¡A«·s¼¶¼g FIRST_WND1.ASM¡A×§ï«áªºì©lµ{¦¡ºÙ¬° FIRST_WND2.ASM¡C
1 2 3 4
5 6 7 8
9 10 11 12
13 14 |
INCLUDE E:\masm64\include64\masm64rt.inc
;*********************************************************************
.CONST
szCaption DB "²Ä¤@ÓWin64µ{¦¡",0
szText DB "³o¬O¥Î²Õ¦X»y¨¥¼gªº64¦ì¤¸µ{¦¡¡C",0
;*********************************************************************
.CODE
;---------------------------------------------------------------------
main PROC
invoke MessageBox,0,ADDR szText,ADDR szCaption,MB_OK
invoke ExitProcess,0
main ENDP
;*********************************************************************
END |
»P FIRST_WND1.ASM ¤ñ¸û°_¨Ó¡Aì©lµ{¦¡¤p¤F«Ü¦h¡A¤£¦Pªº¦a¤è¦³¤U±´X³B¡G
¦pªG§A¶}±Ò masm64rt.inc¡AÆ[¹î¨ä¤º®e¡A·|µo²{«e´X¦æ¬O¡G
OPTION DOTNAME ; required for macro files
option casemap:none ; case sensitive
include \masm64\include64\win64.inc ; main include file
include \masm64\macros64\vasily.inc ; main macro file
include \masm64\macros64\macros64.inc ; auxillary macro file
⁝
includelib \masm64\lib64\kernel32.lib
includelib \masm64\lib64\user32.lib
includelib \masm64\lib64\gdi32.lib
⁝
²Ä¤G¦æ«Å§i¤F¡uoption casemap:none¡v¡F¦Ó«á±´X¦æ¡A«h¬O¸ü¤J¤F¶×¤Jµ{¦¡®w¡C©Ò¥H¡A¦b FIRST_WND2.ASM ¤£»Ýn³]©w°Ï¤À¤j¤p¼g¡B¤]¤£»Ýn¸ü¤J¶×¤Jµ{¦¡®w¡A³£¥Ñ masm64rt.inc ¥N³Ò¤F¡C
¦b¤W± masm64rt.inc ªº²Ä¥|¦æ¡A¸ü¤J¤F win64.inc¡C¦b win64.inc ªº¨ä¤¤¤@¦æ«Å§i¤F¡uMB_OK equ 0h¡v¡A©Ò¥H¡AFIRST_WND2.ASM ¤]¤£»Ý«Å§i MessageBoxA ¥Î¨ìªº MB_OK °Ñ¼Æ¡C¦b win64.inc ¸Ì±¤£¶È¶È¬O«Å§i¤F MessageBoxA ªº°Ñ¼Æ¥i¥H¨Ï¥Îªº±`¼Æ¡A¤]«Å§i¤F¨ä¥L³\³\¦h¦h Win64 API ¥i¥Îªº±`¼Æ¡C
Á¿¤F³o»ò¦h¡A¬Ý¦üÂø¶ÃµL³¹¡A¨ä¹êµ²½×´N¥u¦³¤@¥y¸Ü¡A©¹«á¥Î MASM64 SDK ¼¶¼g²Õ¦X»y¨¥µ{¦¡¡A¥u¶·¦b²Ä¤@¦æ¥[¤W¡uINCLUDE E:\masm64\include64\masm64rt.inc¡v¡A´N¯à¦Û°Ê³]©w°Ï¤À¤j¤p¼g¡B«Å§i¥~³¡ Win64 API¡K¡Kµ¥Âø¨Æ¡A«D±`¤è«K¡C
±µ¤U¨Ó¬Ý¬Ý main ¥Dµ{¦¡¡A¥¦¥Î¨âÓ invoke ´N§¹¦¨©I¥s MessageBox »P ExitProcess¡A¨º»ò invoke ¬O¤°»ò©O¡H
¦b»¡©ú invoke ¤§«e¡A¥ý¨Ó¤F¸Ñ¥¦ªº¾ú¥v¡C¦b·L³nµo°â MASM 6.x ªº®ÉÔ¡A¥¿¬O 16 ¦ì¤¸ªº MS¡ÐDOS §@·~¨t²Î¥\¦¨¨°h¡A32 ¦ì¤¸ªº Windows 95/98 ¹ñÅSÀY¨¤¤§»Ú¡C¨º®Éªº²Õ;¹ºÙ¬° ML.EXE¡A¯à¶}µo 16 ¦ì¤¸ªº MS¡ÐDOS µ{¦¡»P 32 ¦ì¤¸ªº Windows µ{¦¡¡C·L³n¤]¬O¦b¦¹®É¡A§â invoke¡B.if/.elseif/.else/.endif¡B.while/.endw¡K¡Kµ¥°ª¶¥°²«ü¥O¥[¤J¨ì ML.EXE ²Õ;¹¤§¤¤¡A¤§«eª©¥»¨Ã¤£¤ä´©¥¦Ì¡CWin32 API ©I¥sºD¨ÒºÙ¬° STDCALL¡Ainvoke ¶È»Ý¤@¦æ´N¯à©I¥s Win32 API¡Ainvoke µo´§¤F«Ü¦nªº¥\¥Î¡C
¨ì¤F 64 ¦ì¤¸ªº Win64 ®É¥N¡A¶}µo 64 ¦ì¤¸µ{¦¡ªº²Õ;¹¬O ML64.EXE¡A¦ý¬O·L³n¤Ï¦Ó§â invoke µ¥°ª¶¥°²«ü¥O§R±¼¤F¡A©Ò¥H«e´X³¹¸Ì¤~·|¥Î«Ü³Â·Ðªº¤èªk©I¥s Win64 API¡CµM¦Ó¡A³\¦h«e½ú¥ý¶i¨Ã¤£±¡Ä@Åý³o¼Ë¦n¥Îªº«ü¥O®ø¥¢¡A©ó¬Oµo´§¦Û¨¤~¯à¨ÃµL¨pªº©^Äm¡A§Q¥Î ML64.EXE ªº¥¨¶°¥H¤Î±ø¥ó²ÕĶ¡]¥¨¶°¡B±ø¥ó²Õͳ£«Ü½ÆÂø¡A¦b²Ä³¹¦A°µ¤¶²Ð¡^¨Ó¼ÒÀÀ invoke¡AMASM64 SDK ´N¬O¨ä¤¤¤§¤@¡C
MASM64 SDK ¸Ìªº macro64.inc ¦³¤@¤j¬qµ{¦¡½X©w¸q¤F invoke ¥¨¶°¡A¨Ï¥Î¥¦©I¥s¦Û»sªº°Æµ{¦¡©Î Win64 API ®É¡A·|¦Û°Ê½Õ¾ã¼v¤lªÅ¶¡¡A¨Ã¹ï»ô¸`¦ì§}¡A¤]·|¦Û°Ê±N«e¥|ӰѼƦs¤J¹ïÀ³ªº¼È¦s¾¹¤¤¡A²Ä¤Ó¤Î¨ä¥H«áªº°Ñ¼Æ±À¤J°ïÅ|¤¤¡AµM«á°õ¦æ CALL «ü¥O¡A«D±`¤è«K¡Cinvoke ªº»yªk¦p¤U¡G
invoke °Æµ{¦¡¦WºÙ,°Ñ¼Æ¦Cªí
¨Ï¥Î invoke ®É¡A¦³¤@¨Ç¨Æ±¡±oª`·N¡G
¨Ò¦p¦b FIRST_WND2 ¤¤¡A©I¥s MessageBox ¤]¥i¥H¼g¦¨¡G
invoke MessageBox,\
0,\
"³o¬O¥Î²Õ¦X»y¨¥¼gªº64¦ì¤¸µ{¦¡¡C",\
"²Ä¤@ÓWin64µ{¦¡",\
MB_OK
¼g¦¨³oºØ¼Ë¤l®É¡A´N¯à§â¸ê®Æ°Ï¬q¤ºªº szCaption¡BszText ¨â¦r¦ê§R¥h¡C
²´¦yªºÅªªÌ©Î³\¤w¸gµo²{¡A¦b FIRST_WND2.ASM ¸Ì©I¥sªº Win64 API ¨Ã¤£¬O MessageBoxA ©Î MessageBoxW¡A¦Ó¬O MessageBox¡A«ç»ò¦nºÝºÝªº¤S«_¥X¨Ó¤@Ó¦WºÙ«D±`Ãþ¦üªº©O¡H
¨Æ¹ê¤W¡AMSDN ©Î·L³nºô¯¸¹ï Win64 API ªº»¡©ú¡A¨Ã¤£¤À ANSI ª©©Î¼e¦r¤¸ª©¡A³£¬O§â¦r§Àªº¡uA¡v©Î¡uW¡v¥h±¼¡C¨Ò¦p¥Î MessageBox ¥h¥N´À MessageBoxA ©Î MessageBoxW¡C©¹«á¥Î²Õ¦X»y¨¥¼¶¼gÀ³¥Îµ{¦¡¡A¦pªG§â¥]§tÀɯǤJ¡A¤]¤£·|¥[¤W¡uA¡v©Î¡uW¡v¡A³o¬O¦]¬°©¹«á·|¦bì©lµ{¦¡¤¤²K¥[¥]§tÀÉ¡A¨ä¤º·|¦³¤@®MÂà´«¾÷¨î¡A¹³¤U±ªº¼Ë¤l¡G
IFNDEF __UNICODE__ MessageBox equ <MessageBoxA> ENDIF ⁝ IFDEF __UNICODE__ MessageBox equ <MessageBoxW> ENDIF
³o¬qµ{¦¡¸Ìªº IFDEF/ENDIF »P IFNDEF/ENDIF ¬O¥¨¶°«ü¥O¤¤ªº±ø¥ó²ÕĶ¡A¥¦Ìªº»yªk¦p¤U¡G
IFDEF ²Å¸¹
µ{¦¡¤ù¬q
ENDIF
IFNDEF ²Å¸¹
µ{¦¡¤ù¬q
ENDIF
IFDEF ¬O if defined ªº·N«ä¡A¤]´N¬O»¡¡A¦pªG²Å¸¹¤w©w¸q©Î¤w«Å§i¡A´N²Õͧ¨¦b IFDEF »P ENDIF ¤§¶¡ªºµ{¦¡¤ù¬q¡CIFNDEF ¬O if not defined¡A¤]´N¬O»¡¡A¦pªG²Å¸¹¥¼©w¸q©Î¥¼«Å§i¡A´N²Õͧ¨¦b IFNDEF »P ENDIF ¤§¶¡ªºµ{¦¡¤ù¬q¡C©Ò¥H¤W±ªºÂà´«¾÷¨îªº·N«ä¡A¦pªG¨S¦³«Å§i __UNICODE__ ªº¸Ü¡A¨º»ò MessageBox ´Nµ¥©ó MessageBoxA¡F¦pªG¦³ªº¸Ü¡AMessageBox ´Nµ¥©ó MessageBoxW¡C«Å§i __UNICODE__ ªº¤èªk«Ü²³æ¡A¥u»Ýn¤@¦æ¡G
__UNICODE__ EQU 1
¦b FIRST_WND2.ASM ¸Ì¡A¨S¦³«Å§i __UNICODE__¡A©Ò¥H·|§â MessageBox µø¬° MessageBoxA¡C
èè´£¹L invoke ¦³´XÓ§@¥Î¡G·|¦Û°Ê½Õ¾ã¼v¤lªÅ¶¡¡A¨Ã¹ï»ô¸`¦ì§}¡A¯à¦Û°Ê±N«e¥|ӰѼƦs¤J¹ïÀ³ªº¼È¦s¾¹¤¤¡A²Ä¤Ó¤Î¨ä¥H«áªº°Ñ¼Æ±À¤J°ïÅ|¤¤¡AµM«á°õ¦æ CALL «ü¥O¡C©³¤U¥Î x64dbg ¸ü¤J FIRST_WND2.EXE Æ[¹î¬Ý¬Ý¡G
¤W¹Ïµµ¦â®Ø¤ºªº´N¬O FIRST_WND2.EXE ªºµ{¦¡½X¡C²Ä¤@Ó«ü¥O¬O EXTER¡A©³¤U¥ý»¡»¡³oÓ«ü¥O¡C
ENTER «ü¥O¯à²¤Æ«Ø¥ß°ïÅ|®Øªº¤u§@¡A³q±`¬O¶i¤J°Æµ{¦¡ªº²Ä¤@Ó«ü¥O¡A¥¦·|§¹¦¨¥H¤U¤T¥ó¨Æ±¡¡G①§â RBP ±À¤J°ïÅ|¡F②§â RSP ¤§È¦s¤J RBP ùØ¡F③«O¯d°Ï°ìÅܼƪºªÅ¶¡¡C¦³Ãö RBP ¼È¦s¾¹¡B°ïÅ|®Ø¡B°Ï°ìÅܼƪº»¡©úµy«á¤¶²Ð¡A«ØÄ³ÁA¸Ñ¥L̤§«á¡A¥i¥H¦^¨Ó½Æ²ß ENTER «ü¥O¡CENTER ªº»yªk¬O¡G
ENTER ¥ß§YÈ1,¥ß§YÈ2
¥ß§YÈ1¥Nªín¦b°ïÅ|¤W«O¯d¦h¤Ö¦ì¤¸²Õµ¹°Ï°ìÅܼƨϥΡC¦pªG°Æµ{¦¡¨S¦³°Ï°ìÅܼơA¬G¥i¥Î¡uENTER 0,0¡v¡A³o¼Ë´Nµ¥®Ä©ó¡G
push rbp
mov rbp,rsp
¦pªG°Æµ{¦¡¦³¨âÓ¸ê®ÆÃþ«¬¬O QWORD ªº°Ï°ìÅܼơA¦û¥Î¤Q¤»Ó¦ì¤¸²Õ¡A¥i¥Î¡uENTER 16,0¡v¡Aµ¥®Ä©ó¤U±ªº«ü¥O¡G
push rbp
mov rbp,rsp
sub rsp,16
¥ß§YÈ2¥u¯à¬O 0¡ã31 ¤§¶¡ªº¾ã¼Æ¡A¥i¥H¬O 0 ©Î 31¡A¥¦¥Î¨Ó¤ä´©±_ª¬°Æµ{¦¡¡C©Ò¿×±_ª¬°Æµ{¦¡¡]nested procedures¡^´N¬O«ü¤@ӰƵ{¦¡¥Ò¤º¥]§t¥t¤@ӰƵ{¦¡¤A¡A¦Ó¤A¯à°÷¨Ï¥Î¥Òªº°Ï°ìÅܼơC³o¸Ìªº¥]§t°Æµ{¦¡¤A¡A¨Ã¤£¬O©I¥s°Æµ{¦¡¤A¡A¦Ó¬Oì©lµ{¦¡¤¤°Æµ{¦¡¥Ò¸Ì±¤S¦³°Æµ{¦¡¤Aªº·N«ä¡A¦p¤U±µ{¦¡¡G
°Æµ{¦¡¥Ò¡@¡@PROC
⁝
¡@°Æµ{¦¡¤A PROC
⁝
¡@°Æµ{¦¡¤A ENDP
⁝
°Æµ{¦¡¥Ò¡@¡@ENDP
¦b³oºØ±¡§Î¤U¡A°Æµ{¦¡¥Ò¨Ï¥Î¡uENTER xx,0¡v¡A°Æµ{¦¡¤A¨Ï¥Î¡uENTER yy,1¡v¡C³oºØ±_ª¬°Æµ{¦¡¦]¬°¯àŪ¨ú¤W¤@¼h°Æµ{¦¡ªº°Ï°ìÅܼơA·|Åܱo«Ü½ÆÂø¡A¦]¦¹¹³ C »y¨¥´N¸T¥Î³oºØ°Æµ{¦¡¡Aªì¾ÇªÌ»P¦Ñ¤â³£³Ì¦n¤Ö¥Î¡C
LEAVE «ü¥O¨S¦³¹Bºâ¤¸¡A¥¦¬O¥Î¨Ó§R¥h°ïÅ|®Øªº¡A»yªk¬O¡G
LEAVE
LEAVE ªº¹Lµ{«ê¦n»P ENTER ¬Û¤Ï¡G①§â RBP ¤§È¦s¤J RSP ùØ¡F②¦Û°ïÅ|¼u¥X¤@¼ÆÈ¨ì RBP¡CLEAVE ¨Ã¨S¦³¹³ ENTER ¨º¼Ë¦³¡uADD RSP,XX¡vªº¹Lµ{¡A¨Æ¹ê¤W¤]¤£¶·³oÓ¥\¯à¡A¦]¬° LEAVE ·|§âì¨Ó¦s©ó RBP ¤¤ªº°ïÅ|³»¨ú¦^¡A³o¼Ë´N§¹¦¨§R°£°Ï°ìÅܼƪº¥\¯à¤F¡CÁ`¤§¡ALEAVE «ü¥O¬Û·í©ó©³¤U¨âÓ«ü¥Oªº²Õ¦X¡G
mov rsp,rbp
pop rbp
LEAVE ³q±`·|»P ENTER ·f°t¡A¦b°Æµ{¦¡µ²§ô©I¥s RET «ü¥O¤§«e°õ¦æ¡C¹³©³¤Uªº¼Ë¤l¡G
MyFunc PROC
push rbp ;«O¦sªº RBP
mov rbp,rsp ;«Ø¥ß°ïÅ|®Ø
sub rsp,20h ;¤À°t°Ï°ìÅܼƪŶ¡
⁝
leave ;²M²z°ïÅ|®Ø ¡Ý mov rsp,rbp + pop rbp
ret ;ªð¦^¥Dµ{¦¡
MyFunc ENDP
¦³Ãö ENTER/LEAVE «ü¥O¡A¤]½Ð°Ñ¦Ò²Ä³¹ªº»¡©ú¡C
¥H invoke ©I¥s°Æµ{¦¡®É¡A¦pªG¨ä°Ñ¼Æ¬O¬YÓÅܼƩΦr¦ê¦WºÙªº¦ì§}¡A¨º»ò¥²¶·¦b¸ÓÅܼƩΦr¦ê¦WºÙ¤§«e¥[¤W ADDR¡CADDR ¬O±Mªù¥Î©ó invoke ªº°Ñ¼Æ¦Cªí¤¤¡A¨D¥XÅܼƩΦr¦ê¦WºÙªº¦ì§}¡C
¤ñ¸ûì©lµ{¦¡»P¥Î x64dbg ¸ü¤J¥i°õ¦æÀɫ᪺µ{¦¡½X¡A§A·|µo²{¡G
invoke MessageBox,0,ADDR szText,ADDR szCaption,MB_OK
³QÂà´«¬°
mov rcx,0 lea rdx,qword ptr ds:[13F7F2030] lea r8,qword ptr ds:[13F7F2020] mov r9,0 call qword ptr ds:[<MessageBoxA>]
±q³o¨à´N¯àµo²{¡A¨Æ¹ê¤W ADDR ¬O§â¨ä«á©Ò±µªºÅܼƩΦr¦ê¦WºÙ¡A¥Î LEA «ü¥O¨Ó¨D±o¨ä¦ì§}¡C¤]¦]¬°¬O³o¼Ë¡A©Ò¥H¯à±o¨ì¦b°õ¦æ¶¥¬qÅܼƩΦr¦êªº¦ì§}¡C
¤ñ¸û FIRST_WND1.EXE »P FIRST_WND2.EXE ªºµ{¦¡½X¤£¤@¼Ëªº¦a¤è¡A¥i¥H¤jP¬Ý¥X¨Ó masm64rt.inc °µ¤Fþ¨Ç¨Æ¡G
| FIRST_WND1 | FIRST_WND2 |
sub rsp,28
xor rcx,rcx
mov rdx,first_wnd1.7FF72C822030
lea r8,qword ptr ds:[7FF72C822020]
mov r9,0
call qword ptr ds:[<MessageBoxA>]
sub rcx,rcx
call qword ptr ds:[<ExitProcess>]
|
enter 80,0
sub rsp,60
mov rcx,0
lea rdx,qword ptr ds:[13F7F2030]
lea r8,qword ptr ds:[13F7F2020]
mov r9,0
call qword ptr ds:[<MessageBoxA>]
mov rcx,0
call qword ptr ds:[<ExitProcess>] |
¤Wªí¤¤µµ¬õ¦âªº³¡¤À´N¬O¨âªÌªº®t²§¡A¥ªÄ椤¬O§Ú̦ۤv¥Î¤H¤u½Õ¾ãªº¤è¦¡¡A¨Ï¦b©I¥s MessageBoxA «e¡A¹ê²{ªÅ¤U«e¥|ӰѼƪº¼v¤lªÅ¶¡¥H¤Î RSP ¹ï»ô¸`¦ì§}¡A³o¨Ç³£¦b«e¤@³¹¤w¦³¸ÔºÉªº»¡©ú¡C
¥kÄæµµ¬õ¦âªº³¡¤À¡A¬O¥]§tÀÉ masm64rt.inc ©Ò°µªº½Õ¾ã¡C³o¨â¦æ«ü¥O¡A¬Û·í©ó©³¤Uªº¥|¹D«ü¥O¡G
push rbp
mov rbp,rsp
sub rsp,80h
sub rsp,60h
¦P¼Ë¤]¯à¹F¦¨³o¨â¶µ¥Øªº¡A¦ý«o¦³¨âÓ¤£¦Pªº¦a¤è¡G
¤p¤ì°¸±q²Ä¤@³¹¤¶²Ð²Õ¦X»y¨¥°ò¥»µ²ºc¶}©l¡A¨ì²Ä¤G³¹¤¶²Ð°O¾ÐÅé¡B¦ì§}¡B°ïÅ|µ¥°ò¦·§©À¡A²Ä¤T³¹ªº°Æµ{¦¡»P Win64 API¡A³Ì«á¬O¥»³¹§Q¥Î MASM64 SDK ¤j´T²¤Æ¥Î²Õ¦X»y¨¥¼¶¼g Win64 À³¥Îµ{¦¡ªº¹Lµ{¡C©¹«á¤p¤ì°¸©ÒÁ|ªº¨Ò¤l¡A³£·|¥Î MASM64 SDK ¨Ó¼¶¼g Win64 À³¥Îµ{¦¡¡C
¥Î³o®M¤u¨ã¼¶¼g Win64 À³¥Îµ{¦¡¡A¨ä¹ê«Ü²³æ¡A¨BÆJ¦p¤U¡G