¥~±¾½s¼g§¹¥þ§ð²¤
¥~±¾½s¼g§¹¥þ§ð²¤¤@¡B¥ý»¡¤@¤U¼g¤@Ó¥~±¾»Ýn¤°»ò±ø¥ó
1¡B¼ô½mªºC»y¨¥ª¾ÃÑ
¥Ø«eªº¥~±¾¤j³¡¤À³£¬O¥ÎBC©ÎªÌ¬Ovc¼gªº¡A¾Ö¦³¼ô½mªºC»y¨¥ª¾ÃѬO¼g¥~±¾ªº°ò¥»±ø¥ó
2¡B¨ã¦³«Ü±jªº¶×½s°ò¦ ¤@¯ë´åÀ¸³£¤£¥i¯à¦³ì¥N½Xªº¡A¥²¶·*¤Ï¶×½s©ÎªÌ¸òÂܪº¿ì
ªk¨Ó±´¯Á¨ä¤¤ªº¾÷²z ¡A©Ò¥H¦³±jªº¶×½s°ò¦¤]¬O¥²¤£¥i¤Öªº±ø¥ó
3¡B¼ô½m´x´¤¸òÂÜ©M½Õ¸Õªº¤u¨ã
¦³¤F¤W±2Ó±ø¥ó«á¡A´x´¤¤@¨Ç¤u¨ã¤]¬O«Ü¦³¥²nªº
¸òÂܪº¤u¨ã¡Asoftice·íµM¬O¤£¤G¤§¿ï¡A¦Ü©ó¤Ï¶×½sªº¤u¨ã¡A§Ú±À¯ò¥ÎIDA PRO
³oÓ¤u¨ã¤Ï¶×½s¥X¨Óªº¥N½Xµ²ºc²M´·¡A«D±`¦nŪ
¦pªG§A¤£¨ã¦³¤W±ªº±ø¥ó¡AÁÙ¬O¥ý§â°ò¦¥´¦n¡A¦A¨Ó¼g¥~±¾§a¡A¤@¤À¯Ñ¯Ð¡A¤@¤À¦¬Àò¡A¤Ñ¤U¨S¦³¥Õ±¼ªºÀ`»æªº
¤G¡B¼g¥~±¾±Á{ªº°ò¥»§Þ³N°ÝÃD
1¡B×§ï¶iµ{ªº°õ¦æ¥N½X n×§ï¶iµ{ªº°õ¦æ¥N½X¡An¥ý¨ú±o¶iµ{ªºID,¦pªG¬O¥Ñ¥~±¾µ{§Ç±Ò°Ê¡Aªð¦^Ȩ½´N¦³¶iµ{ID,
¦pªG¤£¬Oªº¸Ü¡A
»Ýn¥Îfindwindow§ä¨ìµøµ¡¥y¬`¡A¦A¥ÎGetWindowProcessID¨ú±o¶iµ{ID,¨ú±o¶iµ{ID¥H«á¡A´N¥i¥H¥Î
writeprocessmemory¨Ó×§ï¶iµ{ªº°õ¦æ¥N½X¤F¡A¨Ïµ{§Ç«ö·Ó§Ú̪º·NÄ@¨Ó°õ¦æ¡A¥Û¾¹¥~±¾¨½ªº¤£¹J¼Ä¡B¤o¨B¹J¼Ä
´N¬O¥Î³o¼Ëªº¤èªk¨Ó¹ê²{ªº
2¡BºIÀò¥~±¾°e¥X©M±µ¦¬ªº«Ê¥]
°£¤F³q¹L×§ï¥N½X¨Ó¹ê²{ªº¥\¯à¥H¥~¡A«Ü¦hªº¥\¯à³£¬O³q¹L×§ï«Ê¥]¨Ó¹ê²{ªº¡An×§ï«Ê¥]¡Aº¥ýn¯àºIÀò¥¦¡C
²Ä¤@¨B¬On¸òÂÜ¥Xµo©M¦¬ªº¦ì¸m¡A¦Ü©ó«ç»ò¸òÂÜ¡A§Ú¥H«á·|´£¨ì¡A§ä¨ì¦ì¸m¥H«á¡A¦³2Ó¿ìªk¡A¤@¬O¦b¨ºÓ¦ì¸m¥[¤@
Ójmp»y¥y¡A¸õ¨ì§Aªº³B²z¨ç¼Æ¦ì¸m¡A³B²z§¹«á¡A¦A¸õ¦^¨Ó¡A³oºØ¤èªkn¨D¤ñ¸û°ª¡A»Ýn³B²z¦n«Ü¦h¨Æ±¡¡A¥t¤@ºØ¿ìªk
¬O©¹¨ºÓ¦ì¸m¼g±ø¯à³y¦¨¨Ò¥~ªº«ü¥O¡A¤ñ¦pint 3,µM«á¥ÎDebugActiveProcess½Õ¸Õ´åÀ¸¶iµ{¡A³o¼Ë¨C·í´åÀ¸°õ¦æ¨ì¨ºÓ
¦ì¸mªº®ÉÔ¡A´N·|°±¤U¨Ó¡A¨ì¥~±¾µ{§Ç¨½±¥h¡Aµ¥¥~±¾µ{§Ç³B²z§¹¥H«á¡A¥ÎContinueDebugEvent Ä~Äò¹B¦æµ{§Ç¡C
¤µ¤Ñ¥ý¼g³o»ò¦h¡A¤U¦^±N°Q½×¥~±¾ªº¨ãÅé¥\¯à¸Ó«ç»ò¹ê²{
¤µ¤Ñ¨Ó½Í½Í¦a§}ªº½Õ¬d°ÝÃD¡A¦a§}½Õ¬d¬O¼g¥~±¾¤¤³ÌÁ}¨¯¡A³Ì´I¦³¬D¾Ô©Êªº¨Æ±¡¡A
«Ü¦hªB¤Í°Ý§Ún¥~±¾ªºìµ{§Ç¡A¨ä¹ê¦³¤F¥~±¾ìµ{§Ç¡A¦pªG§A¤£·|½Õ¬d¦a§}¡AÁÙ¬O
¨S¥Îªº¡A ìµ{§Ç©M¦a§}ªºÃö«Y´N¶HªZ¾Ç¤¤©Û¦¡»P¤º¥\ªºÃö«Y¡A¨S¦³¤º¥\ªº©Û¦¡¡A
¥u¬O¤@Óªá¬[¤l¡C¦Ó¤º¥\ºë²`¥H«á¡A¥ô¦ó´¶³qªº©Û¦¡¡A³£¦³¥i¯à¤Æ»G¦´¬°¯«©_¡A¥~
±¾¤¤ªº¦a§}¤À¬°¨âÃþ¡A¤@Ãþ¬Oµ{§Ç¦a§}¡A¤@Ãþ¬O¸ê®Æ¦a§}¡C¶H¥Û¾¹¤¤ªºÂù¥Û¾¹¡A¯u
±m¡A¤£¹J¼Ä¡A¤o¨B¹J¼Ä¡A°e¥X±µ¦¬«Ê¥]µ¥¡A³£ÄÝ©ó²Ä¤@Ãþ¡A¦Ó¤Hª«§¤¼Ð¡Aª¬ºAµ¥¡A
³£ÄÝ©ó²Ä¤GÃþ¡C¹ï©ó²Ä¤@Ãþ¦a§}¡A¥Dn¨Ì*softice¨Ó½Õ¬d¦a§}¡A¹ï²Ä¤GÃþ¦a§}¡A
¥i¥H¥Î¤@¨Ç´åÀ¸¤u¨ã¡A¤ñ¦pfpe,game expert,game masterµ¥¨Ó½Õ¬d¡A§Ú¤@ª½¥Îgame
expert,¦]¬°§Ú§ä¤£¨ì2000¤U¯à¥Îªºfpe, ¦U¦ì¥H«e¥Îfpe§ï´åÀ¸ªº®ÉÔ¡A¨S·Q¹L¥L
¤]¯à¥Î¨Ó¤z³oÓ§a ¹ï©ó²Ä¤GÃþ¸ê®Æªº½Õ¬d¤èªk¡A¤j³¡¤À¤H³£«Ü¼ô²ß¤F¡A§Ú´N¤£¦h
»¡¤F¡A²{¦b¥Dn¨Ó½Í½Í²Ä¤@Ãþ¸ê®Æªº¸Ô²Ó½Õ¬d¹Lµ{¡A¤ñ¦p§ÚÌn½Õ¬d°e¥X«Ê¥]ªº¦ì
¸m¡A¦p¦óµÛ¤â©O¡A«È¤áºÝ©¹ªA°È¾¹nµo«Ü¦h«Ê¥]¡A¦ý³Ì²³æªº¿ìªk²ö¹L±q»¡¸Üªº«Ê
¥]¤J¤â¡A¥ý»¡¤@¥y«Üªøªº¸Ü¡A³Ì¦n¬O^¤å¡A¬d°_¨Ó¤è«K¡A»¡§¹¥H«á¡A¥Î¥ô·N¤@ºØ¿ì
ªk¶i¤J´åÀ¸µ{§Çªº¶iµ{ªÅ¶¡¡]¤ñ¦p¥ý¥Îspy¬d¥X´åÀ¸µ{§Çªºµøµ¡¥y¬`¡A¦A¤Á´«¨ìsof
tice¥´¤Jbmsg µøµ¡¥y¬` wm_lbuttondown,³o¼Ë¦b´åÀ¸µ{§Ç¤¤¤@ÂI·Æ¹«´N¶i¤J¤F¥L
ªº¶iµ{ªÅ¶¡¡^µM¦Z¥Îs©R¥O¬d¥X³o¥y¸Ü©Ò©ñªº°O¾ÐÅé¦a§}¡A°O¤U³oÓ¦a§}¡A¦bsoftice
¤¤¥´¤Jbpm è¤~½Õ¬d¨ìªº¦a§}¡A³oÓ«ü¥Oªº·N«ä¬O¥un¦³³X°Ý³oÓ°O¾ÐÅ骺°Ê§@¡A¥ß¨è
¤¤Â_¡AµM¦Z¦A¤Á´«¨ì´åÀ¸¡A»¡¤@¥y¸Ü¡A§A·|µo²{softice¦Û°Ê¤¤Â_¨ì¬Y¤@Ó¦ì¸m¤F¡A±q
³oÓ¦ì¸m¸òÂܤU¥h¡A°e¥X«Ê¥]ªº¦ì¸m¤]´N¤£»·¤F¡C ¤W±©Ò»¡ªº³£¬O°w¹ï¤@Ó¥þ·sªº´å
À¸µ{§Ç¦Ó¨¥¡A¦pªG¬O¤@ӦѪºµ{§Ç¡A¦³«e½ú°µ¤F¤j¶qªº¤u§@¡AÁÙ¥i¥H¥Î¨Ç§Oªº¿ìªk¡A
¦p¤Ï¶×½sµ¥¡A¨Ó½Õ¬d¡C¥H¦Z´åÀ¸ª©¥»ªº§ó·s¤]¬O¦p¦¹¡A¥un§â¦Ñª©¥»ªº¦a§}¦ì¸mªþªñªº
¥N½X°O¤U¨Ó¡A¥h·sª©¥»ªº¥N½X¨½±search¤@¤U¡A´Nok¤F¡C ®¦¡A¥ð®§¤@·|¨à¡A¥ð®§¤@·|¨à
§Ú¥Dn¹ï¥~±¾ªº§Þ³N¶i¦æ¤ÀªR,¦Ü©ó´åÀ¸¨½±ªº¤º³¡µ²ºc¨CÓ³£¤£¤@¼Ë,³o¨½´N¤£°µÁ¿¸Ñ¤F,§Ú¤]¨S¦³¨º»ò¼F®`,©Ò¦³ªº³£ª¾¹D,¨þ¨þ!
1 º¥ý´åÀ¸¥~±¾ªºì²z
¥~±¾²{¦b¤À¬°¦n¦hºØ,¤ñ¦p¼ÒÀÀÁä½Lªº,·Æ¹«ªº,×§ï¸ê®Æ¥]ªº,ÁÙ¦³×§ï¥»¦a°O¾ÐÅ骺,¦ý¦n¹³¨S¦³×§ïªA°È¾¹°O¾ÐÅ骺®@,¨þ¨þ!¨ä¹ê×§ïªA°È¾¹¤]¬O¦³¿ìªkªº,¥u¬O§Þ³N¤Ó°ª¤@¯ë¤H¨S¦³¿ìªk¤J¤â¦Ó¤w!(¤ñ¦p½ÐGM¥h©]Á`·|,°e§,¦¬¶Â¿úµ¥µ¥¿ìªk³£¥i¥H×§ïªA°È¾¹¸ê®Æ,«¢«¢)
×§ï´åÀ¸µL«D¬O×§ï¤@¤U¥»¦a°O¾ÐÅ骺¸ê®Æ,©ÎªÌºIÀòapi¨ç¼Æµ¥µ¥,³o¨½§Ú§â©Ò¯à·Q¨ìªº¤èªk³£§@¤@Ó¤¶²Ð,§Æ±æ¤j®a¯à°µ¥X«Ü¦nªº¥~±¾¨Ó¨Ï´åÀ¸¼t°Ó§ó¦nªº§¹µ½¦Û¤vªº§Þ³N.
§Ú¨£¨ì¤@¤ù¤å³¹¬OÁ¿Å]¤OÄ_¨©ªº²z½×¤ÀªR,¼gªº¤£¿ù,¤j·§¬O¨ºÓ¼Ë¤l.
¤U¨Ó§Ú´NÁ¿¸Ñ¤@¤U§Þ³N¤è±ªºªF¦è,¥H§@¤Þ¥É¤§¥Î
2 §Þ³N¤ÀªR³¡¤À
1 ¼ÒÀÀÁä½L©Î·Æ¹«ªºÅTÀ³
§Ṳ́@¯ë¨Ï¥ÎUINT SendInput(
UINT nInputs, // count of input events
LPINPUT pInputs, // array of input events
int cbSize // size of structure
);api¨ç¼Æ
²Ä¤@ӰѼƬO»¡©ú²Ä¤GӰѼƪº¯x°}ªººû¼Æªº,²Ä¤GӰѼƥ]§t¤FÅTÀ³¨Æ¥ó,³oÓ¦Û¤v¶ñ¥R´N¥i¥H,³Ì¦Z¬O³oÓµ²ºcªº¤j¤p,«D±`²³æ,³o¬O³Ì²³æªº¤èªk¼ÒÀÀÁä½L·Æ¹«¤F,¨þ¨þ
ª`·N:³oÓ¨ç¼ÆÁÙ¦³Ó´À¥N¨ç¼Æ:
VOID keybd_event(
BYTE bVk, // µêÀÀÁä½X
BYTE bScan, // ±½ºË½X
DWORD dwFlags,
ULONG_PTR dwExtraInfo // ªþ¥[Á䪬ºA
);©M
VOID mouse_event(
DWORD dwFlags, // motion and click options
DWORD dx, // horizontal position or change
DWORD dy, // vertical position or change
DWORD dwData, // wheel movement
ULONG_PTR dwExtraInfo // application-defined information
);
³o¨âÓ¨ç¼Æ«D±`²³æ¤F,§Ú·Q¨º¨Ç«öÁäºëÆF´N¬O¥Îªº³oÓ§a,¨þ¨þ,¤W±ªº¬O¼ÒÀÀÁä½L,¤U±ªº¬O¼ÒÀÀ·Æ¹«ªº.
³oӶȶȬO¼ÒÀÀ³¡¤À,n©M´åÀ¸Áp¨t°_¨Ó§ÚÌÁÙ»Ýn§ä¨ì´åÀ¸ªºµøµ¡¤~¦æ,©ÎªÌ¥]§t§Ö±¶Áä,´N¶H«öÁäºëÆFªº¨ºÓ¿E¬¡Áä¤@¼Ë,§ÚÌ¥i¥H¥ÎGetWindow¨ç¼Æ¨ÓªTÁ|µøµ¡,¤]¥i¥H¥ÎFindwindow¨ç¼Æ¨Ó·j´M¨î©wªºµøµ¡(ª`·NÁÙ¦³¤@ÓFindWindowEx),FindwindowEx¥i¥H§ä¨ìµøµ¡ªº¤lµøµ¡,¤ñ¦p«ö¶s,µ¥¤°»òªF¦è.·í´åÀ¸¤Á´«³õ´ºªº®ÉÔ§ÚÌ¥i¥H¥ÎFindWindowEx¨Ó½T©w¤@¨Ç·í«eµøµ¡ªº¯S©º,±q¦Ó§PÂ_¬O§_ÁÙ¦b³oÓ³õ´º,¤èªk«Ü¦h¤F,¤ñ¦p¥i¥HGetWindowInfo¨Ó½T©w¤@¨ÇªF¦è,¤ñ¦p·í·j´M¤£¨ì¬YÓ«ö¶sªº®ÉÔ´N»¡©ú´åÀ¸³õ´º¤w¸g¤Á´«¤F,µ¥µ¥¿ìªk.¦³ªº´åÀ¸¨S¦³±±¥ó¦b¨½±,³o¬O¹ï¹Ï¹³°µ§¤¼ÐÅÜ´«ªº¸Ü,³oºØ¤èªk´Nn¨ü¨ì¨î¤F.³o´N»Ýn§Ú̥ΧOªº¿ìªk¨Ó»²§U¤ÀªR¤F.
¦Ü©ó§Ö±¶Áä§ÚÌn¥Î°ÊºA³s±µ®w¹ê²{¤F,¨½±n¥Î¨ìhook§Þ³N¤F,³oÓ¤]«D±`²³æ,¤j®a¥i¯à³£·|¤F,¨ä¹ê´N¬O¤@Ó¥þ§½ªºhook¹ï¶HµM¦ZSetWindowHook´N¥i¥H¤F,¦^½Õ¨ç¼Æ³£¬O²{¦¨ªº,¦Ó¥B²{¦bºô¤Wªº¨Ò¤l¦h¦p¤û¤ò,³oÓ¹ê²{¦b¥~±¾¤¤¤w¸g«Ü´¶¹M¤F.¦pªGÁÙ¦³½Ö¤£©ú¥Õ,¨º´N¥h¬Ý¬Ýmsdn·j´MSetWindowHook´N¥i¥H¤F.
³oӰʺA³s±µ®wªº§@¥Î«Ü¤j,¤£n§C¦ô¤F®@,¥¦¥i¥H¤Á¤J©Ò¦³ªº¶iµ{ªÅ¶¡,¤]´N¬O¥i¥H¥[¸ü¨ì©Ò¦³ªº´åÀ¸¨½±®@,¥un¥Î¹ï,§A·|µo²{«Ü¦³¥Î³~ªº!
³oÓ»Ýn§A´_²ß¤@¤Uwin32µ{¦¡¤Æªº°ò¦ª¾ÃѤF,¨þ¨þ,»°§Ö¥h¬Ý®Ñ§a!
2ºIÀò®ø®§
¦³¨Ç´åÀ¸ªºÅTÀ³¾÷¨î¤ñ¸û²³æ,¬O°ò©ó®ø®§ªº,©ÎªÌ¥Î¤°»ò©w®É¾¹ªºªF¦è,³oÓ®ÉÔ§A´N¥i¥H¥ÎÄdºI®ø®§¨Ó¹ê²{¤@¨Ç¦³½ìªº¥\¯à¤F.
§ÚÌÄdºI®ø®§¨Ï¥Îªº¤]¬Ohook§Þ³N,¨½±¥]¬A¤FÁä½L®ø®§,·Æ¹«®ø®§,¨t²Î®ø®§,¤é§Óµ¥,§Oªº¹ï§Ų́S¦³¤°»ò¤jªº¥Î³B,§ÚÌ¥u¥ÎÄdºI®ø®§ªº¦^½Õ¨ç¼Æ´N¥i¥H¤F,³oÓ¤£·|Åý§Ú¼g¨Ò¤l§a,¨ä¹ê³oÓ©M¤W±ªº¤@¼Ë,³£¬O¥ÎSetWindowHook¨Ó¼gªº,¬Ý¬Ý´N©ú¥Õ¤F«Ü²³æªº.
¦Ü©óÄdºI¤F¥H¦Z°µ¤°»ò´N¬O§Aªº¨Æ±¡¤F,¤ñ¦p¦b¨CÓ©w®É¾¹®ø®§¨½±³B²z¤@¨Ç§Ú̪º¸ê®Æ§PÂ_,©ÎªÌ¦b©w®É¾¹¨½±¦b¼ÒÀÀ¤@¦¸©w®É¾¹,¨º»ò¦³¨Ç¸ê®Æ´N·|³B²z¨â¦¸,¨þ¨þ,¦ZªG¹À,¤£¤@©w¬O¦n¨Æ±¡®@,¨þ¨þ,¤£¹L¦pªG¸ê®Æpºâ©ñ¦b«È¤áºÝªº´åÀ¸´N¥i¥H¯uªº§ïÅÜ¸ê®Æ¤F,¨þ¨þ,¸Õ¸Õ¬Ý§a!¥Î³~ÁÙ¦³«Ü¦h,¦Û¤v·Q¤]¥i¥H·Q¥X¨Óªº,¨þ¨þ!
3ÄdºIsocket¥]
³oÓ§Þ³NÃø«×n¤ñì¨Óªº°ª«Ü¦h®@,n¦³«ä·Q·Ç³Æ.
º¥ý§ÚÌn´À´«winSock.dll©ÎªÌwinsock32.dll,§Ú̼gªº´À´«¨ç¼Æn©Mì¨Óªº¨ç¼Æ¤@P¤~¦æ,´N¬O»¡¥¦ªº¨ç¼Æ¿é¥X¤°»ò¼Ëªº,§Ṳ́]n¿é¥X¤°»ò¼Ë¤lªº¨ç¼Æ,¦Ó¥B°Ñ¼Æ,°Ñ¼Æ¶¶§Ç³£n¤@¼Ë¤~¦æ,µM¦Z¦b§Ú̪º¨ç¼Æ¨½±½Õ¥Î¯u¥¿ªºwinSock32.dll¨½±ªº¨ç¼Æ´N¥i¥H¤F
º¥ý:§ÚÌ¥i¥H´À´«°ÊºA®w¨ì¨t²Î¸ô®|
¨ä¦¸:§ÚÌÀ³¥Îµ{§Ç±Ò°Êªº®ÉÔ¥i¥H¥[¸ü즳ªº°ÊºA®w,¥Î³oÓ¨ç¼ÆLoadLibary
µM¦Z©w¦ì¨ç¼Æ¤J¤f¥ÎGetProcAddress¨ç¼ÆÀò±o¨CÓ¯u¥¿socket¨ç¼Æªº¤J¤f¦a§}
·í´åÀ¸¶i¦æªº®ÉÔ¥¦·|½Õ¥Î§Ú̪º°ÊºA®w,µM¦Z±q§Ú̪º°ÊºA®w¤¤³B²z§¹²¦¦Z¤~¸õÂà¨ì¯u¥¿°ÊºA®wªº¨ç¼Æ¦a§},³o¼Ë§ÚÌ´N¥i¥H¦b¨½±³B²z¦Û¤vªº¸ê®Æ¤F,À³¸Ó¬O¤@¤Á¸ê®Æ.¨þ¨þ!
¿³¾Ä§a,ÄdºI¤F¸ê®Æ¥]§ÚÌÁÙn¤ÀªR¤§¦Z¤~¯à¶i¦æ¥¿½TªºÀ³µª,¤£n¥H¬°³o¼Ë¤u§@´N§¹¦¨¤F,¨þ¨þ!ÁÙ¦©O,µ¥¤ÀªR§¹²¦¥H¦Z§ÚÌÁÙn¥é¯uÀ³µª¾÷¨î¨Ó©MªA°È¾¹³q«H,¤@Ó¤£¤p¤ß´N·|³Q«Ê¸¹,¨þ¨þ,¶ã~~~~~~~~§Ú´N³Q«Ê¤F¦n¦h°Ú!
¤ÀªR¸ê®Æ¤~¬O¤u§@¶qªº¨Ó·½©O,´åÀ¸¨C¦¸ª@¯Å¦³¥i¯à¥[±K¤è¦¡·|¦³©Ò§ïÅÜ,¦]¦¹§Ú̼g¥~±¾ªº¤H³£¬O¤`©R¤§®{°Ú,³Q¤H®T¼Ö¤FÁÙ¤£ª¾¹D,¨þ¨þ!(Án©ú§Ú¥i¨S¦³ÁÈ¿ú,§Ú¬O§K¶Oªº)
¦n¤F,µ¹¤j®a¤@Ó¤£¿ùªº°_ÂI,³o¨½¦³§¹¾ãªº´À´«socket·½¥N½X,¨þ¨þ!
4ºIÀòapi
¤W±ªº§Þ³N¦pªG¥i¥HÆF¬¡¹B¥Îªº¸Ü§ÚÌ´N¤£¥ÎºIÀòapi¨ç¼Æ¤F,¨ä¹ê³oºØ§Þ³N¬O¤@ºØ¸É¥R§Þ³N.¤ñ¦p§ÚÌ»ÝnºIÀòsocket¥H¥~ªº¨ç¼Æ§@¬°§Ú̪º¥Î³~,§ÚÌ´Nn¥Î³oÓ§Þ³N¤F,¨ä¹ê§Ṳ́]¥i¥H¥Î¥¦ª½±µÄdºI¦bsocket¤¤ªº¨ç¼Æ,³o¼Ë§óª½±µ.
²{¦bÄdºIapiªº±Ðµ{¨ì³B³£¬O,§Ú´N¤£¦CÁ|¤F,§Ú¥Îªº¤ñ¸û²ßºDªº¤èªk¬O®Ú¾Ú¿é¤J¸`¶i¦æÄdºIªº,³oÓ¤èªk¥i¥H¥Î¨ì¥ô¦ó¤@ºØ¾Þ§@¨t²Î¤W,¤ñ¦p98/2000µ¥,¦³¨Ç¤èªk¤£¬O¸ó¥¥xªº,§Ú¤£«ØÄ³¨Ï¥Î.³oÓ§Þ³N¤j®a¥i¥H°Ñ¦Òwindows®Ö¤ßµ{¦¡¤Æ¨½±ªº545¶¶}©lªº¤º®e¨Ó¾Ç²ß,¦pªG¬O98¨t²Î¥i¥H¥Îwindow¨t²Î¶ø¯¦¨ºÓ³Ì¦Z¤@³¹¨Ó¾Ç²ß.
¦n¤F¤èªk´N¬O³o»ò¦h¤F,¬Ý¤j®a«ç»ò¹B¥Î¤F,¨ä¥¦ªº¤@¨Ç°w¹ï©Êªº§Þ¥©³o¨½§Ú´N¤£»¡¤F,n¤£µM·|¦³¤H±þ¤F§Úªº,¨þ¨þ!
°O¦í¨CÓ´åÀ¸ªº×§ï¤èªk³£¤£¤@¼Ë,¦pªG¬YÓ´åÀ¸¸ê®Æ³B²z¥þ³¡¦bªA°È¾¹ºÝ,¨º»ò§AÁÙ¬O§O¼g¥~±¾¤F,¨þ¨þ,³Ì¦h¼gӦ۰ʨ«¸ôªº¥~±¾,«¢«¢!
¸ê®Æ¤ÀªRªº®ÉÔ¤j®a¤@©wnª`·N,¤£n»´©ö¹Á¸Õ©MªA°È¾¹ªº³s±µ,¦]¬°¨º¦³«Ü¦MÀI,¤Á§Ò!µ¥§A´x´¤¤F¤j¶qªº¸ê®Æ¤ÀªRµ²ªG¥H¦Z,¤ñ¸û¦³§â´¤¤F¦b¸Õ¸Õ,¬Ý¬Ý§Aªº¹B®ð¦n¤£¦n,«Ü¦³¥i¯à·|¦¨¥\ªº®@,¨þ¨þ!
¨ä¹ê¹³ºôª÷¤]ºÆ¨gªº¨ººØ¼ÒÀÀ«È¤áºÝªºµ{§Ç¤]¬O¤£¿ùªº,«Ü¾A¦Xofficeªº¤H¥Î,´N¬Ý¤j®a²£«~©w¦ì¤F.
¦n¤F¤£»¡¤F,¤j®a§V¤O§a!¤Á§Ò¤£n³Q´åÀ¸¼t°Ó©Û¦w®@,¨º¼Ë¦³·l§Ú̪º§Î¶H,§Ú̬O¬°¤FÅý´åÀ¸°µªº§ó¦n¦Ó¶}µoªº,¤]¤£Ä@·N¥´¶Ã´åÀ¸ªº¥¿Å,«u,¦n¹³²{¦b¤£¬O³o¼Ë¤F!¤£»¡¤FÀH¨ä¦ÛµM§a!
98¤U¬O¥i¥Hªº¡A¦ý¨ì¤F2000®É¥N¡A¤£¦P¶iµ{¶¡¤£¤¹³\¤¬¬Û³X°Ý¤F¡A¡G¡]
°¸§ä¤F½g¤å³¹¡A¦³ÂI°Ñ¦Ò©Ê¡A¦p¤U¡G
===================================================
§Q¥Î·Æ¹«¹_¤lÀò±oWin2000±K½X®Ø±K½X
Àò±oWindows¤Uªº±K½X®Ø±K½X¡A¦ü¥G¬O«Ü¦h¤H·P¿³½ìªº¸ÜÃD¡ACSDN¤W°Ý³oÃþ°ÝÃDªº¤H¤£p¨ä¼Æ¡K¡K³o¼Ë¬Ý¨Ó¡A¦Ñù¤]¤£¯à§K«U°Õ¡A¤µ¤Ñ´NÅý§Ú¸ò¤j®a±´°Q¤@¤U¦p¦ó¹ê²{³o¤@¥\¯à§a¡C^_^
§Ú̪¾¹D¡AWindows¤U¦³¤@±ø¥\¯à«Ü±j«lªº¨ç¼Æ¡X¡XSendMessage()¡A§Q¥Î¥¦¯à°÷¹ê²{«Ü¦h·N·Q¤£¨ìªº¥\¯à¡A¨Ò¦pÀò±o±K½X®Øªº±K½X´N¬O¨ä¤¤¤@¨Ò¡C§ÚÌ¥i¥H³o¼Ë°µ¡G
char szPsw[255];
SendMessage(hWnd, WM_GETTEXT, 255, (LPARAM)(LPCTSTR)szPsw);
³q¹L°e¥X®ø®§ WM_GETTEXT µ¹¥Ø¼Ðµøµ¡¥y¬`¡A§ÚÌ´N¯à°÷Àò±o±K½X®Øªº±K½X¤F¡A¥i¬O¥¦ÁÙ¦³¤@ÂI¤£¨¬¡A´N¬OµLªk¦b Win2000/WinXP ¨½±Àò±o±K½X¡C³o¬O¦]¬° Win2000 ¹ï³oÓ¤èªk§@¤F¨¾½d¡]·íµM°Õ¡A¦Ñ¤ñ¦]¬°³oÓ°ÝÃD¤w¸g·~¬É³Q½|¦º¤F¡^¡A¥un§A¬O¹ï¨ä¥L¶iµ{¶i¦æ³oÓ¾Þ§@¡A´N·|¥¢®Ä¡C¨þ¨þ¡A³o¤]´N¬O¬°¤°»ò«Ü¦h¦PÃþªº³nÅé¨ì¤F Win2000 ´N¦ºÂ¼Â¼ªºì¦]¡C ¡G¡^
¨º»ò¬O§_´N²@µL¿ìªk¤F©O¡H·íµM¤£¬O¡I§Ṳ́w¸gª¾¹D¤F¥¢±Ñªºì¦]¡A´N¬O¤£¯à¦b§Oªº¶iµ{¤¤¨Ï¥Î³o¤@¨ç¼Æ¡K¡K¶â¡H¡K¡KÁo©úªº§A¬O¤£¬O¤w¸g·Q¨ì¤F¤°»ò¡H
¹ï¤F¡A¥un§Ú̯à°÷¦b¦P¤@Ó¶iµ{¤¤¨Ï¥Î¥¦¡A´N¥i¥H¹ê²{¤F¡I¦p¦ó°µ¨ì¡§¦P¤@Ó¶iµ{¡¨¡H¨þ¨þ¡A³o¤S¬O¤@Ó°ÝÃD¡C¡mWindows®Ö¤ßµ{¦¡¤Æ¡nªº¤j¤û Jeffrey Richter §i¶D§ÚÌ¡A¹ê²{¡§¦P¤@¶iµ{¡¨ªº¿ìªk¦³«Ü¦hºØ¡A¨Ò¦p¦³³q¹Lª`¥Uªí¨Ó´¡¤JDLL¡B¨Ï¥Î»·µ{½uµ{´¡¤JDLL¡B¨Ï¥Î¯S¬¥¥ìDLL¨Ó´¡¤JDLL¡B³q¹L°O¾ÐÅé¬M®g¤å¥ó´¡¤JDLL¡K¡K¤èªk¯uªº¬O¦³«Ü¦hºØ¡A¥¦Ì³£¯à¹ê²{¡§¦P¤@Ó¶iµ{¡¨³o¤@¥Øªº¡A¤£¹L¦Ñùı±o³£¤£¤Ó²z·Q¡A¨Ò¦p¡A¨Ï¥Î»·µ{½uµ{¬O³q¹L CreateRemoteThread() ¨Ó´¡¤JDLL¡A¦ý¬O³oÓ CreateRemoteThread() ¦bMSDN¤¤¬O©ú½T«ü¥X¤F¤£¯à¦b Win9X ¤¤¨Ï¥Îªº¡A¤]´N¬O»¡¡A³q¥Î©Ên¤j¥´§é¦©¡C©Ò¥H³Ì¦Z§Ú¨M©w¨Ï¥Î·Æ¹«¹_¤l¨ç¼Æ¨Ó¹ê²{¡I
Áo©úªºÅªªÌ¥i¯àÁÙ·|°Ý¹D¡G¬°¤°»ò¥Î·Æ¹«¹_¤l´N¯à¹ê²{¤F¡H¨ä¹êµª®×«Ü²³æ¡A¦]¬°±K½X®Ø¬O¤@Ó EDIT ±±¥ó¡A¥¦ªÖ©w¯à°÷±µ¦¬¨ì·Æ¹«®ø®§¡A³o¼Ë¡A§Ú̪º·Æ¹«¹_¤l¨ç¼Æ´N¯à°÷ª`¤J¨ì»·µ{ªº¥Ø¼Ð¶iµ{¡A³o®Éªº SendMessage() ´N¬O¸ò¥Ø¼Ð¶iµ{¦b¦P¤@Ó¶iµ{¨½±¡A¬O¥i¥H¨ú¥X±K½Xªº¡C¦Ó¥B¥¦¦³Ó«D±`¦nªº¦a¤è¡G´N¬O³q¥Î©Ê±j¡A²z½×¤W¥ô¦ó¤@Óª©¥»ªº Windows ³£¯à¨Ï¥Î¡I¡I¡]§Ú¨S¦³ WinXP ¡A©Ò¥H¥u¦n»¡¡§²z½×¤W¡¨°Õ¡A½Ð¦³¸Ë XP ªºªB¤ÍÀ°¦£¸Õ¸Õ¡AOK¡H¡^
©ú¥Õ¤F§a¡H³Ì¦ZÁÙ¦³¤@Ó²Ó¸`°ÝÃD¡X¡X±K½X¬O¦b·Æ¹«¹_¤l¨ç¼Æ¨½±Àò±oªº¡A¨º»ò¦p¦óªð¦^µ¹§Ú̪º¥Dµ{§Ç¡H¦Ñùªº°µªk¬O§â±K½X§@¬°¥þ§½¦@¨ÉÅܶq¡A³o¼Ë´N¥i¥H¦b¨âÓ¶iµ{¨½±¦@¨É¡A§Ú̪º¥Dµ{§Ç´N¥i¥H¿é¥Xµ²ªG°Õ¡I
»¡¤F¤@¤j³q¼o¸Ü¡A§Æ±æ¤j®a¤£n¤¶·N¡C¤U±§Úµ¹¥X¤@Ó§¹¾ãªº¨Ò¤l¡A³q¹L·Æ¹«¹_¤l¨ç¼Æª`¤J»·µ{¶iµ{Àò±o¥ô¦ó¤@Óª©¥» Windows ªº±K½X®Ø±K½X¡C¡]¨þ¨þ¡A¦n©í¤f°Ú¡I°Ú¡I§O¥µµfX¡I¡I¡^
---------- ·Æ¹«¹_¤l¨ç¼ÆªºDLL ----------
¤å¥ó¦W¡G HookDll.asm
--------------------------------------
;******************************************************
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
DllEntry proto :HINSTANCE, WORD, WORD
MouseProc proto WORD, WORD, WORD
GetPsw proto
InstallHook proto WORD
UninstallHook proto
.const
WM_MOUSEHOOK equ WM_USER + 6
;¦@¨É¬q¡G
.data?
hHook dd ?
hWnd dd ?
szPsw db 255 dup(?) ;ÃöÁä»y¥y¡I¡I¡I¦@¨É³oÓÅܶqszPsw¡A¥H«K¦b¥Dµ{§Ç¤¤¤]¯à±o¨ì±K½X¡I
.data
hInstance HINSTANCE 0
.code
DllEntry proc hInst:HINSTANCE, reasonWORD, reserved1WORD
.if reason == DLL_PROCESS_ATTACH
push hInst
pop hInstance
.endif
mov eax, TRUE
ret
DllEntry endp
GetPsw proc
;ÃöÁä¡I¡Iªð¦^±K½X¡I¡]«e´£¬O±K½X¥²¶·©ñ¦b¦@¨É¬q¡I¡^
lea eax, szPsw
ret
GetPsw endp
MouseProc proc uses edx nCodeWORD, wParamWORD, lParamWORD
invoke CallNextHookEx, hHook, nCode, wParam, lParam
mov edx, lParam
assume edx: PTR MOUSEHOOKSTRUCT
;Àò±o·í«e·Æ¹«¦ì¸mªºµøµ¡¥y¬`¡G
invoke WindowFromPoint, [edx].pt.x, [edx].pt.y
;°e¥X¤@Ó®ø®§µ¹·í«eµøµ¡¡AÀò±o¥¦ªº¼ÐÃD¡G
invoke SendMessage, eax, WM_GETTEXT, 255, addr szPsw
;°e¥X¤@Ó®ø®§µ¹¥Dµ{§Ç¡A¥H«K¦b¥Dµ{§Ç¤¤¯à³B²z·Æ¹«¹_¤l¨ç¼Æ¡G
invoke PostMessage, hWnd, WM_MOUSEHOOK, 0, 0
assume edx: nothing
xor eax, eax
ret
MouseProc endp
InstallHook proc hwndWORD
;±Ò°Ê·Æ¹«¹_¤l¨ç¼Æ¡G
push hwnd
pop hWnd
invoke SetWindowsHookEx, WH_MOUSE, addr MouseProc, hInstance, NULL
mov hHook, eax
ret
InstallHook endp
UninstallHook proc
;¨ø¸ü·Æ¹«¹_¤l¨ç¼Æ¡G
invoke UnhookWindowsHookEx, hHook
ret
UninstallHook endp
end DllEntry
;******************** over ********************
;by LC
½sͳoÓDLLªº®ÉÔ°O¦ín³o¼Ë¡G¡]§_«h·|¥¢±Ñ®@¡I¡^
ml /c /coff HookDll.asm
link /section:.bss,S /DLL /subsystem:windows /def:HookDll.def HookDll.obj
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include HookDll.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib HookDll.lib
WndProc proto WORD, WORD, WORD, WORD
.const
IDC_EDIT_OUTPUT equ 3000
WM_MOUSEHOOK equ WM_USER + 6
.data
szDlgName db "lc_dialog", 0
szPsw db 255 dup(0)
.code
main:
invoke GetModuleHandle, NULL
invoke DialogBoxParam, eax, offset szDlgName, 0, WndProc, 0
invoke ExitProcess, eax
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
LOCAL rect: RECT
.if uMsg == WM_CLOSE
;¨ø¸ü·Æ¹«¹_¤l¡G
invoke UninstallHook
invoke EndDialog, hWnd, 0
.elseif uMsg == WM_INITDIALOG
;Àò±o¥Dµ{§Çªºrect¡G
invoke GetWindowRect, hWnd, addr rect
;§â¥Dµ{§Ç³]¸m¦¨¡§©l²×¦b³Ì«e±¡¨¡G
invoke SetWindowPos, hWnd, HWND_TOPMOST, rect.left, rect.top, rect.right, rect.bottom, SWP_SHOWWINDOW
;·Æ¹«¹_¤l¨ç¼Æ±Ò°Ê¡G
invoke InstallHook, hWnd
;³B²z·Æ¹«¹_¤l¨ç¼Æªº®ø®§¡G
.elseif uMsg == WM_MOUSEHOOK
;Àò±o±K½X¡G
invoke GetPsw
;¿é¥X¡G
invoke SetDlgItemText, hWnd, IDC_EDIT_OUTPUT, eax
.else
mov eax, FALSE
ret
.endif
mov eax, TRUE
ret
WndProc endp
end main
;******************** over ********************
;by LC
---------- ¥Dµ{§Çªº¸ê·½¤å¥ó ----------
¤å¥ó¦W¡G GetPsw.rc
-------------------------------------
#include "resource.h"
#define IDC_EDIT_OUTPUT 3000
#define IDC_STATIC -1
LC_DIALOG DIALOGEX 0, 0, 195, 30
STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Get Password by LC, 2002-10-8"
FONT 9, "§ºÅé", 0, 0, 0x0
BEGIN
LTEXT "¬Ý¬Ý¦³¤°»ò¡G", IDC_STATIC, 5, 12, 50, 12
EDITTEXT IDC_EDIT_OUTPUT, 60, 10, 130, 12, ES_AUTOHSCROLL | NOT WS_BORDER, WS_EX_STATICEDGE
END
«ç»ò¼Ë¡H¬Ý©ú¥Õ¤F¶Ü¡H¦pªG§AÁÙ¤£¤ÓÀ´±o·Æ¹«¹_¤l¨ç¼Æªº½s¼g¡A½Ð¥ý°Ñ¦Ò Iczelion ªº±Ðµ{¡A¨ì³B³£¦³®@¡I°²¦pÁÙ¦³¤°»òºÃ°Ý¡A¨º¬O
-------------------------------------------------------------------------------
¨ä¤¤ºôµ¸«Ê¥]ªºÄdºI·½¥N½X¥i¥H§@¬°¬O§Úªº´åÀ¸¥~±¾¤ÀªR¨º½g¤å³¹ªº¨Ò¤lÁ¿¸Ñ§a¡C«Ê¥]ªº¤ÀªRn¬Ý¸gÅç¤F¡A³o¨½¤£¦n¦hÁ¿¡A¦pªG¥J²Ó¤ÀªRªº¸Ü¥i¯à·|Á¿1000¶¥H¤Wªº¤º®e¡A¤@¯ëªº¤ÀªR¤j®a¥i¥H¥Î³q¥Î¥[±K©M¸Ñ±Kºâªk¨Ó¸Õ¸Õ¡A¦pªG¤£¦æªº¸Ü¨º´N¬O°Ó®a¦Û¤vªº¥[±Kºâªk¡A³o´N¤ñ¸ûÃø¿ì¤F¡A®Ú¾Ú¸gÅç¦Û¤v¸Õ¸Õ§a¡A¤ñ¦p¦P®É©ñ¤jÁY¤p¸ê®Æ¡A¬Ý¬Ý¦³¨S¦³¤Ç°t¦r²Å¦ê¡A²§©Î¤@Ó¦Û¤vªº½s½X®wµ¥µ¥¡A¬d¬Ý¦³¨S¦³©ú¤åµ²ªG¡AÁ`¤§³o¨Ç³£¬O«D±`ÀH¾÷ªº¡A©Ò¥H§A¤ÀªR¥X¨Ó¤F¤@Ó¡A¦ý¤£¤@©w¥i¥H¤ÀªR¥X¥t¥~¤@Óªº¡A¨þ¨þ¡I¯¬¤j®a¦n¹B¡I¡I
[DISABLELBCODE]
[size=4][color=#ff0000]´åÀ¸¥~±¾¤ÀªR
[/color][/size]¥Û¾¹ \ MU©MÅ]¤O·|¥X²{¶¶²¾¥~±¾¡A¬O¦]¬°¥¦ªº²¾°Ê®ø®§¾÷¨î¬O«È¤áºÝª½±µ¦VªA°È¾¹³ø§i¦Û¤v·s§¤¼Ð©M¤Hª«¤è¦V¡A«È¤áºÝ¤S¤£¬O¨C¨«¤@¨B¶×³ø¤@¦¸¡A¦Ó¬O¹F¨ì¤@©w®É¶¡¶×³ø¤@¦¸¡A¥i¯à¬O¤@¬í¤@¦¸§a¡C¥¿±`±¡ªp¤U¡A¨C¬í³Ì¤j¥i¨«¤T¨B¡A¶¶²¾¥~±¾ª½±µ¦VªA°È¾¹°e¥X·s§¤¼Ð´N¥i¥H¤F¡C¥H«e¥Û¾¹ªºªA°È¾¹®Ú¥»¤£Àˬd¨â¦¸§¤¼Ðªº¶ZÂ÷®t¡A©Ò¥H¯à¤j¶¶²¾¡C¦Z¨Ó¤j·§×§ï¤F¥N½X¡A·s§¤¼Ð¦pªG»P§¤¼Ð¶ZÂ÷¶W¹L3´Nµø§@¥~±¾¡A¥ß§YÂ_½u¡C¦ý3¨B¶¶²¾ÁÙ¬O¸T¤î¤£¤F¡A¸õÓ·¾©ÎªÌ¸õ¨ìBOSS¦Z±³£¥i¥H¡A¦]¬°3¨B¶×³ø¤@¦¸§¤¼Ð¬O³oÓ¤ÞÀºªº³Ì§Cn¨D¡C
ªA°È¾¹¤S¤£¯à¥hÀˬd¨âÓ§¤¼Ð¤§¶¡¬O§_¦³»Ùê©ÎªÌ¦³µLBOSS¡]¥i¯à³]p¤W®Ú¥»¨SÅU¤Î¨ì³oÓn¨D¡A¤S©ÎªÌ¬OÀˬd¥¦Ì·|¾ÉPCPU¥e¥Î²v¤Ó°ª¾÷¾¹¨ü¤£¤F¡^¡C
¤ÏÆ[UO¡A¶Ç©_¡A¶¶²¾¥~±¾¤@ª½¨S¥X¹L¡A¦]¬°¥L̪º²¾°Ê®ø®§¾÷¨î¤£¦P¡A¥L̨C¦¸²¾°Ê³£¬O¦VªA°È¾¹¶×³ø¦Û¤vªº²¾°Ê¤è¦V¡A¨C²¾°Ê¤@¦¸¶×³ø¤@¦¸¡C¦Ó§¤¼Ð¬OªA°È¾¹¦^¶Çµ¹«È¤áºÝªº¡A«È¤áºÝ¥u¦³¨M©w¦Û¤v²¾°Ê¤è¦VªºÅv§Q¡A¨S¦³¨M©w§¤¼ÐªºÅv§Q¡C¦pªG§A·Q¦Vù٩Ϊ̨ä¥L¤Hª«¤è¦V²¾°Ê¡AªA°È¾¹·|µo²{¨Ã¥i¯à§â§A¼u¦^¨Ó¡]¶Ç©_¦n¶H¤£¼u¡AUO¬OªÖ©w¼u¡^¡C
®Ú¾Ú³oÓµ²½×¡A¤T¨B¶¶²¾¬O¥Û¾¹Ãþ«¬¤ÞÀºªº¡§¦º¥Þ¡¨¡A¸Ñ¨M¤èªk¬°¡G§â³òùÙ°µ«p§â·¾°µ¼e¡A¶W¹L¤T¨B¡C¶Hºµ¨k³oºØBOSS¤£n©ñ¦b¸ô¤¤¥¡¡A¥L¨¦Zn¦³«pªºªù¡A¥´±Ñ¥LÅýªù®ø¥¢¤@¬q®É¶¡¤]¥i¥H¹ê²{°½´ç¡A¤T¨B¶¶²¾´NµL®Ä¤F¡C
¦A»¡¥[³t¡G
1¡B´¶³qºôµ¸¥[³t¡A³o¬O¤£¥i¨¾©M«Êªº¡C¤@¯ë±¡ªp¤U¡Aºôµ¸µ{§Ç°e¥X®ø®§¥X¥h®É¡A¦pªG®ø®§«Üµu¡A¨t²Î·|¦Û°Ê§â¥¦«O¯d0.1¬í¡A¬Ý¦Z±¬O§_¸ò¤@өδXÓ®ø®§¡A¦pªG¦³¸òªº®ø®§¡A¨t²Î§â¥¦Ì¦X¦¨¤@Ó§¹¾ã¥]°e¥X¥X¥h¡C³o¬Oºôµ¸©T¦³©µ¿ð¡A¦³µ{§Çªº¤èªk¨Ï³oºØ©µ¿ð¤£¦s¦b¡C¥h±¼³oºØ©µ¿ð¬OºØ¦Xªkªº¦æ¬°¡A¨t²Î¥»¨µ¹¤F¨Ï¥ÎªÌ³oÓ¿ï¾ÜÅv¡C¦ý³q±`±¡ªp¤U³o¬O¤£¹D¼wªº¦æ¬°¡A¦]¬°®ø®§¥]ªº¤p¦Ó¸H¡A¥]¼Æ¶q¤j¤j¼W¥[¡A¥[¤j¤F¥æ´«¾÷©M¸ô¥Ñ¾¹ªºt²ü¡A¹ï°©¤zºô·|³y¦¨¤£§Q¼vÅT¡A©M¦bµó¤W¶Ã¥µ©U§£ÄÝ©ó¦P¤@©Ê½è¡C¦³¨Ç¥~±¾³q¹L³]¸m³q«Hªº¼Ò¦¡¹ê²{³oºØ¥[³t¡A¥¦¹ï¨S¥Î¥~±¾ªºª±®a¨Ó»¡«Ü¤£¤½¥¡C³oÃþ¥[³t¹ïÅ]¤OÄ_¨©ªº®ÄªG¥i¯à¤£¤j¡A¹ïUO©M¶Ç©_¦³©úÅ㪺®ÄªG¡APK¤¤§A§Ö¨º»ò¤@ÂI§O¤H´N¥´¤£µÛ§A¡C
2¡B§Q¥Î¨t²ÎBUG¥[³t¡G
¥Û¾¹ªº¥[³tÄÝ©ó³oºØÃþ«¬¡C¥Û¾¹«È¤áµ{§Ç¤º³¡©T¤Æ¤@Ó©w®É¾¹¡A¤Hª«°Ê§@§ÖºC¥Ñ³oÓ©w®É¾¹¨M©w¡C¥Û¾¹¥~±¾¡]¥xÆWª©SADE·½¥N½X§Ú¬Ý¹L¡^¬O¥Î¤Ï¶×½s¤èªkÀò¨ú©w®É¾¹¥N½X¦a§}¡A¨Ã¹ï°O¾ÐÅ餤¥N½X¶i¦æ×§ï¨Ó¹ê²{®É¶¡¤ù±±¨îªº¡A¶Â«È°ª¤â©Ò¬°¡]¹ï¨ä¤Ï¶×½s¤ô¥²`·P¨ØªA¡^¡C³oÓ¥~±¾¤@«×²±¦æ¡Aª½¨ìµØ¸q¶R¨ì¥Û¾¹·½¥N½X¡A¤~°w¹ï¥¦¶i¦æ¤F×§ï¡C¦Z¨ÓªA°È¾¹¥i¯à°µ¤F¦p¤U³]¸m¡G¬°¨C¦¸²¾°Ê©M¾Ô¤æ¶}©l°O¿ý®É¶¡¤ù¡A«È¤áºÝ¨C²¾°Ê¼Æ¨B¤ñ¸û®É¶¡®t¡A¦pªG¶W¥X¨t²Î¤¹³\ªº³t«×´NÂ_½u¡C¾Ô¤æµ²§ô¤ñ¸û®É¶¡®t¡A¦pªG¹L§Ö¤]¬O¥~±¾©Ò¬°¡C¤]´N¬O»¡±qªA°È¾¹³]p¤W¶i¦æ¨¾Å@¦Ó¤£¬O*³]³Æ¡A³oÃþ¥~±¾¤£Ãø²M²z¡C©Èªº¥u¬O¹BÀç¤è¨S¦³·½¥N½X¡A©ÎªÌ¦³·½¥N½X§Þ³N¤S¤£¨¬¡A©ÎªÌ¶}µo¤è§Þ³N¤£¨¬¡A³o³£·|¾ÉPµLªk¤Î®É×¥¿BUG¡C
¦A»¡§ï«Ê¥]¡G
§ï«Ê¥]ªºBUG¨ä¹ê¤]¬O¨t²Î³]p¾ÉPªº¡C¡]§Ú¤£¬O»¡¦³BUG´N¬O¤ô¥¤£¦æ¡A³o»ò¤jªºµ{§Ç¦Ê±K¤@²¨¡ABUGÁ`¬OÃø§K¡^¡C¦ý¦³¨ÇBUG§¹¥þ¬O³]p¤ô¥§C¤U³y¦¨ªº¡A¤ñ¦p¥Û¾¹ªº¹J¼Ä»P§_¡A©~µM¬O¥Ñ«È¤áºÝ¨Ó¨M©w¡C³o¥ó¨Æ¥æµ¹ªA°È¾¹§Ú·Q¨Ã¤£¬OÃø¨Æ¡A¤]¤£¼W¥[¦h¤Ö¶}¾P¡C¶Â«È¬JµM¯à¤Ï¶×½s¥Û¾¹¥N½X¡A×§ï³q«H¥]§ó¤£¬OÃø¨Æ¡A©Ò¥Hì¦a¡B¤o¨B¡B¤£¹J¼Ä¤Ó®e©ö¹ê²{¤F¡C¤Ï¹L¨Ó¦pªG¹J¼Ä¥æµ¹ªA°È¾¹¨M©w¡A³oÓ¥\¯à¥~±¾´N®Ú¥»¹ê²{¤£¤F¡C
¦A»¡¬Ý¦å¥~±¾¡G
ªA°È¾¹¦b³q«H¤¤§i¶D¤F«È¤áºÝ¦U©Çª«¦h¤Ö¦å¡A³oÓ¥\¯à¤j·§¬O´åÀ¸½Õ¸Õ¶¥¬q©Ò»Ýnªº¡A¥Î©óÀˬdªA°È¾¹ªºBUG¡C¥¿¦¡ª©¥»³oÓ¶}Ãö·íµM¬OÃö±¼¤F¡A¦ý°ÝÃD¬O¶}Ãö©ñ¦b«È¤áºÝ¦Ó¤£¬OªA°È¾¹¡A¶Â«ÈÌ»´ªQ¦a§ä¨ì¤F³oÓ¶}Ãö¡A§â¥¦¥´¶}¡A©ó¬O¤j®a¥i¥H¬Ý¹ï±©Ò¦³©Çª«ªº¦å¤F¡C
§@¬°©M¥Û¾¹®t¤£¦hªº¤ÞÀº¡AÅ]¤OÄ_¨©¦b¨t²Î³]p¤W¨ì©³¹ï³o¨Ç¦]¦³BUG¶i¦æ¤F¦h¤jµ{«×ªº×¥¿¡A§Ú´N¤£±o¦Óª¾¤F¡C¦pªG¨S×¥¿¡A¬Y¨Ç°w¹ï¤ÞÀº³]p¤W©T¦³BUGªº¥~±¾¬O®Ú¥»¨¾¤£¦íªº¡C
²{¦bÅ]¤O¨S¦³¦h¤Ö¥~±¾¡A¨Ã¤£·N¨ýµÛ±N¨Ó¨S¦³¡C¥~±¾ªº§Þ³N¤ô¥©M´åÀ¸·¦æµ{«×¦¨¥¿¤ñ¡A·í«eÅ]¤OÁÙ¤£¬O¤Q¤À¼öªù¡A¦pªG¥¦Àò±o¤F¤j¦¨¥\¡]®Ú¾Úºô¬Pªº¦¬¶O©MªA°È¤ô¥¼È®É¬Ý¤£¨ì³oºØ§Æ±æ¡^¡A®£©È·|Åܦ¨¤U¤@Ó¥Û¾¹¡C
²{¦bªºRO¤]¤@¼Ë¡A¦b¥~±¾¥´À»ªº²{¦b¡A¥²©w¤]·|¦³´åª¬ºAªº¥~±¾¥X²{~
´Á«Ý¡C¡C¡C
[size=5][color=#ff0000]¤ÀªR«È¤áºÝªº¦³Ãö¸ê®Æ
[/color][/size]¦Û¤v§@¥~±¾¡A¤j¦h®ÉÔn¤ÀªR«Ê¥]¡A¤£¹L¦]¬°¦³ªº¥\¯à¬O¥Ñ«È¤áºÝ¨Ó¿ë§Oªº¡A©Ò¥H¤ÀªR«È¤áºÝªºµ{§Ç¦P¼Ë¤]«Ü«n¡A¤ÀªR«È¤áºÝº¥ýn¨D§A¯à¬ÝÀ´¶×½s«ü¥O¡]¥un"¬ÝÀ´"¡An¨D«Ü§Cªº¡^¡A¨ä¦¸¬On¯à°÷¼ô½mªº¹B¥Î¤@¨Ç¤u¨ã¡AµM¦Z¯à³Ñ¤Uªº¤]´N¬O¹B®ð©M´åÀ¸¤½¥qªºº|¬}¤F¡C¡]«¢¡A¤£¬O¨C¦¸³£¯à¦¨¥\ªº°Ú¡^¤UÃä§Ú¤À¨B±Ðµ¹¤j®a¡C
²Ä¤@³¹ 8086¶×½s«ü¥O
ª`¡GAX,BX,CX...,EAX,EBX,ECX...³o¨Ç³£¬OCPU¥Î¨Ó¦sÀx¸ê®Æªº¦a¤è¡C
¤@¡B¸ê®Æ¶Ç¿é«ü¥O
§@¥Î¡G¥¦Ì¦b¦s¶J¾¹©M±H¦s¾¹¡B±H¦s¾¹©M¿é¤J¿é¥X³s±µ°ð¤§¶¡¶Ç°e¸ê®Æ.
1. ³q¥Î¸ê®Æ¶Ç°e«ü¥O.
MOV ¶Ç°e¦r©Î¦ì¤¸²Õ.
MOVSX ¥ý²Å¸¹ÂX®i,¦A¶Ç°e.
MOVZX ¥ý¹sÂX®i,¦A¶Ç°e.
PUSH §â¦rÀ£¤J°ï´Ì.
POP §â¦r¸õ¥X°ï´Ì.
PUSHA §âAX,CX,DX,BX,SP,BP,SI,DI¨Ì¦¸À£¤J°ï´Ì.
POPA §âDI,SI,BP,SP,BX,DX,CX,AX¨Ì¦¸¸õ¥X°ï´Ì.
PUSHAD §âEAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI¨Ì¦¸À£¤J°ï´Ì.
POPAD §âEDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX¨Ì¦¸¸õ¥X°ï´Ì.
BSWAP ¥æ´«32¦ì±H¦s¾¹¨½¦ì¤¸²Õªº¶¶§Ç
XCHG ¥æ´«¦r©Î¦ì¤¸²Õ.( ¦Ü¤Ö¦³¤@Ó¾Þ§@¼Æ¬°±H¦s¾¹,¬q±H¦s¾¹¤£¥i§@¬°¾Þ§@¼Æ)
CMPXCHG ¤ñ¸û¨Ã¥æ´«¾Þ§@¼Æ.( ²Ä¤GÓ¾Þ§@¼Æ¥²¶·¬°²Ö¥[¾¹AL/AX/EAX )
XADD ¥ý¥æ´«¦A²Ö¥[.( µ²ªG¦b²Ä¤@Ó¾Þ§@¼Æ¨½ )
XLAT ¦ì¤¸²Õ¬dªíÂà´«.
BX «ü¦V¤@±i 256 ¦ì¤¸²Õªºªíªº°_ÂI, AL ¬°ªíªº¯Á¤ÞÈ (0-255,§Y 0-FFH); ªð¦^ AL ¬°¬dªíµ²ªG. ( [BX+AL]->AL )
2. ¿é¤J¿é¥X³s±µ°ð¶Ç°e«ü¥O.
IN I/O³s±µ°ð¿é¤J. ( »yªk: IN ²Ö¥[¾¹, {³s±µ°ð¸¹¢xDX} )
OUT I/O³s±µ°ð¿é¥X. ( »yªk: OUT {³s±µ°ð¸¹¢xDX},²Ö¥[¾¹ )
¿é¤J¿é¥X³s±µ°ð¥Ñ¥ß§Y¤è¦¡«ü©w®É, ¨ä½d³ò¬O 0-255; ¥Ñ±H¦s¾¹ DX «ü©w®É,¨ä½d³ò¬O 0-65535.
3. ¥Øªº¦a§}¶Ç°e«ü¥O.
LEA ¸Ë¤J¦³®Ä¦a§}.
¨Ò: LEA DX,string ;§â°¾²¾¦a§}¦s¨ìDX.
LDS ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JDS.
¨Ò: LDS SI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìDS:SI.
LES ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JES.
¨Ò: LES DI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìESI.
LFS ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JFS.
¨Ò: LFS DI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìFSI.
LGS ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JGS.
¨Ò: LGS DI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìGSI.
LSS ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JSS.
¨Ò: LSS DI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìSSI.
4. ¼Ð§Ó¶Ç°e«ü¥O.
LAHF ¼Ð§Ó±H¦s¾¹¶Ç°e,§â¼Ð§Ó¸Ë¤JAH.
SAHF ¼Ð§Ó±H¦s¾¹¶Ç°e,§âAH¤º®e¸Ë¤J¼Ð§Ó±H¦s¾¹.
PUSHF ¼Ð§Ó¤J´Ì.
POPF ¼Ð§Ó¥X´Ì.
PUSHD 32¦ì¼Ð§Ó¤J´Ì.
POPD 32¦ì¼Ð§Ó¥X´Ì.
¤G¡Bºâ³N¹Bºâ«ü¥O
ADD ¥[ªk.
ADC ±a¶i¦ì¥[ªk.
INC ¥[ 1.
AAA ¥[ªkªºASCII½X½Õ¾ã.
DAA ¥[ªkªº¤Q¶i¨î½Õ¾ã.
SUB ´îªk.
SBB ±aɦì´îªk.
DEC ´î 1.
NEC ¨D¤Ï(¥H 0 ´î¤§).
CMP ¤ñ¸û.(¨â¾Þ§@¼Æ§@´îªk,¶È×§ï¼Ð§Ó¦ì,¤£¦^°eµ²ªG).
AAS ´îªkªºASCII½X½Õ¾ã.
DAS ´îªkªº¤Q¶i¨î½Õ¾ã.
MUL µL²Å¸¹¼ªk.
IMUL ¾ã¼Æ¼ªk.
¥H¤W¨â±ø,µ²ªG¦^°eAH©MAL(¦ì¤¸²Õ¹Bºâ),©ÎDX©MAX(¦r¹Bºâ),
AAM ¼ªkªºASCII½X½Õ¾ã.
DIV µL²Å¸¹°£ªk.
IDIV ¾ã¼Æ°£ªk.
¥H¤W¨â±ø,µ²ªG¦^°e:
°Ó¦^°eAL,§E¼Æ¦^°eAH, (¦ì¤¸²Õ¹Bºâ);
©Î °Ó¦^°eAX,§E¼Æ¦^°eDX, (¦r¹Bºâ).
AAD °£ªkªºASCII½X½Õ¾ã.
CBW ¦ì¤¸²ÕÂà´«¬°¦r. (§âAL¤¤¦ì¤¸²Õªº²Å¸¹ÂX®i¨ìAH¤¤¥h)
CWD ¦rÂà´«¬°Âù¦r. (§âAX¤¤ªº¦rªº²Å¸¹ÂX®i¨ìDX¤¤¥h)
CWDE ¦rÂà´«¬°Âù¦r. (§âAX¤¤ªº¦r²Å¸¹ÂX®i¨ìEAX¤¤¥h)
CDQ Âù¦rÂX®i. (§âEAX¤¤ªº¦rªº²Å¸¹ÂX®i¨ìEDX¤¤¥h)
¤T¡BÅÞ¿è¹Bºâ«ü¥O
AND »P¹Bºâ.
OR ©Î¹Bºâ.
XOR ²§©Î¹Bºâ.
NOT ¨ú¤Ï.
TEST ´ú¸Õ.(¨â¾Þ§@¼Æ§@»P¹Bºâ,¶È×§ï¼Ð§Ó¦ì,¤£¦^°eµ²ªG).
SHL Å޿襪²¾.
SAL ºâ³N¥ª²¾.(=SHL)
SHR ÅÞ¿è¥k²¾.
SAR ºâ³N¥k²¾.(=SHR)
ROL ´`Àô¥ª²¾.
ROR ´`Àô¥k²¾.
RCL ³q¹L¶i¦ìªº´`Àô¥ª²¾.
RCR ³q¹L¶i¦ìªº´`Àô¥k²¾.
¥H¤W¤KºØ²¾¦ì«ü¥O,¨ä²¾¦ì¦¸¼Æ¥i¹F255¦¸.
²¾¦ì¤@¦¸®É, ¥iª½±µ¥Î¾Þ§@½X. ¦p SHL AX,1.
²¾¦ì>1¦¸®É, «h¥Ñ±H¦s¾¹CLµ¹¥X²¾¦ì¦¸¼Æ.
¦p MOV CL,04
SHL AX,CL
¥|¡B¦ê«ü¥O
DS:SI ·½¦ê¬q±H¦s¾¹ :·½¦êÅܧ}.
ESI ¥Ø¼Ð¦ê¬q±H¦s¾¹:¥Ø¼Ð¦êÅܧ}.
CX «´_¦¸¼Æp¼Æ¾¹.
AL/AX ±½ºËÈ.
D¼Ð§Ó 0ªí¥Ü«´_¾Þ§@¤¤SI©MDIÀ³¦Û°Ê¼W¶q; 1ªí¥ÜÀ³¦Û°Ê´î¶q.
Z¼Ð§Ó ¥Î¨Ó±±¨î±½ºË©Î¤ñ¸û¾Þ§@ªºµ²§ô.
MOVS ¦ê¶Ç°e.
( MOVSB ¶Ç°e¦r²Å. MOVSW ¶Ç°e¦r. MOVSD ¶Ç°eÂù¦r. )
CMPS ¦ê¤ñ¸û.
( CMPSB ¤ñ¸û¦r²Å. CMPSW ¤ñ¸û¦r. )
SCAS ¦ê±½ºË.
§âAL©ÎAXªº¤º®e»P¥Ø¼Ð¦ê§@¤ñ¸û,¤ñ¸ûµ²ªG¤Ï¬M¦b¼Ð§Ó¦ì.
LODS ¸Ë¤J¦ê.
§â·½¦ê¤¤ªº¤¸¯À(¦r©Î¦ì¤¸²Õ)³v¤@¸Ë¤JAL©ÎAX¤¤.
( LODSB ¶Ç°e¦r²Å. LODSW ¶Ç°e¦r. LODSD ¶Ç°eÂù¦r. )
STOS «O¦s¦ê.
¬OLODSªº°f¹Lµ{.
REP ·íCX/ECX<>0®É«´_.
REPE/REPZ ·íZF=1©Î¤ñ¸ûµ²ªG¬Ûµ¥,¥BCX/ECX<>0®É«´_.
REPNE/REPNZ ·íZF=0©Î¤ñ¸ûµ²ªG¤£¬Ûµ¥,¥BCX/ECX<>0®É«´_.
REPC ·íCF=1¥BCX/ECX<>0®É«´_.
REPNC ·íCF=0¥BCX/ECX<>0®É«´_.
¤¡Bµ{§ÇÂಾ«ü¥O
1>µL±ø¥óÂಾ«ü¥O (ªøÂಾ)
JMP µL±ø¥óÂಾ«ü¥O
CALL ¹Lµ{½Õ¥Î
RET/RETF¹Lµ{ªð¦^.
2>±ø¥óÂಾ«ü¥O (µuÂಾ,-128¨ì+127ªº¶ZÂ÷¤º)
( ·í¥B¶È·í(SF XOR OF)=1®É,OP1<OP2 )
JA/JNBE ¤£¤p©ó©Î¤£µ¥©ó®ÉÂಾ.
JAE/JNB ¤j©ó©Îµ¥©óÂಾ.
JB/JNAE ¤p©óÂಾ.
JBE/JNA ¤p©ó©Îµ¥©óÂಾ.
¥H¤W¥|±ø,´ú¸ÕµL²Å¸¹¾ã¼Æ¹Bºâªºµ²ªG(¼Ð§ÓC©MZ).
JG/JNLE ¤j©óÂಾ.
JGE/JNL ¤j©ó©Îµ¥©óÂಾ.
JL/JNGE ¤p©óÂಾ.
JLE/JNG ¤p©ó©Îµ¥©óÂಾ.
¥H¤W¥|±ø,´ú¸Õ±a²Å¸¹¾ã¼Æ¹Bºâªºµ²ªG(¼Ð§ÓS,O©MZ).
JE/JZ µ¥©óÂಾ.
JNE/JNZ ¤£µ¥©ó®ÉÂಾ.
JC ¦³¶i¦ì®ÉÂಾ.
JNC µL¶i¦ì®ÉÂಾ.
JNO ¤£·¸¥X®ÉÂಾ.
JNP/JPO ©_°¸©Ê¬°©_¼Æ®ÉÂಾ.
JNS ²Å¸¹¦ì¬° "0" ®ÉÂಾ.
JO ·¸¥XÂಾ.
JP/JPE ©_°¸©Ê¬°°¸¼Æ®ÉÂಾ.
JS ²Å¸¹¦ì¬° "1" ®ÉÂಾ.
3>´`Àô±±¨î«ü¥O(µuÂಾ)
LOOP CX¤£¬°¹s®É´`Àô.
LOOPE/LOOPZ CX¤£¬°¹s¥B¼Ð§ÓZ=1®É´`Àô.
LOOPNE/LOOPNZ CX¤£¬°¹s¥B¼Ð§ÓZ=0®É´`Àô.
JCXZ CX¬°¹s®ÉÂಾ.
JECXZ ECX¬°¹s®ÉÂಾ.
4>¤¤Â_«ü¥O
INT ¤¤Â_«ü¥O
INTO ·¸¥X¤¤Â_
IRET ¤¤Â_ªð¦^
5>³B²z¾¹±±¨î«ü¥O
HLT ³B²z¾¹¼È°±, ª½¨ì¥X²{¤¤Â_©Î´_¦ì«H¸¹¤~Ä~Äò.
WAIT ·í´¹¤ù¤Þ½uTEST¬°°ª¹q¥®É¨ÏCPU¶i¤Jµ¥«Ýª¬ºA.
ESC Âà´«¨ì¥~³B²z¾¹.
LOCK «ÊÂê¶×¬y±Æ.
NOP ªÅ¾Þ§@.
STC ¸m¶i¦ì¼Ð§Ó¦ì.
CLC ²M¶i¦ì¼Ð§Ó¦ì.
CMC ¶i¦ì¼Ð§Ó¨ú¤Ï.
STD ¸m¤è¦V¼Ð§Ó¦ì.
CLD ²M¤è¦V¼Ð§Ó¦ì.
STI ¸m¤¤Â_¤¹³\¦ì.
CLI ²M¤¤Â_¤¹³\¦ì.
¤»¡B°°«ü¥O
DW ©w¸q¦r(2¦ì¤¸²Õ).
PROC ©w¸q¹Lµ{.
ENDP ¹Lµ{µ²§ô.
SEGMENT ©w¸q¬q.
ASSUME «Ø¥ß¬q±H¦s¾¹´M§}.
ENDS ¬qµ²§ô.
END µ{§Çµ²§ô.
·íµM¤£¬O©Ò¦³ªº«ü¥O³£¯à¥Îªº¤Wªº¡A§Ú¦b³o¨½¥þ³¡¼g¥X¨Ó¬O¬°¤FÅý¤j®a»{ÃѤ@¤U¡A¤è«K¤j®a¥H¦Zªº¾Ç²ß¡A§ÚÂk¯Ç¤F¤@¤U±`¥Îªº«ü¥O¡A³o¨Ç«ü¥O¤j®a¤@©wn¼ô½m´x´¤¤~¥i¥H°Ú¡C
MOV ¸ê®Æ¶Ç°e«ü¥O
PUSH,POP °ï´Ì«ü¥O
CMP ¤ñ¸û«ü¥O
LEA ¨ú¦a§}«ü¥O
XOR ²§©Î«ü¥O
JE,JZ,JMP...(©Ò¦³ªºÂಾ«ü¥O)
[size=5][color=#ff0000]FPE×§ï¥þ±Ðµ{
[/color][/size]«Ü¦ªº®ÉÔ,·í¥X²{¤Fµøµ¡¨t²Î¥H¦Z,¹Ï§Î¬É±´N²`±o¤H̪º³ß·R,±q¥j¦ÑªºDOS¬É±ªº¥®¸Xªºªi´µ¤ý¤l¶}©l,«K³vº¥ªº¥X²{¤F§ó°ª·N¸q¤Wªº´åÀ¸,§óÀu¨}ªº¬É±§l¤Þ¤F§ó¦hªº¤H¨Ó¶i¦æ´åÀ¸ªº®T¼Ö¡C
©ó¬O,GAMEªº·N¸q«K³vº¥ªº²`»·©MÂ×´I¦h±m°_¨Ó,«K³vº¥¥X²{¤F´åÀ¸¤º®eªº¤À¤Æ,§Î¦¨¤F¤@¨Ç·½©ó¦´Á§Î¦¡¤WAVG,SLG,RPG,µ¥ÁͶÕ,³o¬O¦´Áªº¤ñ¸ûÅ¢²Îªº¤À¤Æ,´Á¶¡,«Ü¦hRPGªº´åÀ¸´N¦³«Ü¦hÁcº¾¬\Àê¥F¨ýªºª@¯Å¤Î½m²ßªº¨t²Î,·í®É«K¦³¤F¤@Ó«ä·Q,¦p¦óÂ\²æ³o¨Ç¥O¤H¤Ï·PªºªF¦è?×§ï´åÀ¸ªº·½µ{§Ç¶Ü?¤£¬O,«K¥X²{¤F¤@ºØÃþ¦ü©óªþ¥[ªºµ{§Ç,¥i¥H¹ï¤Hª«ªº¸ê®Æ¶i¦æ¤@©wªº×§ï,ª««~µ¥µ¥,«K¬O¦´Áק諸Âú§Î,¦Ü¦Z¨Ó,¸g¹L¶V¨Ó¶V¦hªº¤Hªºµo®i,«ä·Q,³v¨B³v¨Bªº§Î¦¨¤F¤@Ó¤ñ¸û§¹µ½ªºÅé¨t©M¦@¦Pªº»{ÃÑ,¦Z«K¦³¤F·Ãû¤H¤ßªºFPE.
¤@Ó¤Hª«,¦³«Ü¦h¸ê®Æ»P¤§¬ÛÃö©ÎªÌ»¡»P¤§¦³Áp¨t,¨º»ò,¦p¦ó¦b²³¦hªº¸ê®Æ¤¤´M§ä¨ì¤Hª«©Ò»Ýnªº³¡¤À©O?«Ü®e©ö·Q¨ìªº´N¬O,·í§Ú̦b´åÀ¸¶i¦æªº¹Lµ{¤¤,§Ú̪º¤Hª«¤@¥¹µo¥Í¸ê®Æ¤WªºÅܤÆ,¨º»ò¸ê®Æ´N·|¦b±H¦s¾¹¤¤µo¥ÍÅܰÊ,·í§Ú̦b«e¤@¦¸ªº©P´Á¤¤±N¥þ³¡ªº¸ê®Æ¼ÆÈ³£°O¿ý¤U¨Ó,¦b±N³oÓ©P´Áªº¸ê®Æ¥þ³¡°O¿ý,µM¦Z¬Û¤ñ¸û,´N¯à°÷´M§ä¨ì¤@Óµo¥ÍÅܤƪº³¡¤À,³oÓ³¡¤À¥i¯à¦³«Ü¦h«Ü¦h
²³æªº¨Ó»¡,¥i¯à¬O¤@ÓßÓ,¦Y¤U¥h¤F,¨º»ò¼ÆÈÅܤF,¶q´î¤Ö¤F,¦å¼ÑªºÃC¦âÅܤF,¤Hª«ªºÄݩʫì´_¤F,µ¥µ¥«Ü¦h«Ü¦h«Ü¦h,©Ò¥H,Åܰʪº¦a§}´N¦³«Ü¦h«Ü¦h,¨º»ò§Ú̪º¥Ø¼Ð¼ÆÈ©O?«Ü²³æ,·í¤@Ó¼ÆÈ«ö·Ó§Ú̪ºn¨D¨ÓÅܤÆ,§Ú̶R,½æ.¶R.½æ.¶R.½æ.¨º»ò,¿ú´N¬O¤Ö,¦h,¤Ö,¦h,¤Ö,¦h,³o¼Ë¤@¨Ó,²Å¦X§Ú̪º³oÓ³sÄòªº¥¿½TªºÅܤƪº§Î¦¡ªº¦a§}´N¥u¦³´XÓ,¥¿½Tªº©ÎªÌªíÆ[ªº,©ÎªÌÃè¶Hªº,©Ò¿×ªíÆ[,´N¬O¿úªº¨ºÓ¼Ë¤lnÅܤƧa~~~```«¢«¢`````¯à©ú¥Õ¶Ü?´N¬O»¡,¤@Ó¤HÁyD,½GÅܤF,¦ý¬OÁ`¦³ÓÁy¦b¨º¨½§a?µM¦Z´N¬O©Ò¿×ªº¦×ªº¦h¤Öªº¦a§},µM¦Z````````````?µM¦Z`````¬Ý¬Ý¦a§}¬O¤°»òÃþ«¬,¶i¨îªº¿ï¾Ü,µM¦Z,§R°£±¼²{¦bªº¼ÆÈ,¼g¤W¤@Ó§ÚÌ»Ýnªº¼ÆÈ,¨ê·s,´N²£¥Í¤F¤@Óµ²ªG,§Ú̺٬°:ªí²{:³o´N¬Oק諸®Ö¤ßªºì²z
¦n¤F,§ÚÌ®³¨ì¤F¤@Ó×§ï¾¹,FPE,ª÷¤s´å«L,ªF¤è¤£±Ñ,¤j¤M,¶Ì¥Ê×§ï¾¹,¤ýªÌ×§ï,ÀH«K¤°»ò³£¥i¥H.µM¦Z°õ¦æ¨ºÓ¹Ï¼Ð,´N¬O.EXEªº¤å¥ó,µM¦Z¶i¤J¥Ø¼Ð´åÀ¸,µM¦Z,¿ï©w¤@Ó§Ú̩һÝnªº×§ïªº¤@Ó¼ÆÈ,¤ñ¦p¤ñ¦p~~~~~~~~~~~~~~~~~~~```
³Ì³Ì°ò¥»ªº,¿ú.µM¦Z©O,§Ṵ́O¦í²{¦b§A©Ò¦³ªº¼Æ¶q,µM¦Z¤Á´«¥X¥h¨ì×§ï¾¹,«ö²Õ¦XÁä,¦pªG¤£¦æ,´N«ö§Ö±¶Áä*,±`¨£ªº,¦pªGÁÙ¤£¦æ,¬Ý¬Ý¬O¤£¬O¨R¬ð,´«±¼§Ö±¶Áä¦ì,©ÎªÌ²Õ¦XÁä,°h¥XÁä¦ì¸Õ¸Õ,ÁÙ¤£¦æ,¦Û¤v¥i¥H¹ï´åÀ¸ªº¥Ø¿ý¤å¥ó°µÂI¬ÛÃö×§ï,§Ú¤£ÂرÔ,µM¦Z¦b¨ºÓ·s«Ø¥ô°È¨º¨½¿ï¤W,µM¦Z¶ñ¤W§A°O¦íªº¨ºÓ¼ÆÈ,´N¬O§A°O¦íªº,
µM¦Z§Ṳ́Á´«¦^´åÀ¸,µM¦ZÀH«K¶RÓªF¦è,Åý´åÀ¸ª÷¿úµo¥ÍÅܤÆ,µM¦Z§Ú̦A¦¸¤Á´«¥X¨Ó,¦b¸ê®Æ¨º¨½¶ñ¤W·sªº¼Æ¶q,´N·|¦b¤W¦¸ªº´M§äªºµ²ªG¨½´M§ä§A²{¦bªº¼Æ¶q²Å¦Xªº¦a§},OK,¦³´XӳѤU¤F?¦pªG«Ü¦hFF¤]´N¬O256¥H¤W,¤£¯àÅã¥Ü,¨º»ò«´_¥H¤W¹Lµ{,¦pªG¯à°÷¦b§Aªº×§ï¾¹¨ºÓ:®Øì½Ì§Ú¥Î³o»ò¤£±M·~ªº»¡ªk~~~~``)¥X²{ªº¸Ü,
¨º»ò¥i¥H¶}©l¤F,¦pªG§Aªº¤ô¥¤£¦æ,¬Ý¤£,¨º»ò¦AºÉ¶q¦h§ä´X¦¸§a,±±¨î¦b2----5Ó¦a§}¤º.µM¦Z§Ú̶}©l,¦pªG§A¤°»ò³£¤£·|,´Nª½±µ¿ïÂê©w,µM¦Z¶ñ¤W¤@Ó10¾÷¨îªº¼Æ¶q,´N¥i¥H¤F.?¤°»ò?§A¤£ª¾¹D¶i¨î¬O¤°»ò???~?~?¨º§Ú¨S¦³¿ìªk¤F.
¦pªG§AÀ´¥ô¦ó¤@ÂIÂI,¨º»ò¸òµÛ§Ú,¿ï¾Ü½s¿è,³o¬O§A½ñ¤W¯u¥¿·N¸q¤Wªº×§ïªº¸ô³~
§Ú̼ÒÀÀ¤@¦¸
02FE32A...
02FE30b...
-----µ¥´XÓ§Ṵ́²³]¦³5Ó
¥´¶}¤@Ó
§A¥i¯à¬Ý¨ì³oÓ
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
»¡©ú¤°»ò©O? ¤£¥¿½T
²Ä¤GÓ
0F 0E A3 B4 F5 EE FF ED D2 A3 D2 E1 A2 B4 F9 F1
.....................
§A¬Ý¤£¥X¥ô¦ó³W«ßªº
»¡©ú¤°»ò©O? ¤]¤£¤j¥¿½T
²Ä¤TÓ
32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
¦pªG§A¦³50¤¸¿úªº¸Ü,»¡©ú¤°»ò©O?50ªº16¶i¨î¬O¦h¤Ö?50=32
¹ïªº
²Ä¥|Ó
32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 ................
¤@¼Ëªº?¤£¬OÃè¶HÅܬOªíÆ[,¤]¬O¹ïªº
²Ä¤Ó```````` ¤@¼Ë?
¨þ¨þ`````¤£¿ù,§Ú̧ä¨ì¤F¿úªº¦a§}¤F
¶}©l×§ï
§Ún¦h¤Ö? 999? 9999?
¶ñ¤WE7 03 ©ÎªÌ 0F 27 ¦Û¤v¥h¼g§a!¦pªG§A¤£¬O¹q¸£¤åª¼,¦pªGÁÙ¤£·|,§äÓ´«ºâ¾¹,¦Û¤v´«´«´N¥i¥H¤F,¼g¤W¥h¨ê·s,¦^¥h¬Ý¬Ý§a.
½s¿è´N¬O³o¼Ë²³æ.
ªZ¾¹,§ðÀ»,ßÓ¤ô.........³t«×.¤@¤Á¦³¼Æ¦rªºªF¦è,³£³o¼Ë°µ§a.
¦n¤F,°ò¦§¹¤F,§Ú̳o³¡¤À«Ü¼ô±x¤F,Ä~Äò
§Ú¦b³o¨½¼g¤W¤@Ó¤Hªº¸ê®Æ
µ¥¯Å 01
¸gÅç 100
HP 100
MP 100
ßÓ¤ô 99
.........
¨º»ò¥¿½Tªº¦a§}¬O¤°»ò©O`?
01 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00
63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ¤£n©M§Ú»¡¬Ý¤£À´
²Ä¤GÓ¨Ò¤l
ªZ¾¹ ªì¯Å ¤M
¾÷Ãöºj ¤l¼u 10 / 100
¤õ½b¬¶ ¤l¼u 04 / 100
ßÓ ¤pßÓ 3 Ó
¤¤ßÓ 5 Ó
¤jßÓ 8 Ó
§Ų́Ӽg³o³¡¤À
01 01 00 00 04 01 0A 64 0F 03 00 00 10 05 00 00
11 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00
³oÓÃø¬ÝÂI,¬O¤°»ò·N«ä?
01¤@©w¬O³Ìªì¯ÅªºªZ¾¹ªº¥N½X ¦Z±ªº01¤@©w¬Oªí¥Ü¼Æ¶q ¤@§â ,§A§ï02´N¬O¨â§â¤M,03´N¬O3§â...04¬O¾÷Ãöºjªº¥N½X,¬°¤°»ò¤£¬O02?´åÀ¸¨½¦³¨S¦³¤°»ò¤pºj?¨Bºj?¦pªG¦³´N¬O»¡©ú¾÷Ãöºj¬O¼F®`¤@ÂIªººj,«e±ªÖ©wÁÙ¦³¤@ÂI¤pºj 01 ¬O¤@§â,02¬O¨â§â,OA ¼Æ¶q¬O10ªº¤l¼u.64¬O¤l¼u¤W,¥H¦¹Ãþ±À....¦Û¤v¹ïµÛ¬Ý¬Ý``````
¤¤¯Å§Oªº·|¤F¶Ü~?~?¼ô½m§a```¦h§ä´åÀ¸¸Õ¸Õ````§O§i¶D§Ú§A¬Ý¤£À´
°ª¯Å§Oªº§ä¤°»ò??? §Ú®³ºëÆF¶}¤M
ÀH«K¨âÓªZ¾¹,¸õ¥XFPE,´M§ä¦a§},´N¬O¦p¤Uªº³¡¤À
00 00 ªZ¾¹¥N½X³¡¤À ³Ì¤p§ðÀ» ³Ì§C§ðÀ»
®gµ{ ³t«× ©R¤¤ ¥²±þ²v 00 0 00 0 0
00 00 00 0 0 ------------------- --
00 0 00 0 00 0 ªZ¾¹°ò¥»n¨D 000 00 00
000000000000000000000000000000000000000
00000000000000000000000000000000000000
0000000000000000000000000000000000000000
00000000 ¯S®Ä §ðÀ»¥[¦¨
------------------------ ¦³´XÓ¯S®Ä´N¦³Óªþ¥[
«e±§A³£¬ÝÀ´¤F,³o¨½§A´N§äªº¨ì
©¹¤U½½¶±´N¬O
§An§ï¤°»ò?
¥h±¼n¨D? n¨D³¡¤À¥þ³¡§ï00 00 00 00 00 00
§ðÀ»? FE 00 FF 00 == 254 255
³t«×? OA=10 1E=30 32=50
§Ú§ï¨ì50³£¨S¦³°ÝÃD
¥²±þ? 64 == 100% §An§ïªºÅܺA§Ú¤]¤£Äd§A
®gµ{? ÀH§A§a,ÁÙn§Ú»¡¶Ü~?
1¯Åªº±OÀsºj«ç»ò¨Óªº? ´N³o»ò¨Óªº
·|¤F¶Ü~?¦Û¤v¥h§ï§a.¤£n¦A°Ý§Ún¤F,*¦Û¤v§a.
¥H¦Z§AÁÙ·Q°µ¤°»ò`~~?§Ú´£¥Ü§a,²{¦bªº×§ï¾¹¦³§C¶¥·j¯Áªº¥\¯à.¤°»ò·N«ä,´åÀ¸¨½ªºªF¦è¤£ª¾¹D¼ÆÈªº³¡¤À,§Ú̥ηj¯Á,¿é¤J? µM¦Z¼W¥[+ ´î¤Ö- ³o´N¬O°ò¥»ªº®æ¦¡,¦a§}´N¬O³o¼Ë§ä¨ìªº,§ä¨ì¤F¦a§},¥[ÓÂê©wªº¥N½X,°µÓ±Ò°Ê¤å¥ó,³Ì¦Z``````````¦Û¤v¥h°µ¥~±¾§a.¸Ë³Æ¶Ü?¦³¼ÆÈ,¦Û¤v·Q§a!
¥@¬É¤W³q¦Vù°¨ªº¸ô«Ü¦h.§AÁ`±o§ä¤@±øÄÝ©ó§A¦Û¤v§a?
[size=5][color=#ff0000]FPE×§ï±Ðµ{¶i¶¥(¦a§}½s¿è³¡¤À)
[/color][/size]
»Ýn¨ã³Æªº´XÓªì¨Bª¾ÃÑ
1.¤Q¤»¶i¨î
¤Q¤»¶i¨î¬O¶i¨î¤¤ªº¤@ºØ,¬O§Ú̦b¶i¦æ½s¿èªº®ÉÔ±Nn¸I¨ìªº³Ì¦hªº°ÝÃD,§A±µàD×§ï,´N¤£¥iÁ×§Kªº·|¹J¨ì¶i¨î¤Wªº´«ºâ,²³æªº»¡¨Ó,¤Q¤»¶i¨î´N¬Oº¡¤Q¤»´N¶i¤@¦ì,¦P¤Q¶i¨îªºº¡¤Q¶i¤@¬O¤@¼Ëªº¹D²z,§Ú¦b³o¨½n¨D¤j®a°O¦í³Ì°ò¥»ªº«e¤Q¤»¦ìªº¥N½X´«ºâ,©M´Xӳ̱`¥Îªº¼ÆÈ¨ãÅé¤Q¤»¶i¨îªº¥N½X,¦Ó¤£¬O¥hÁ{®Éªº§äÓ¤°»ò¶i¨î´«ºâ¾¹¨Ó¶i¦æ´«ºâ,³oÂI«D±`«n,¦³«Ü¦h®ÉÔ,¤@Ó¦a§}ªº½s¿è,¦b¬YӼЧӽX¼ÆÈ¤W¤£¬O«Ü¤j,¦ý¬On¨D§A¦³«Ü°ªªº¸ê®Æ±Ó·P©Ê,³oÂI«Ü«n,§Ú¦b³o¨½±Nn¨D°O¦íªº¤@¨Ç¥N½X¼g¥X¨Ó
01=01 02=02 03=03 04=04 05=05 06=06 07=07 08=08
09=09 10=0A 11=0B 12=0C 13=0D 14=0E 15=OF 16=10
¯S©º¼ÆÈ
0F=15 FF=255 FF FF =65535 32=50 64=100
63=99 03 E7=999 27 0F=9999 01 86 9F=99999
2.¯u/°²§}ªº°ò¥»ÃѧO°ÝÃD
§Ú¦b³o¨½Á|¤@Ó¨Ò¤l
¤@Ó¥¿±`ªº¥þªÅ¦a§}
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
¥¿±`¸ê®Æ¥þº¡¦a§}
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
°²³]§ÚÌ´M¨Dªº¥Ø¼Ð¬O¤@Óª÷¿úªº¼Æ¶q
°²³]ªì©l¼Æ¶q¬O1000ªº¸Ü,§ÚÌ´N¶}©l¥H1000§@¬°´M§ä¥Ø¼Ð
1000>990>980>970> OK,§Ú̧ä¨ì¤F¨âÓ¦a§}
024F6A5C7BE..
024F7BCDD3A..
¦a§}¤@§ÚÌ¥´¶}¥H¦Z¬Ý¨ì
CA 03 00 00 CA 03 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
¦a§}¤G§ÚÌ¥´¶}¥H¦Z¬Ý¨ì
DE CA D3 B6 A7 D8 E9 FF D1 A3 A3 A3 DE FA FE D2
D6 F7 F2 F8 FA 32 21 2F 2D 3E 4E 2D 6A 4E 5F 3A
F6 5A 8D 8D 6E 7D 6E 7E 8A 9D 21 41 3A 3C D2 F2
¦p¦ó§PÂ_©O¡A³o¬O¤@Ó«Ü©úÅ㪺¤@Ó±`¨£ªº¯u°²¦a§}¨Ã¦sªº±¡ªp¡A§Ú̪º¥Ø¼Ð¼ÆÈ¬O970 ¡A´«ºâ¹L¨Ó¬O CA 03 ¨º»ò¦a§}¤¤¦³¨ºÓ¥X²{¤F³oÓ¤Q¤»¶i¨îªº970©O¡H«Ü©úÅã¬O¦b²Ä¤@Ó¦a§}¡A§ÚÌ´NºÙ¬°¯u§}¡A¦Ó²Ä¤GÓ¨S¦³¥ô¦óªº¼Æ¦rªº³W«ßªº¦a§}¡A§Ú̺٤§¬°°²§}¡A¦ý¬O¨Ã¤£¦]¬°¨ä¯u¥¿·N¸q¤Wªº°²§}¡A¨ä¹ê¡A³oÓ¦a§}¤]¬O¤Ï¬M¤F¤@ÓÃöÁpªºÅܶq¡A¥u¬O©Ò¥]²[ªº¸ê°T¤£¬O§Ú̩һÝnªº·í«eÅܶqÈ¡A¦ý³oºØ¦a§}¦b¬YºØ±¡ªp¤U¤´µM«D±`¦³¥Î¡A°_¤@ÓÅçÃÒªº§@¥Î¡A§Úµy¦Z·|¸Ô²Ó¸Ñ»¡¡C³o´N¬O°ò¥»ªº¯u/°²¦a§}ªººc¦¨¡A«Ü¦h®ÉÔ¡A¯u¹êªº¦a§}³q±`¤£¬O³oºØ¡§²Mª©¡¨¡]§Ú̪º³N»y¡A´N¬O«D±`¤zÐä¦n»{ÃÑ¡A¾ãª©¦a§}¥N½X¥þªí¡AµLÃöªº¥þ³¡Åã¥ÜªÅ½X¡A¥uªí¹F¤@Ó¦³ÃöÅܶq¼ÆÈ¡^¦Ó¬O¦b¤@¤j¦ê¨S¦³¥Îªº¸ê®Æ¤¤§¨¦b¤@¬q¯S©wªº¬q¸¨
¥H¤U¬O¤@Ӽ˥»
DE CA D3 B6 00 02 00 00 D1 A3 A3 A3 DE FA FE D2
D6 F7 F2 F8 FA 32 21 2F 2D 3E 4E 2D 6A 4E 5F 3A
F6 5A 8D 8D 00 02 00 00 8A 9D 21 41 3A 3C D2 F2
³o¬O¤@Ó¤ñ¸û¼Ð·Çªº§¨½X¡A¦b²Ä¤GÓ¬q¸¨ªº¥|¦ì¡A¤@¡A¤T¦æ¥]²[¤F¤@Ó¨¤¦âªºµ¥¯Å¸ê°T¡A¨ä§E³¡¤À¬OÃö©ó¤@Ó¨¤¦âªºµ¥¯Å¬ÛÃöªº¥~ªí¤Î¥~Æ[¡A¦b³o¨½´N¥X²{¤F«D²Mª©ªº¦a§}¥þ¥N½X¡A»Ýn¤j®a¥J²Ó¬Ý¡A¦pªG´M§äªºµ²ªG¬O2¨ì3Ó³o¼Ëªº«D²M½Xªº¦a§}½Xªí¡A¤£¯à°÷»{¬°¬O»~³ø¦Ó«Ü²³æªº²M°£«·s´M§ä¡A»Ýnų§O¤@¤U¡A³o¨½¤£¦P©óµL³W«ßªº°²§}¡A±æ¤j®a»Ê°O¡C
3¡AÃè¶H×§ï
§Ú̪¾¹D¡A¤@Ó¨¤¦âªº¸ê®Æ¦³«Ü¦h³¡¤À¡A³Ì²³æªº¤ñ¦pÅé¤O¼ÆÈ¡A´N¦³´XÓ³¡¤À
¤@¨ãÅ骺¼ÆÈ
¤GªíÆ[ªº¦L¶H
¤TÅã¥Ü¥X¥[¦¨©ÎªÌ´î¤Öªº®ÄªG
§Ú̦b¤j½d³òªº·j´M¤@ÓÅܰʪº¦a§}ªº®ÉÔ¡A·|±N³oÓ¯u¼ÆÈ§}©Ò¯à²£¥ÍªºÅܤƪº¤Î³s±a¼vÅTªº³¡¤À¥þ³¡·j´M¦b¤º¡A¬G¦P®É¶¡ªº·j´M¡A§ÚÌ¥i¥H§ä¥X´XÓ¬ÛÃöªºÅܶq¼ÆÈ§}¡A§Ú̦b¶i¦æ¦a§}½s¿èªº®ÉÔ¡Anª`·N¨ì³oÂI°Ï§O¡A¨ãÅ骺»y¨¥´yz´N¬O¡A§A¥i¯à×§ï¤F¤@Ó§A»{¬°¬O¥¿½Tªº¡A¦Xªkªº¦a§}¡A¦ý·í§A¤Á´«¨ì´åÀ¸³¡¤Àªº®ÉÔ¡A«oµo²{¨S¦³²£¥ÍÅܰʡA¦ý§A¦b¤Á´«¦^½s¿è¾¹¡A«oµo²{¸ê®Æ¤w¸g¦Û°Ê«ì´_¤F쥻¨S¦³×§ïªº«e¼Ë¡A³oÂI§Ú̺٬°¡AÃè¶H×§ï¡A©ÎªÌ¼v¤l×§ï¡A³Qµø¦P¬°¤£¦¨¥\ªº×§ï¡A¦¹®É§An°µªº´N¬O¥¿½Tªº¤ÀªR§Aªº¦a§}¡AµM¦Z¸ÕµÛ¥h×§ï¥t¥~ªº¬Û¦Pªº©ÎªÌ¸ê®Æ¤W¦³¹ïµ¥ÂIªº¦a§}¡A¦pªG§A¤£©ñ¤ß¡A´N³sÃè¶H³s¦P¯u§}¤@°_§ï°Ê¡A¦ýȱoª`·N¤@ÂI¡A§Ún´£¥X¡A¦³®É«J¡A¯u§}©MÃè¶H¤£¬Oµ´¹ï¡A¦b¬YºØ±¡ªp¤U¡A§Ų́S¦³¿ìªk´M§ä¯u§}¡A¥u¦³³q¹LªíÆ[¨Ó¶¡±µ×§ï¡AÃþ¦üªº¦³¡mÃM¤h¹Î¡n¦³®É§ï±¼Ãè¶H´N¥i¥H§â¯u§}¼vÅT¡A«Ü©úÅ㪺¨Ò¤lPCª©¥»ªº¡q¤ß¸õ¦^¾Ð¡r§A¥i¥H°l´M¨ì7Ó¦a§} ¡A¦ý¬O§A§ï±¼¥ô¦ó¤@Ó³£¨S¦³¥Î¡An»ò³s±a×§ï7Ó¡Aª½±µ¹ê²{ÅܰʡAn»ò§A§ï¥ô·N¤@Ó¡A³q¹L´åÀ¸ªº¤é¾ä¤Á´«¡A¹ï¦a§}¶i¦æ®ÕÅç¡A´«¦æ¬°¯u§}¡A¹F¨ì×§ï¡C³oÂI»Ýnª`·N¡C
¥¿ÃD¡G
·Ç³Æn¨D°µ¦n¥H¦Z¡A§Ú¶}©lz»¡×§ï¥¿ÃD³¡¤À¡A§Ú±N¥H¹ê¨Ò¨Ó¤ÀªR¡A¹ïŪ¥N½X½s¿è°µ»¡©ú¡A·|¥]²[¥Ø«eªº©Ò¦³³¡¤À¡A§Æ±æ¤j®a»{¯u·Q·Q¡A¥un§A¯à©ú¥Õ¥þ³¡¾÷²z¡A´N¯à«Ü»´ªQ©ú¥Õ×§ï¾Ç°Ýªº90%¡A§Ú©Ò¼gªº¥N½X³¡¤À¥u¼g¥Dn¡AµLÃö¥N½X§Ú¤£¼g¡A³o¼Ë¤@¨Ó¹ïªì¾ÇªÌ¦n¬Ý¤@ÂI¡A¦Ó¥B¤]«K©ó¬ã¨s¡A¯u¹êªº¦a§}§Î¦¡ÁÙ¬O¦³¤@©w¥X¤J¡A¥Dn¦b©ó«D²M½Xªº³¡¤À¦Ó¤£¬O00 00 00 00 ¤§ÃþªºªÅ¸`¡A´N¥i¯à·|¼W¥[»{ÃѤWªº§xÃø¡A¨ãÅé¹ê½î»Ýn¤j®a¦Û¤v¥h¿Ë¦Û°Ê¤â×§ï
¤@ ¯Â¨ãÅ鼯ÈÃþ«¬
¹ï¶HÁ|¨Ò¡Gª÷¿ú
¦b½Í¨ì¤@Ó¨ãÅé¼ÆÈªº×§ï¡A§Ú̫ܮe©öªº´N¯à·Q¨ì¤@Ó«D±`±`¨£ªº¸ê®Æ¡Aª÷¿ú¡A§Ú̦b³o¨½´N¥Hª÷¿ú°µ¬°¥Ø¼Ð¡A°µ²Ä¤@Ó¤ÀªR
¥H¯q´¼¤OÃþ«¬ªº´åÀ¸ ¡m¤j´I¯Î¤T¡n¬°¨Ò¤l
ªì©l ª÷¿ú10000 ¦s´Ú 10000
´M§ä¥H¦Z
10 27 00 00 10 27 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
§A¬Ý¨ìªºÀ³¸Ó¦³³o»ò¤@Ó³¡¤À
¦nªº¡A¤U±¶}©l¼g¤W§Únªº¼ÆÈ
** ** ** ** ** ** ** ** 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*³¡¤À«Ü²³æ¡A¤]´N¬O§A©Ò»Ýnק諸³¡¤À¡A§A¥i¥H¶ñ¤W§A©Ò»Ýnªº¼ÆÈ
E7 03 00 00 E7 03 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
©ÎªÌ
DA 34 00 00 DA 34 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
³o´N¬Oª÷¿úªº×§ï¤F¡A³o¤@¨B«D±`²³æ¡A§Ú̧¹¦¨¤F¥H¦Z¡A¤£¯à°±¯d¦b³o¤@¨B¡AÄ~Äò¡A§Ų́ӰQ½×§ó²`¼h¦¸ªº¤@Ó°ÝÃD¡A¦b³o¤@¦æ¯u½X¡A§Ú¨ì©³¯à±Nª÷¿úªº¼Æ¶q§ï¨ì¦h¤Ö¡H
¬OFF FF FF 00 FF FF FF FF 00 00 00 00 00 00 00 00
¤T¾F¦ì¦ì¤¸²Õ¼Æ
ÁÙ¬O¥|¦ì
FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
©ÎªÌ»¡®Ú¥»´N¬O
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
³oÓ¬Oӫܲ³æªº°ÝÃD
¥|¦ìªº¥þº¡
FF FF FF FF = 4294967295 ¼ÆÈ¤W´«ºâ¹L¨Ó´N¬O³o»ò¦h¡A§Ú̦A¦^ÀY¬Ý¬Ý¥¿±`¨S¦³×§ï¥N½Xºc¦¨¡A«Ü©úÅã¥|¾F¦ì¤¤E7 03 00 00 E7 03 00 00 ¤¤¶¡¦³¤@ӼƦì¤@©w¬O¶¡¹j½X¡AªÖ©w¬O¥Î¨Ó°Ï§O¿ú©M¦s´Úªº°_©l³¡¤À¡A¨ãÅé¬O3¦ìÁÙ¬O4¦ì¡Hų©ó´åÀ¸¨½¦³¥¿±`ªº¿ú¼Æ¬O2¦ì¤£¯à¨¬°÷Åã¥Üªº¡A§ÚÌ¥i¥H½T©w¬O4¦ì¡A©Ò¥H§Ú̯à¹L²z½×¤Wªº¥¿±`ªº¿ú¼Æ FF FF FF =16777215¡A©Ò¥H³q±`§Ú̯ਣ¨ìªº¥¿±`ªº´åÀ¸ªº³]©wªº¿úªº³Ì¤j¤]´N¬O10000000
·íµM¤]¦³«Ü¦h¨Ò¥~
¦pªGª÷¿ú³æ¿W¬O¤@Ó¦a§}
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
¥þ³¡¥e¥Î¤F²Ä¤@Ó¥|¦ìªº¸Ü«Ü±`¨£ªº´N¬O 999 999 999 ¬°³Ì°ª¤W¼ÆÈ¡A³o¨½¥un¹ï¤ñ¥|¼Æ¦ì¥þ¥N½X FF FF FF FF ´N¯à©ú¥Õ¡A¨ú¤@Ó¥¿±`ªººD¥Îªº9§À¼Æ¡A¤]´N±o¥X¤F4294967295 ¸g¹L§Ú̪º¨ú¦ì¼Æªº¸Ü¡A¤]´N¬O999 999 999 ¡A³o´N¬O¤j¦h¼Æ´åÀ¸ª÷¿úªº³Ì°ª¼ÆÈªº¥Ñ¨Ó¡A³o¨½¹D²z¤j®a¥J²Ó·Q¤@¤U¡AÀ³¸Ó¯à©ú¥Õªº¤F¡C
©Ò¥H§Ú̯వªº×§ï¡A¤]´N¥u¦b¼Æ¦ì¥¿±`ªº±¡ªp¤Uק墨ӳ̤j¼ÆÈ¡A³o¨½´N«Ü©úÅ㪺¯à°÷·Q¨ì°ÝÃD¡A·í§ÚÌ×§ï¥X¤@Ó¼ÆÈ¶W¹L¶¡¹j½X¡A¦b²z½×¤W¥u¯à¦s¦bªº®ÉÔ¡A´N·|¦bÅã¥Ü¤W¥X¤F°ÝÃD¡A«Ü±`¨£ªº´N¬O¼ÆÈ·¸¥X¤F¨ºÓ¸ê®Æ®Ø¡A³Q¥~±ªº¤å¦r¡A±`¨£¬O¡G¿ú¡G¦r¡A©ÎªÌ¤@Ó¶À¦âªº¹Ï¼Ð»\¦í¤F¡AµM¦Z§A¦AÄ~Äò¾ß¿ú¡A«ç»òºâ©O¡H³Ì¦Z´N¬O¦º¾÷¡A´`Àô¿ù»~¡A°O¾ÐÅé³ø¿ù¡CºëÆF¨½±ªº³oÄÁ²{¶H¤j®aÀ³¸Ó¨£¨ìªº«Ü¦h¡C
©ú¥Õ¤F³o¨Ç¡A¨ãÅ鼯ÈÃþ«¬ªº¡A¤j®aÀ³¸Ó³£¯à©ú¥Õק諸°ò¥»¹D²z©Mª`·N¡A¤]´N¬O¦P¤Wz¨S¦³¤Ó¤jªº°Ï§O¡C±`¨£ªº¦³¿ú¡A¤Hª«Åé¤O¼ÆÈ¡A¯Å§O¡Aµ¥µ¥¡A¦¹¤£Ácº¾ªºz»¡¡A½Ð¤j®a¦Û¦æ°Ê¤â¸ÕÅç¡C
¤G «D¨ãÅé¸ê®Æ¡A«D¯Âª««~Ãþªº×§ï¡F³s±a×§ï
³o¨½¤j®aº¥ýn©ú¥Õ¤@Ó·N«ä¡A«D¨ãÅé¸ê®Æ¡A«D¯Âª««~Ãþªº¸ê®Æ¬O«üªº¤°»ò¡H
²³æªº»¡¡A®³´åÀ¸¨ÓÁ|¨Ò¡Aµ´¥NÂùź
¨½±¦³«Ü¦hºØßÓ¤ô¡A±q¯óßÓ¨ì¸Ñ¬rßÓ¡A¨ìÁٻ¡A¨ì¥P¤¦¡A¥»¨¨ã³Æª««~ªº°ò¥»¥N½Xªº½s¸¹¡A¦P®É¤S¨ã³Æ³æ¶µ¤W¦³¼Æ¶qªº³¡¤À¥N½X¡A§Ṵ́²³]²{¦b¥þ³¡ªºßÓ¤ôºØÃþ¤@¦@¬O100ºØ¡A¨º»ò§Ú̦b¯u§}¡A¬Ý¨ìªº¥þ½X¡A°²³]§A¤@¼Ë³£¦³¤@Ó¡A¼g¥X¨Ó´N¬O
01 01 00 00 02 01 00 00 03 01 00 00 04 01 00 00
05 01 00 00 06 01 00 00 07 01 00 00 08 01 00 00
09 01 00 00 0A 01 00 00 0B 01 00 00 0C 01 00 00
0D 01 00 00 0E 01 00 00 0F 01 00 00 10 01 00 00
11 01 00 00 12 01 00 00 13 01 00 00 14 01 00 00
15 01 00 00 16 01 00 00 17 01 00 00 18 01 00 00
19 01 00 00 1A 01 00 00 1B 01 00 00 1C 01 00 00
¦p¦ó¸ÑŪ³o¬q¥N½X¡H«Ü©úÅ㪺´N¬O01 ¬O¹ïÀ³ªº²Ä¤@ºØ¯óßÓªº¦a§} ¦Z±ªº01 ªí¥Ü¼Æ¶q¡A02ªí¥Ü²Ä2ºØßÓªº¦WºÙªº¥N½X¡A01¬O²Ä¤GºØßÓªº¼Æ¶q¡A¨Ì¦¹Ãþ±À¡A«Ü©úÅ㪺¡A§ÚÌ¥i¥H¥H¶R½æªºßÓ¤ôªº¼Æ¶q¨Ó±o¨ì¯u§}ªºÀò¨ú¡A³o´N¬O«D¯Â¸ê®Æª««~Ãþ«¬ªº·N«ä¡A§ÚÌ´M§ä¦a§}Ãþ¦ü©ó³æ¯Âªº¸ê®Æ«¬¡A¦b¬Ý¥N½X¤W¡A§ÚÌ´Nnµy·Lª`·N¤U¨ä°Ï§O¡C
°²³]§A¨Ã¨S¦³Àò±o¨ä¤¤«Ü¦hºØÃþªºßÓ¤ô¡A¨º»ò§A¬Ý¨ì´N¬O³oºØ§Î¦¡
00 00 00 00 02 01 00 00 03 01 00 00 04 01 00 00
00 00 00 00 06 01 00 00 07 01 00 00 08 01 00 00
09 01 00 00 0A 01 00 00 00 00 00 00 0C 01 00 00
0D 01 00 00 00 00 00 00 00 00 00 00 10 01 00 00
11 01 00 00 12 01 00 00 13 01 00 00 14 01 00 00
00 00 00 00 16 01 00 00 00 00 00 00 18 01 00 00
19 01 00 00 00 00 00 00 1B 01 00 00 1C 01 00 00
´Ý¯Ê¤F¤@³¡¤À¡A§Ú̬ݨì³oÓ®ÉÔ¡A´NÀ³·í¶Ü¤WÁp·Q¦Û¤v¨£¹LªºªF¦è¡C¦³¯óßÓ¡A¤j¯óßÓ¡Aµ¥µ¥¡A¦A¬Ý¬Ý³o¬q¥N½Xªº§Î¦¡¡A´Ý¯Êªº³¡¤À«Ü¦h³£«Ü¦³³W«ß¡A¨C¥|¦ì¤@¸`¡A»¡©ú¤F¤°»ò©O¡A³o¨½´N¬O¥þ³¡ªºßÓ¥N½X©Ò¦b¦a¡A§Ú²{¦b»Ýn°µªº´N¬O§â00 00 00 00 ªº¦a¤è«ö·Ó¶¶§Ç¶ñ¤Wª««~¥N½X¡A´N¥þ³¡¾Ö¦³¤F100ºØª««~¡A«ì´_³¡¤À¦p¤U
01 01 00 00 02 01 00 00 03 01 00 00 04 01 00 00
05 01 00 00 06 01 00 00 07 01 00 00 08 01 00 00
09 01 00 00 0A 01 00 00 0B 01 00 00 0C 01 00 00
0D 01 00 00 0E 01 00 00 0F 01 00 00 10 01 00 00
11 01 00 00 12 01 00 00 13 01 00 00 14 01 00 00
15 01 00 00 16 01 00 00 17 01 00 00 18 01 00 00
19 01 00 00 1A 01 00 00 1B 01 00 00 1C 01 00 00
¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C
¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C
µM¦Z§ÚÌ©ú¥Õ¤F¥|¦ìµ²ºc´N¬O¦WºÙ¥N½X¡A¼Æ¶q¥N½X¡A¶¡¹j½X¡A¨º»ò¥þ³¡§ï¤W§ÚÌ·Qnªº¼Æ¶q¼ÆÈ¥H¦Z¡A´NÅܦ¨¦p¤U
01 OF 27 00 02 0F 27 00 03 0F 27 00 04 0F 27 00
05 0F 27 00 06 0F 27 00 07 0F 27 00 08 0F 27 00
09 0F 27 00 0A 0F 27 00 0B 0F 27 00 0C 0F 27 00
0D 0F 27 00 0E 0F 27 00 0F 0F 27 00 10 0F 27 00
11 0F 27 00 12 0F 27 00 13 0F 27 00 14 0F 27 00
15 0F 27 00 16 0F 27 00 17 0F 27 00 18 0F 27 00
19 0F 27 00 1A 0F 27 00 1B 0F 27 00 1C 0F 27 00
¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C
¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C¡C ¡C¡C
³o¼Ë¤@¨Ó¡A§ÚÌ´N¹ê²{¤F¥þ³¡ªºßÓªº¥þ³¡¾Ö¦³¤Î¼Æ¶q¤Wªº9999¡A¬Ý©ú¥Õ¤F¶Ü¡A³o¨½×§ïªº¼Æ¶qªº®ÉÔ¡An°Ñ·Ó²Ä¤@¨Ò¡A¯Â¸ê®ÆÃþ«¬ªº×§ïªº³¡¤À¡A¦Ó¥B¨Æ¹ê¤W§Ú̳̪쪺Àò±o¦a§}ªº®ÉÔ¡A¥i¯à´Ý¯Êµ{«×·|§óÄY«¡A³o¨½´N»Ýn§A¦³°ª±Ó·Pªº¸ê®Æ·P¨ü¯à¤O©M¦a§}·P¨ü¯à¤O¡A¨Ã¥B¡A§Ú̦b³o¨½´N¬O³q¹L¤@Ó¯óßÓªº¼Æ¶q¡A¹ê²{¤F¥þµ{ª««~ªº¥N½XÀòª¾©M×§ï¡A³o´N¬O³s±aק諸³Ì²³æªº¤@Ó¹ê¨Ò¡A³o¨½§Æ±æ¤j®a¤Ï´_¬Ý¡A¤O¨D¬ÝÀ´¡C
¦pªG§A©ú¥Õ¤F³o¤@ÂI¡A±µ¤U¨Ó§Ú̦b¬Ý¤@Ó¨Ò¤l¡A¤ñ¸ûÃø¤@ÂI¡A§Úµ¹¤j®aºt¥Üªº¬OCAPCOMªº«_ÀIÃþ«¬ªº´åÀ¸¡ABIO HAZARD 2
§ÚÌn³q¹L¤@Ó¶}©lªº¤l¼uªº20µo¼Æ¶q¡A¹ê²{¥þµ{¹D¨ã¡AªZ¾¹ªº×§ï¡C
¥N½X³¡¤À¦p¤U
¥Ñ©óªZ¾¹¤è±¡A«Ü©úÅ㪺ªì¯Åµ¹§AªºªZ¾¹´N¬O¤@§â¤M¡A©Ò¥H«Ü¦ÛµMªºÁp·Q¨ì¥N½X¬O01
³o¦b¯u¹ê¦a§}¤¤¤]½T¹ê¦p¦¹¡A©Ò¥H¡C¶}©l´N»Ýn¤j®a¦³¤@Ó¤ñ¸û²M·¡ªº×§ïªº«ä·Q©M²q´ú¡AµM¦Z§Ú̦b¶}ºj¼Ò¦¡¤U 20/19/18/17/10 OK
¥N½X¥X¨Ó¡A¥h±¼°²§}
¶i¤J¯u§}
§A´N·|¬Ý¨ì¦p¤U§Î¦¡
00 00 00 00 02 0A 01 00 16 01 00 00 3C 63 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
³o¬O¥N½X³¡¤À¡A¨¤W¸Ë³Æ¬°¤âºj ¤@§â ¤l¼u 10µo ¯óßÓ¤@Ó 99µo¤l¼u¦X¤@Ó
¹ï·Ó¤Wz¥N½X¡A§ÚÌ´Nª¾¹D¡C02 ¬O¤âºj OA ¬O³Ñ§E¼Æ¶q 16 ¦Z±ªº01 ¤@³»¬Oªí¥Üºj¦s¦b¨¤W¡A¬O¤@§â¡A¤]´N¬Oª««~¦s¦b½X 00 ¶¡¹j 16´N¤@©w¬O¯óßÓ 01 ¬O¤@Ó¡C¥Ñ©ó¯óßÓ¬O¦Yªº¡A©Ò¥H¨ä¦Z¤£·|¦³¦s¦b½X¡A·íµM§A¤]¥i¥H¸ÕµÛ¼g¤W¡A¨Ã¤£¼vÅT¡A¨t²Î·|¦Û°ÊÀ°§A®ø¥¢±¼¡A3C´N¬O¤@©w¬Oª««~Äݩʤ¤¡Aªí¥Ü¤l¼u¦Xªº¥N½X¤F 63 ==99¨S¦³¿ù¡A¥¿½T ¡A01 ¦s¦b½X¡A´N³o¼Ë«Ü²M·¡ªº´N¤ÀªR¤F¥X¨Ó¡A²{¦b§ÚÌn§ï±¼ª««~¹D¨ã¡A«Ü²³æ¡Aµ{§Ç¤@¯ë¬Ûªñªºª««~¦b¤@°_¡A¨º»ò03¥i¯à¬O¤jºj 04 ¥i¯à¬O¨R¾Wºj¡A17¥i¯à¬O¤¤ßÓ 18 ¥i¯à¬O¤jßÓ 3D´N¬O¤U¤@Ó¹D¨ã¡A´N³o¼Ë¨Ì¦¹Ãþ±À´N¥i¥H°µ¨ì¥þµ{ª««~ªº¥N½X×§ï¡A«ö·Ó¨ä¼Ð·Ç¦s¦b®æ¦¡¡A¦Û¤v©¹¤W±¼g´N¬O¤F¡A¦ýnª`·N¡A§Aªº¨¤W¯à¸Ë´XÓ¡A´N§ï´XÓ¡AÃþ¦ü©óª÷¿úªº·¸¥X°ÝÃD¡AÁÙ¦³nª`·N¤@ÂI¡A©ó¤@Ó´åÀ¸ªº¶}µo¤Hûªº²ßºD¡A¦³«Ü¦hªF¦è¦bªì´Á³]p¤W¡A¦s¦b¡A¦ý¬O¦b¥¿¦¡µo¦æ¥H¦Z¡A¥i¯à´N¤£n¤F¡A¦ý¬Oµ{§Çû¬°¤F»°®É¶¡¡A¨S¦³¹ý©³§R°£±¼¡A°µ¤Fӫ̽ª¡A¥»¨¤]¦³½s¸¹¡A§¨¦b¥¿±`ª««~¤¤¶¡¡A©Ò¥H§A¦bק諸®ÉÔ¡A¸Ë³Æ¡A¹D¨ã¥i¯à´N¤£¬O³sÄò¥X²{¡A¦Ó¬O¥X²{¤@Ó©U§£½Xªº¸Ë³Æ¡A§A¥i¥H¸Õ¸Õ¡A¥Í¤Æ¦M¾÷3ªºª««~¦b2¥N¨½±´N¤w¸g¨£¨ì¤F¡A¦¹ÂIª`·N¤@¤U´N¥i¥H¤F¡Cק諸®ÉÔ¤£n¥H¬°¬O¦Û¤vªº¿ù»~¡A¤]¦³¥i¯à¬O´åÀ¸¨½¨S¦³¶}©ñªºªF¦è¡A²z¸Ñ¤F³oÂI¡A¦A¥h²z¸ÑºëÆFªº×§ï¹Lµ{ªº°ÝÃD´N«Ü®e©ö¤F¡C
¤T ¤Hª«Äݩʪº×§ï
²×©ó¨ì¤F³o³¡¤À¤F¡A¦pªG¤j®a¹ï©ó¤W±©ÒÁ¿ªº²z¸Ñ«Ü³z¹ý¡A¨º»ò³o¨½¡A§A¥un¬Ý¬Ý¡A´N¹ý©³©ú¥Õ¤F¡A¥]¬AºëÆF¡A½Ð¦Û¤vÁp·Q¡C
³s±a×§ï¥i¥H¬OßÓ¤ô¡A¥i¥H¬O¬Û¦Pªº¸Ë³Æ¡A¤]¤@©w¥i¥H¬O¤Hª«ªºÄݩʡA«Ü²³æ¡mÅ]©_¹Ú¤Û¹Î¶Ç©_¡n¤Hª«§@¤ñ¤è
µ¥¯Å 01
HP 100
MP 100
¦^¦X¼Æ 3
±a§L 20
ªZ¾¹ ¤p¤M
°ê®aÄÝ©Ê ¯S¨½´µ¶®
¶¤¥îÄÝ©Ê ¼Äx
§ðÀ» 3
¸gÅç 20
ª÷¿ú 50
³o´N«D±`²³æ¤F
01 01 00 00 64 00 00 00 64 00 00 00 03 00 00 00
14 00 00 00 01 00 00 00 0A 00 00 00 02 00 00 00
03 00 00 00 14 00 00 00 32 00 00 00 00 00 00 00
¤wÅܤƪº¸gÅç¼ÆÈ§ä¨ì³o¨½¡AµM¦Z×§ï
01 01 ¡H ¤@©w¬O¤Hª« ¦WºÙ ¥N½X µ¥¯Å 02 01 ´N¬O¤k¥D¨¤ ¤@¯Å
64 00 00 00 64 00 00 00 ¨âÓ100ªº¼ÆÈ
03 ¦^¦X¼Æ¶q 14 ±a§L¶q 01 ´N¬O¤p¤M¨º
0A °ê®aªº¦WºÙ¡A§A´«Ó0B¬Ý¬Ý´NÅܦ¨¤FÁ{ªñªº°ê®aªº¦WºÙ
02 ¼Äx ¡A«Ü²³æªºÁp·Q 01 ¬O¤£¬O¤Íx©O¡H
03 14 32 ´N¬O³Ñ¤Uªº¤T¶µ¤F
¨þ¨þ¡A¥þ³¡³£§ï±¼§a¡I
«Ü²³æ¶Ü~¡H ´N³o¼Ë¡H§ÚÁÙn»¡ÂI¤°»ò©O¡H¦Û¤v¥h¸Õ×§ïºëÆF§a¡I
§Ú¼g¤W±`¨£ªº´X¤j¸ê®ÆÃþ«¬¡A¤j®a°Ñ¦Ò¤§¡C
¤@ §¨½XÃþ«¬
DE CA D3 B6 00 02 00 00 D1 A3 A3 A3 DE FA FE D2
D6 F7 F2 F8 FA 32 21 2F 2D 3E 4E 2D 6A 4E 5F 3A
F6 5A 8D 8D 00 02 00 00 8A 9D 21 41 3A 3C D2 F2
¤G ²Mª©Ãþ«¬
10 27 00 00 10 27 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
¤T µL¶¡¹j½XÃþ«¬¡]»P°²§}«ÜÃþ¦ü¡A¦ý§t¦³¯u§}¸ê®Æ¡^
** ** ** ** A7 D8 E9 FF D1 A3 A3 A3 DE FA FE D2
D6 F7 F2 F8 FA 32 21 2F 2D 3E 4E 2D 6A 4E 5F 3A
F6 5A 8D 8D 6E 7D 6E 7E 8A 9D 21 41 3A 3C D2 F2
** ** ** ** ³¡¤À¬O±`¨£ªº¸ê®Æ©Ò¦b¦a§}
¥| Áa¦V½XÃþ«¬
31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
¤ ´«¦æ½XÃþ«¬
01 01 00 00 01 01 00 00 01 01 00 00 01 01 00 00
00 01 01 00 00 01 01 00 00 01 01 00 00 01 01 00
00 00 01 01 00 00 01 01 00 00 01 01 00 00 01 01
01 00 00 01 01 00 00 01 01 00 00 01 01 00 00 01
00 01 00 00 01 01 00 00 01 01 00 00 01 01 00 00
00 00 01 00 00 01 01 00 00 01 01 00 00 01 01 00
(³oÓ¨£©óÅÊ·R´åÀ¸¡A¤H°¸±¡½t¨½ªº¦a§}¤§¤@¡^
¤» Ãè¶H¦a§}
¤]´N¬O¥þ³¡»Ýn§A¤@°_¤â°Ê×§ï
¤j·§´N³o»ò¨Ç¤F
§Æ±æ¤j®a@µÛ©Ê¤l¬Ý§¹¡A¨Ã¦n¦nªº·Q·Q³o³¡¤Àªº·N«ä¡C
¥| ³Ì¦Z½g ¼Ò½k·j´M
¦pªG§Ú̹ï¤@Ó´åÀ¸¨½ªº¸ê®Æ¨Ã¤£¤j²M·¡¡A´«¥y¸Ü»¡¡A´N¬O¤£¬O¤@Ó¨ãÅé¼ÆÈ¡A¦Ó¬O¤@Ó·P©Êªº»{ÃÑ¡A´åÀ¸¬O¦³¦a§}ªº¡A¦ý¬O§Ú̱`³Wªº§ä¤£¨ì¡A¤ñ¦p¡A¦å±ø¤S°¤F¤@ÂI¡A¦n·P«×¤S¤Wª@¤F¤@ÂI¡Aµ¥µ¥¡A§ÚÌ´N¦b×§ï¾¹¨½¼g¤U¡HµM¦ZÅܤƪº®ÉÔ¡C¼Ò½kªº¤Wª@+ ¼Ò½kªº´î¤Ö-³o¼Ë¤Ï´_ªº·j´M¡A³Ì¦Z¨ÌÂÂ¥i¥H§ä¨ì¦b´åÀ¸¤¤¥H¸ê®Æ§Î¦¡ªº¤è¦¡¦s©ñªº¦a§}¡A§ä¨ì¤F¥H¦Z¡A¨ÌÂÂ¥i¥H×§ï¡A¤j¦P¤p²§¡A³o¨½¡A¤j®a¥i¥H¸ÕÅç¤@¤U¡A×§ï¤@¤U¹q¸£¤WªºKOF97ªº1P ©M 2P ªºÅé¤O¼ÆÈ¡A¸Õ¸Õ¬Ý¡I
¹ê»Úªº×§ïÁÙ¦³«Ü¦h«Ü¦hªºªF¦èn¾Ç²ß¡A¨Ã¤£¬O³o¨½¤@¥y¨â¥y´N»¡ªº²M·¡¡A§Æ±æ¤j®a¦b¤£Â_ªº×§ï¸ÕÅ礤¡A²z¸Ñ§Ú»¡ªº¡A¤£Â_³Ð·s¡A¦¨¬°×§ïªº°ª¤â¡A±M®a¡A¯«¡C
¥ÎFPE-¾Ç·|¥Î¯BÂI×§ïªk-¾Ç·|¥Î¤G¶i¨î¤ÀªR×§ï´åÀ¸-¥©¥ÎFPEªº¨ê·s-¯S®í¦sÀÉ
¥©¥ÎFPE
¥ÎFPE§ï´åÀ¸¡A¤@©wn°µ¨ì¬J¬½¤S·Ç¡C
¤ñ¦p¥ÎFPE§ï´åÀ¸¡A§Aª¾¹D¦³¨âÓ¼ÆÈªÖ©w¦b¤@°_¡A¶H42¡A215¡A¨º»ò¥i¥ÎFPE¶i¦æ¤@¦¸·j¯Á¡A¿é¤J¡§42¡A215¡¨¡]Y¬O16¶i¨î½Ð¦b¼Æ¦Z±¥[ÓH¡^¡A³o¼Ë¤@¦¸§ä¨ìªº¾÷²v«Ü¤j¡C
¤@¨Ç´åÀ¸¦b¹B¦æ®É±N¤@¨Ç¥Dn¼ÆÈ´«¤FÓ¤èªk¦s¡A¥ÎFPEª½±µ§ä¤£¨ì¡A«ç»ò¿ì©O¡C¨º»ònÂàÂàÅs¡A¤ñ¦p¤j®a³ß·Rªº¨¬²y¸g²z¡A¥Î¥ô¦ó¤èªk³£§ä¤£¨ìª÷¿úªº¦a§}¡A´N³o¼Ë©ñ±ó¤F¡HNO¡A°Ê°Ê¸£µ¬¡A¶i¤J«Ø³]¥\¯àªí¡A¬Ý¨£³y¬Ý¥x©Ò»Ýªº¶O¥Î¤F¶Ü¡A³o¨½´N¬O¬ð¯}¤f¡AFPE¤£¶O¤O´Nµo²{¤F¥Ø¼Ð¡A¤U±»ò¡A±N¨ä§ï¬°t¼Æ¡AÄ´¦pì¼Æ¬°E4 07 00 00¡A´N±N³Ì°ª¦ì¥[ÓF¡A¬°E4 07 00 F0¡A´Nµo²{t¼Æ¤@¤jµ§¡A«ö½T©w´Nµo°]¤F¡I
¡§«Ò°ê®É¥N¡¨¤j®a³£ª±¹L¡A·í§A³y¤F©_¸ñ¦Z¡A¦³2000¦~ªºË°O®É¡A§Aªº²Ä¤@¦L¶H¬O·j¯Á2000¡H¨º»ò¡A¿ù¡I¨S¬Ý¨£¥¦¬O¦¨50»¼´îªº¶Ü¡A©Ò¥H¡AÀ³¸Ó·j¯Á2000/50=40¡AµM¦Z´î1´î1¦a·j¯Á¡]n¤£´N¬O2000/10=200¡A´î5¶i¦æ·j¯Á¡A³oªFªF§ï¤F¨S¹ê¥Î»ùÈ¡A¥u¤£¹LÁ|Ó¨Ò¤l½}¤F¡^¡C¦Ó¦³¨Ç«h¬On¥[¤W¦ì¼Æ¡A¦pÅã¥Ü200¡A«on·j¯Á2000¡AÅܤƦh¼Ë¡A¤j®a¦Û¤vºCºCªºÅé·|§a¡I
FPEªº×§ï°O¾ÐÅé¥\¯à«Ü¦³¥Î¡A¦h¥Î¥Î¥¦¡A¬Ý¬Ý§ä¥Xªº¦a§}©P³òªº¼Æ¡A»¡¤£©w¦³Åå³ß©O¡C¤Ï¥¿§Ú±q¤£¥Î¤°»ò°O¾ÐÅéÂê©w¡A¤@¯ë³£¥Î°O¾ÐÅé½s¿è¡CµM¦Z¬Ý¤W¤U¼Æ¡A¹ï©ó´¶³q´åÀ¸¡AÀ³¸Ó¤£¸Õ´N¬Ý¥X³oÓ¦sªº¬O¤°»ò¼ÆÈ¡A¦Ó¨º¨½À³¸Ó¬O¦s©ñÅ]ªkªº¦a§}¡A©Î³oÓ¦a§}ªÖ©w¤£¬O§Ú ©Ònªº¡K¡K¦pªG§AÁÙ¥¼¹F¨ì¬Ý¬Ý´Nª¾ªº¦a¨B¡A¨º»ò§Ö½m½m§a¡A¥H¦Z¥i¬Ù³\¦h®É¶¡©O¡C
¤@®É·Q¤£¥X¤F¡A¤U¦¸¦³¦A»¡§a¡C
¡@ ¾Ç·|¥Î¯BÂI×§ïªk
³oÓ´åÀ¸¬O¨Ï¥Î¯BÂI¼Æ¨Ó¦s©ñªº¡A¦b³o¨½§Ú»¡©ú¤@¤U¦p¦ó¥H FPE 2000×§ï¥LÌ¡CFPE 2000 ¥i¥Hª½±µ¤ÀªR¯BÂI¼Æ¡A¥un ª½±µ¿é¤J´N¦n¤F¡A¨Ò¦p "100.0"¡C
©Î³\§A·|°Ý: TA ©Î AoE ªº¸ê·½¶q¦bµe±¤WÅã¥Ü¥u¦³¾ã¼Æ³¡¤À©O? ¬Oªº¡A¥LÌÁôÂäF¤p¼Æ³¡¤Àªº¼ÆÈ¡A¦pªGµe±¤WÅã¥Üªº¬O "1000"¡A¦]¬°¥¦ÁôÂäF¤p¼Æªº³¡ ¤À¡AY§Aª½±µ¦b FPE 2000 ¥H "1000" ©Î "1000.0" ¥h¤ÀªR¥L¡A¥i¯à¬O§ä¤£¨ìªº¡C¨º§ÚÌn«ç»ò¿ì©O? ¨ä¹êµ{¦¡³]p®vÁÙ¬O¤ñ¸û³ßÅw¾ã¼Æªº¡A¨Ò¦p§ÚÌèè¶i¤J´åÀ¸®É¡ATA ©Î AoE ªº¸ê·½³£¦³Óªì©lÈ¡A¨Ò¦p "400"¡C³o®ÉÔ³oÓȫܥi¯à ´N¬O 400.0¡A¤@Ó¹A¤Ò¯à°÷±Äªº¸ê·½³Ì¤j¶q¬O 10¡A¤]«Ü¥i¯à¬O 10.0¡C¦pªG§A¬£Ó¹A¤Ò¥h±Ä¸ê·½¡A¤@ª½¨ì¥L±Ä§¹ 10 ·h¦^°ò¦a«e¤£n°µ¥ô¦ó¨ä¥Lªº¨Æ¡A¤@·h ¦^°ò¦a°¨¤W°±¤î¹A¤Òªº°Ê§@¡C³o®É§A¾ãªº¸ê·½¶qÅܦ¨ 410¡A«Ü¥i¯à´N¬O 410.0¡C¨Ì·Ó³oÓì«h¡A¤@¶}©l§Ṳ́ÀªR "400.0"¡A¬£¹A¤Ò±Äº¡ 10¡A·h¦^°ò¦a«e¤£n°µ ¥ô¦ó¨ä¥Lªº¨Æ¡A¤@·h¦^°ò¦a°¨¤W°±¤î¹A¤Òªº°Ê§@¡A¤ÀªR "410.0"¡C¨Ì¦¹Ãþ±À¡A´N¤j·§¥i¥H§ä¨ì¥Ø¼Ð¤F¡C§Ú̳oÓì«h¬O²q·Qµ{¦¡³]p®v·|¹ï¨C¤@Óªì©lȤγ̤j È¥H ***.0 ªº¤è¦¡©w¸q(¤@¯ë¤Hªº²ß©Ê¹À)¡C¦ý¬O¦pªG§A¦b¹A¤Ò·h¦^°ò¦a«e°µ¨ä¥L®ø¯Ó¸ê·½ªº¨Æ©Î¬O¦b¹A¤Ò¨S¦³±Äº¡ 10 ´N·h¦^°ò¦a¡A¨º¥i¯à´N·|¦³¤p¼ÆÂI«áªº ¼Æ¥X²{¤F¡A¨º´N¤£¯à«Ü·Ç½Tªº¤ÀªR¤F¡C¥H«e¦³ºô¤Í»¡ 100.0 ¨ì 100.9 ªºÂ½¦¨¥|Ó¤Q¤»¶i¦ì bytes ®É¡A«e¨âÓ bytes ·|¤@¼Ë¡C¨ä¹ê³o¤£¥¿½T¡A®Ú¾Ú´ú¸Õ¡A¦³¨Ç¯BÂI¼Æ(¦p120.4©M120.5)¥u¦³²Ä¤@Ó byte ·|¤@¼Ë¦Ó¤w. ¦Ó¥B³oÓ byte «ÜÃøÅܰʡA¥²¶·¾ãÓ¯BÂI¼Æ¦³«Ü¤jªºÅܰʤ~·|ÅÜ¡C©Ò¥H¤ñ¸û¦nªº¤ÀªR¤èªk¦p¦Pè軡ªº¤~·|¤ñ¸û¥¿½T¡CFPE 2000 ¤] ¥i¥H§â¯BÂI¼ÆÂà´«¬°¤Q¤»¶i¦ì¼Æ¡A¦b "Others" ¥ª¤U¤è¨º¨âÓ¤¤¶¡¦³Ó "Hex"«ö¶sªºÄæ¦ì¡A§A¥un¦b¤W±Äæ¦ì¿é¤J¯BÂI¼Æ¡A¤U±·|¥X²{¤Q¤»¶i¦ìÈ¡A§A¥i¥H¦Û¦æ¸Õ¸Õ¡C
¤]³\¦³ªºªB¤Í¬Ý¨ì¼ÐÃD®ÉºN¤£¨ìÀY¸£¡A¨º»ò±æ¤U¬Ý§a¡C¡]¶È¾A¦XFPE5.x¡^
§Ú§ïª÷¦â¨B¦æ³¾®É¡A¦n¤£®e©ö¥Î¦W¦r§ä¥X¨B¦æ³¾¦a§}ªº¤j·§¦ì¸m®É¡A«o¬Ý¨£º¡«Ì¯¥Íªº¸ê®Æ¦ÓµL±q¤U¤â¡C¯í¯íªº¸ê®Æ¤¤¡AþÓ¬On®`¦ì¤¸²Õ©O¡Hn§ä¨B¦æ³¾ªº¤°»ò³t«×¡B@¤O¤§Ãþªº¡A´åÀ¸¤¤¤S¨S¦³¨ãÅé¸ê®Æ¡A°ª¶¥¤ÀªRµL±q¤U¤â¡C¥Î§C¶¥¤ÀªR¡H¨º¥i¬O¥»¤H³Ì§Ò¿Ðªº¡C
¤s½a¤ôºÉ·Q©ñ±ó®É¡A²´·ú¤@«G¡AOK¡A¥BÅ¥§ÚºCºC¹D¨Ó¡C§ä¨ì¨B¦æ³¾¦W¦rªº¦a§}¦Z¡A«öEÁä¶i¤J°O¾ÐÅé½s¿è¡A¤£«ö¥ô¦óÁä¡A¤Á¦^´åÀ¸¤¤¡Cµ¹¨B¦æ³¾³Þ¹¡A¨Ï¥¦¬Y¤@¶µ¯à¤O¼Wªø¡A¤Á¨ìFPE¡A«ç»òÁÙ¬O¤W¦¸ªº¸ê®Æ¡A¨º»ò«öESCÁä¡A®¦¡A¦³´XÓ¸ê®Æ¦b°Ê°Ú¡]§ïÅܤF¡^¡A¨S¬Ý²M¡H¨º»ò¦A·Ó¤W±ªº¤èªk¨Ó¤@Ãä§a¡Iµo²{§ï°Êªº¸ê®Æ¤F¶Ü¡A¤ÀªR¨ä¤W¤UªºÈ¡A«ç»ò¼Ë¡A¦³´X¦æ¬O«Ü¦³³W«ßªº¡A¹ï°Õ¡A¨º´N¬O¨B¦æ³¾ªº¸ê®Æ¤F¡C
¨SÅ¥À´¡H¦Û¤v¹ê½î¤@¤U§a¡A³oÓ¤èªk¥i¬O«Ü¦³¥Îªº³á¡I
¾Ç·|¥Î¤G¶i¨î¤ÀªR×§ï´åÀ¸
¤£¤Ö´åÀ¸¤¤³£¦³¤°»ò½Ñ¦p¤Hª«ªº¯S®í¯à¤O¡A¤ñ¦pDIABLO¡C¨º»ò¥¦ªºÅ]ªk¬O¦p¦ó¦s©ñªº©O¡A¨CÓÅ]ªk¥Î¤@Ӧ줸²Õ¡A00¥NªíµL¡A01¥Nªí¦³¡H¨º¤]¤Ó®ö¶O¤F§a¡A¤@¯ë¨Ó»¡µ{§Çû³£·R¥Î¤G¶i¨î¨Ó¦s©ñ¦U¶µ¯à¤O¡A¤j®aª¾¹D¡A¤@Ӧ줸²Õ¦³8¦ì¡]¦pFFh¤Æ¬°¤G¶i¨î¬O11111111¡^¡A´åÀ¸¤¤ªº¯à¤O´N¬O¥e¤F¤@¦ì¡]bit¡^¡A0¥NªíµL¡A1¥Nªí¦³¡C¦pªG¬Y¤@´åÀ¸ªº¯à¤O±Æ©ñ¬°00000011¡A¨º»ò¦b°O¾ÐÅé¡]µwºÐ¡^¤¤¦s©ñ´N¬O03h¡AÅãµM¥Î¤G¶i¨î¯à¦³®Ä¦a´î¤Ö¦sÀxªÅ¶¡¡C
¥Ñ¤W±¬Ý¨Ó¡Aª½±µ·j¯Á¯à¤Oªº¦a§}¬O¤£©ú´¼ªº¡A¤@¯ë§ÚÌ×§ï³£§ä¥X³oÓ¤Hª«¡]©Î¨ä¥L¤°»òªFªF¡^ªº¸ê®Æ©Ò¦b¦a¡AµM¦Z§ä¨ì¯à¤Oªº¨ãÅé¦a§}¡A±N¨ä§ï¬°FFh¡A¤@¯ë´N¥i¾Ö¦³¥þ³¡ªº¯à¤O¡C
¤U±§Ú¥H¦´Áªº¾Ô²¤´åÀ¸¸g¨å¡§«Hªø¤§³¥±æ¡X¡X¤Ñµ¾°O¡¨¬°¨Ò¨Ó¤ÀªR¡]·í¦~ÁÙ¨S¦³FPE4©M5¡A¥Î¨ä¥Lªº°O¾ÐÅé×§ï¤u¨ã·|¦º¾÷¡A¥u±o¥ÎPCTOOLS¡^¡C°O±o·í¦~§Úק諸®ÉÔ¡A®tÂI·Q¯}¸£³U¡C¤Ñµ¾°O¤¤Ó¦U¤Hª«³£¦³¡§´¼¤O/´¼¤~¡B¬Fªv/¬F¤~¡B¾Ô¤æ/¾Ô¤~¡¨¤T¶µ¯à¤O¡A§Aª½±µ§ä´¼¤O©Î§ä´¼¤~¡A³£¬O§ä¤£¨ìªº¡C¦Ó§Ú©ä¤FÓÅs¡A´M§ä¥Lªº³Ô¥\¡AµM¦Z¤W¤U¤ÀªR¡A¤~±o¥Xµ²ªG¡Cì¨Ó¥Lªº´¼¤O¬O«ö´¼¤~ªº¦Ê¤À¤ñ¦s©ñ¡A¦Ó´¼¤~¬O±N´åÀ¸¤¤ªº¸ê®Æ°£¥H2¦s©ñ¡A©Ç¤£±o§ä¤£¨ìù¡]¥úºa³oÓ²V³J¡^¡I¤ô¨ì´ë¦¨¡A×§ï¨ä¥¦½Ñ¦p§L¤O¡A°V½m¡K¡K´N¬O²³æªº¨Æ¤F¡C
§ä¨ì¤F¤Hª«ªº¯S§Þ©M±a§L¯à¤O¦Z¡A«ö²ßºD³£§ï¬°FF¡A¯S§Þ¨ì¬OPASS¤F¡A¦ý±a§L¯à¤O«o¤£¹ï¡A«ç»ò³£Åܤ@ÓÓªºO O O O¤F¡]À³¬OS¡BA¡BB¡BC¡BD¡^¡A«ä¦Ò¨}¤[¡A¥Ñ©ó¯à¤O¦³6¯Å¡A¬G¤@¦ì¬O©ñ¤£¤Uªº¡C¨â¦ì¡H¨â¦ì¥u¦³00¡B01¡B10¡B11¥|¯Å°Ú¡A©ñ¤£¤U6ӯŧO¡A¨º»ò¥u¦³3¦ì¤F¡A¥i±q¨Ó¨S¦³¤@Ó´åÀ¸¥Î¤F3¦ì¦s©ñªº¡An»ò4¦ì¡An»ò2¦ì¡A¦A»¡¦@¦³¡§³°¡BÃM¡Bºj¡B¤ô¡¨¥|Ó¡A4x3¦@12¦ì¡A¤£¨¬2Ӧ줸²Õ16¦ì¡A¦Ó¥B3¦ì¯à©ñ8¯Åªº¯à¤O¡AÃø¹D¨£°¤F¡H¤S«ä¦Ò´½¤[¨Ã¸Õ¥X½T¬O¥u¦³¨âӦ줸²Õ¡A¤z¯Ü¡A½ä¤@§â¡C000¥NªíE¯Å¡A001¥NªíD¯Å¡A010¥NªíC¯Å¡A011¥NªíB¯Å¡A100¥NªíA¯Å¡A101¥NªíS¯Å¡A¤@Ӧ줸²Õ¦s2Ó¯à¤O¡AOK¡A§â2Ӧ줸²Õ§ï¬°2Dh¡A2Dh¡]00101101¡^¡A¶i¤J´åÀ¸¡A¤£¹ï¡A«ç»ò¡§X¡¨³£¥X¨Ó¤F¡C¤Ï¦^¨Ó¦A§ï¡A§ï¬°6D FB¡]01101101 11111011¡^¡A®@¡]Åw©I¡^¡A¹ï°Õ¡A¥þ¬OS¯Å¹Æ¡AÁÙ¦³ÅKÃM©O¡I
«ç»ò¼Ë¡A°÷Á}Ãø§a¡A§O¬Ý²{¦b»¡»¡Â²³æ¡A¦b¤£ª¾¹Dªº±¡ªp¤Un·Q¥X¨Ó¬O«ÜÃøªº¡C¦Ó³o¡A¤]¬O×§ï´åÀ¸¼Ö½ìªº©Ò¦b¤§¤@¡C§Æ±æ¬Ý¤F¤W±ªº¤ÀªR¡A¯àµ¹§A¦³©Ò¦¬Àò¡]ºÉºÞ¥H¦Z¥i¯à¥Î¤£¨ì¡^¡C
¥©¥ÎFPEªº¨ê·s
¤]³\¦³ªºªB¤Í¬Ý¨ì¼ÐÃD®ÉºN¤£¨ìÀY¸£¡A¨º»ò±æ¤U¬Ý§a¡C¡]¶È¾A¦XFPE5.x¡^
§Ú§ïª÷¦â¨B¦æ³¾®É¡A¦n¤£®e©ö¥Î¦W¦r§ä¥X¨B¦æ³¾¦a§}ªº¤j·§¦ì¸m®É¡A«o¬Ý¨£º¡«Ì¯¥Íªº¸ê®Æ¦ÓµL±q¤U¤â¡C¯í¯íªº¸ê®Æ¤¤¡AþÓ¬On®`¦ì¤¸²Õ©O¡Hn§ä¨B¦æ³¾ªº¤°»ò³t«×¡B@¤O¤§Ãþªº¡A´åÀ¸¤¤¤S¨S¦³¨ãÅé¸ê®Æ¡A°ª¶¥¤ÀªRµL±q¤U¤â¡C¥Î§C¶¥¤ÀªR¡H¨º¥i¬O¥»¤H³Ì§Ò¿Ðªº¡C
¤s½a¤ôºÉ·Q©ñ±ó®É¡A²´·ú¤@«G¡AOK¡A¥BÅ¥§ÚºCºC¹D¨Ó¡C§ä¨ì¨B¦æ³¾¦W¦rªº¦a§}¦Z¡A«öEÁä¶i¤J°O¾ÐÅé½s¿è¡A¤£«ö¥ô¦óÁä¡A¤Á¦^´åÀ¸¤¤¡Cµ¹¨B¦æ³¾³Þ¹¡A¨Ï¥¦¬Y¤@¶µ¯à¤O¼Wªø¡A¤Á¨ìFPE¡A«ç»òÁÙ¬O¤W¦¸ªº¸ê®Æ¡A¨º»ò«öESCÁä¡A®¦¡A¦³´XÓ¸ê®Æ¦b°Ê°Ú¡]§ïÅܤF¡^¡A¨S¬Ý²M¡H¨º»ò¦A·Ó¤W±ªº¤èªk¨Ó¤@Ãä§a¡Iµo²{§ï°Êªº¸ê®Æ¤F¶Ü¡A¤ÀªR¨ä¤W¤UªºÈ¡A«ç»ò¼Ë¡A¦³´X¦æ¬O«Ü¦³³W«ßªº¡A¹ï°Õ¡A¨º´N¬O¨B¦æ³¾ªº¸ê®Æ¤F¡C
¨SÅ¥À´¡H¦Û¤v¹ê½î¤@¤U§a¡A³oÓ¤èªk¥i¬O«Ü¦³¥Îªº³á¡I
¡@
¯S®í¦sÀÉ
FPE2000¤@ӫܦnªº¥\¯à¬O¯à§â§A¤w¸g×§ï¦nªºªF¦è¦s¤U¨Ó¡A¤U¦¸§A¦A¥´¶}´åÀ¸®É¥i«·s½Õ¤J¡A³oÓ¦s½L¤å¥óªº¦Zºó¦W´N¬OFPE¡C¤èªk«Ü²³æ¡A¥un«öCTRL-2¨ìªí®æ³B¡A«öLOAD¡]ŪÀÉ¡^¡A¿ï¾Ü·QnªºFPE¤å¥ó¦W§Y¥i¡CFPE2000·|¦Û°Ê§â¨º¨Ç¦a§}Âê©w¡C¤£¹Lnª`·N¡A¦s½Lªº¤å¥ó¦W¤£¯à¬°¤¤¤å¦W¡C¥t¥~¡AÅwªï¤j®a§â¦Û¤v×§ï¤Fªº´åÀ¸°µ¦¨FPE¦sÀÉ¡A®³¥X¨Ó©M¤j®a¤À¨É¡C
[size=5][color=#ff0000]±q´åÀ¸¤¤±o¨ì°ÊºA°O¾ÐÅé¸ê®Æ
[/color][/size]¤u¨ã¡G
SoftICE°ÊºA½Õ¸Õµ{§Ç¡A´åÀ¸×§ï¤u¨ã¡]ª÷¤s´å«L¡^¡A¤Ï¶×½s¡]W32Dasm¡^¡AHex Workshop
------------------------------------------------------------------------------
¤@¡B§ä¨ì°O¾ÐÅ餤©Z§JX§¤¼Ð
¡@¡@1¡B¥Îª÷¤s´å«L·j¯Á¡A¤èªk¦p¤U¡]ª÷¤s´å«Lªº¨Ï¥Î§Ú´N¤£»¡¤F¡^
¡@¡@¡@¡@§â©Z§J©¹¥ª²¾°Ê¤@¨Ç¡A´N·j¯Á¡§´î¤Ö¡¨¡F©Z§J©¹¥k²¾°Ê¡A´N·j¯Á¡§¼W¤j¡¨
¡@¡@¡@¡@¤Ï´_·j¯Á±N·|§ä¨ì¤@Ó¦a§}¡]·íµM¨ä¥L´åÀ¸¥i¯à¤£¤î¤@Ó¡^¡A³o¨½¬O08BFAACC
¡@¡@¡@¡@ª`¡G°ÊºAªº°O¾ÐÅé¤À°t´N¬O¤U¦¸§A¦pªG¦A¦¸·j¯Á¡A¦a§}±N¤£¦A¬O08BFAACC
¡@¡@2¡B§ä¨ì¨º±ø¥N½X×§ï¤F³oÓ¸ê®Æ¡]X§¤¼Ð¡^
¡@¡@¡@¡@¥[¸ü SoftIce
¡@¡@¡@¡@¦b´åÀ¸ª¬ºA Ctrl+D ½Õ¥XSoftIce¡A¿é¤J BPM 08BFAACC W¡A³o¨½ªºWªí¥Ü¦pªG³oÓ¦a §}³Q¼g±N¤¤Â_
¡@¡@¡@¡@¦^¨ì´åÀ¸¡A²¾°Ê©Z§J¡A¥ª²¾¤@¤U¡Aµ{§Ç¤¤Â_¡ASoftIce«ü¦Vªº¤W±¤@¥y¬O
¡@¡@¡@¡@¡@¡@004640B3 MOV DWORD PTR [ESI+000001A4],EAX
¡@¡@¡@¡@³o¥y´N¬O×§ï©Z§J§¤¼Ðªº¥N½X¡A·íµM¥k²¾¤]¯à§ä¨ì¤@¥y¡A³o¨½´N¤£«´_¤F
¡@¡@3¡B×§ïµ{§Ç¨Ï°ÊºAªº¸ê®ÆÅܦ¨ÀRºA
¡@¡@¡@¡@³o¨½»¡ÂIÃD¥~¸Ü¡A×§ïµ{§Ç¥]¬A¨âºØ¡A¤@ºØ¬Oª½±µ×§ïµ{§Ç¡A¤@ºØ¬O×§ï°O¾ÐÅ餤ªºµ{§Ç¡]°O¾ÐÅé¸É¤B¡^¡A³o¨½¥Ñ©ó§ÚÃi¡A©Ò¥H¥Î¤F²Ä¤@ºØ
¡@¡@×§ïµ{§Ç¡G
¡@¡@¡@¡@ºÆ¨g©Z§Jµ{§Ç¦s¦bFortress2.dat·í¤¤¡A¦pªG§A§â³oÓ¤å¥ó§ï¦W¬°EXE¤å¥ó¤@¼Ë¥i¥H¹B¦æ¡A³o¨½§ÚÌ´N§â¥Lק令Fortress2.exe
¡@¡@¡@¡@¥´¶}W32Dasm¤Ï¶×½s¡ASHIFT+F12¸õ¨ì004046B3¡A§A¬Ý¨ì³o´X¦æ
¡@¡@¡@¡@¡@¡@004046B3 8986A4010000 MOV DWORD PTR [ESI+000001A4],EAX
¡@¡@¡@¡@¡@¡@004046B9 8B8644020000 MOV EAX,DWORD PTR [ESI+00000244]
¡@¡@¡@¡@¡@¡@004046BF C744241001000000 MOV [ESP+10],00000001
¡@¡@¡@¡@è¤~§ÚÌ»¡¤F004046B3¬O×§ïX§¤¼Ðªº¨º±ø»y¥y¡A²{¦b§ÚÌnÅý¥L¨C¦¸×§ï§¹µ{§Ç´N¯à°÷§âX§¤¼Ð¦sÀx¨ì¤@Ó©T©wªº¦a§}
¡@¡@¡@¡@²{¦bnÅý¥¦¹B¦æ¨ì³o¨½´NJMP¨ì¤@Ó§Ú̦ۤvªº¥N½Xªº¦a¤è¡A©ó¬O¦bµ{§Çªº§À³¡§Ú̧ä¨ì¤@¬qªÅ¥Õªº°Ï°ì00465A52¡A©ó¬O§Ú×§ï004046BF¬°¥N½X
¡@¡@¡@¡@JMP 00465A52¡A¾÷¾¹½X¬°E98E130600¡A¦]¬°³o¥yªºªø«×¤£°÷¥H«eªº¨º¥yªø¡A©Ò¥Hn¥[¤J´XÓNOP¡A¾÷¾¹½X¬°90¡A©Ò¥H§ÚÌ¥´¶}HEX Workshop×§ïµ{§Ç¡ACTRL+G¸õ¨ì¦ì²¾¬°000046BFªº¦a¤è¡A¬Ý¨ì¤FC744241001000000¡A§Ú̧⥦קאּE98E130600909090¡A²{¦bµ{§Ç±N¤@¹B¦æ¨ì³o¨½´N¸õ¨ì00465A52¹B¦æ§Ú̪º¥N½X¡C
¡@¡@4¡B¹ê²{§Ú̦ۤvªº¥N½X¡AµM¦Z¸õ¦^
¡@¡@¡@¡@§Ú̪º¥N½Xn°µªº¬O§â°ÊºAÅܦ¨ÀRºA¡A
PUSH EAX
MOV EAX,[ESI+000001A4]
MOV [00470000],EAX
POP EAX
JMP 004046C7
¡@¡@¡@¡@³o¼Ë³oÓ¼ÆÈµL½×¹B¦æ¦h¤Ö¦¸¡A¥un§A²¾°Ê¡]·íµM¥k²¾¤]n×§ï¡^´N¯à¦b00470000¤¤§ä¨ìX§¤¼Ð¡A³o¬q¾÷¾¹½X¬°
¡@¡@¡@¡@50 8B86A4010000 A300004700 58 E95BECF9FF
¡@¡@¡@¡@§Ñ¤F»¡è¤~§Ú̧â004046BF´À´«±¼ªº¨º¥yMOV [ESP+10],00000001¤]¥²¶·¥[¤W¡A©Ò¥H¥´¶}HEX Workshop,CTRL+G¸õ¨ì00465A52¡A×§ï¥[¤J
¡@¡@¡@¡@C744241001000000 50 8B86A4010000 A300004700 58 E95BECF9FF
¡@¡@¡@¡@³o¼Ë°ÊºA¸ê®Æ´NÅܦ¨¤FÀRºA
------------------------------------------------------------------------------
²{¦b¦^ÅU¤@¤U
¡@¡@¡@¡@º¥ý·j¯Á§¤¼Ð¦a§}
¡@¡@¡@¡@§ä¨ì§ïÅܳoÓ¦a§}ªº¥N½X
¡@¡@¡@¡@×§ï¥N½XÅý¥L¸õ¨ì¦Û¤vªº¥N½X¤¤¹B¦æ
¡@¡@¡@¡@¦bµ{§ÇªºªÅ¥Õ¬q¥[¤J¦Û¤vªº¥N½X¡A·íµMn¸É¤W³Q´À´«¤Fªº¨º¥y¡AÁÙ¦³×§ï¤F±H¦s¾¹¡A¥²¶·¥ýPUSH,¦APOP
¡@¡@¡@¡@¤U±ªº¤u§@´N¬O¼g¤@Óµ{§ÇŪ¨ú³oÓ¦a§}¤F¡A§Ú¥ÎVC¼g¤F¤@Ó¡A¶¶«K¶K¤@¤UÃöÁä¥N½X
------------------------------------------------------------------------------
CProcess m_process;
bool m_ret=m_process.FindProcess("FortressII";
if (m_ret)
{
BYTE tank1xL = m_process.ReadByte(0x00470000);
BYTE tank1xR = m_process.ReadByte(0x00470001);
WORD tank1x = tank1xL+tank1xR*256;
temp = tank1x;
str.Format("%d",temp);
m_tank1x=str;
UpdateData(FALSE);
return TRUE;
}
else
return FALSE;
-----------------------------------------------------------------------------
CProcess¬O¤@Ó§Ú½s¼gªº×§ïÃþ¡A³o¨½¥Î¨ìªº¨ç¼Æ¥N½X¦p¤U
HANDLE CProcess::OpenProcess(char *p_ClassName, char *p_WindowTitle)
{
HWND hWindow;
DWORD pid;
hWindow = FindWindow(p_ClassName, p_WindowTitle);
if (hWindow)
{
GetWindowThreadProcessId(hWindow, &pid);
return ::OpenProcess(PROCESS_ALL_ACCESS, false, pid);
}
return NULL;
}
bool CProcess::FindProcess(char *p_WindowTitle)
{
if (m_hProcess == NULL)
{
m_hProcess = this->OpenProcess(NULL, p_WindowTitle);
if (m_hProcess)
m_bGameRunning = true;
return m_bGameRunning;
}
else
return false;
}
BYTE CProcess::ReadByte(DWORD p_Address)
{
DWORD bytes;
BYTE tmpvalue;
if (m_bGameRunning)
{
if (ReadProcessMemory(m_hProcess, (void*)p_Address,
(void *)&tmpvalue, 1, &bytes) == 0)
return 0;
else
return tmpvalue;
}
return 0;
}
[size=6][color=#0000ff]¦ì¹Bºâ°ò¦¡]µæ³¾¬Ýªº¡^¡]¦³ÂI¹³½Ò¥»¡^
[/color][/size]º¥ý§Ú̱NWPEºIÀòªº«Ê¥]«O¦s¬°¤å¥»¤å¥ó¡AµM¦Z¥´¶}¥¦¡A³o®É·|¬Ý¨ì¦p¤Uªº¸ê®Æ¡]³o¨½§ÚÌ¥Hª÷±e¸s«L¶Ç¨½PK©±¤p¤G«È¤áºÝ°e¥Xªº¸ê®Æ¬°¨Ò¨ÓÁ¿¸Ñ¡^¡G
²Ä¤@Ó¤å¥ó¡G
SEND-> 0000 E6 56 0D 22 7E 6B E4 17 13 13 12 13 12 13 67 1B
SEND-> 0010 17 12 DD 34 12 12 12 12 17 12 0E 12 12 12 9B
SEND-> 0000 E6 56 1E F1 29 06 17 12 3B 0E 17 1A
SEND-> 0000 E6 56 1B C0 68 12 12 12 5A
SEND-> 0000 E6 56 02 C8 13 C9 7E 6B E4 17 10 35 27 13 12 12
SEND-> 0000 E6 56 17 C9 12
²Ä¤GÓ¤å¥ó¡G
SEND-> 0000 83 33 68 47 1B 0E 81 72 76 76 77 76 77 76 02 7E
SEND-> 0010 72 77 07 1C 77 77 77 77 72 77 72 77 77 77 6D
SEND-> 0000 83 33 7B 94 4C 63 72 77 5E 6B 72 F3
SEND-> 0000 83 33 7E A5 21 77 77 77 3F
SEND-> 0000 83 33 67 AD 76 CF 1B 0E 81 72 75 50 42 76 77 77
SEND-> 0000 83 33 72 AC 77
§Ú̵o²{¨â¦¸PK©±¤p¤Gªº¸ê®Æ®æ¦¡¤@¼Ë¡A¦ý¬O¤º®e«o¤£¬Û¦P¡A§Ú̬OPKªº¦P¤@ÓNPC¡A¬°¤°»ò·|¤£¦P©O¡H
ì¨Óª÷±e¸s«L¶Çªº«Ê¥]¬O¸g¹L¤F¥[±K¹Bºâ¤~¦bºô¸ô¤W¶Ç¿éªº¡A¨º»ò§Ú̱Á{ªº°ÝÃD´N¬O¦p¦ó±N±K¤å¸Ñ±K¦¨©ú¤å¦A¤ÀªR¤F¡C
¦]¬°¤@¯ëªº¸ê®Æ¥]¥[±K³£¬O²§©Î¹Bºâ¡A©Ò¥H³o¨½¥ýÁ¿¤@¤U¤°»ò¬O²§©Î¡C
²³æªº»¡¡A²§©Î´N¬O"¬Û¦P¬°0¡A¤£¦P¬°1"¡]³o¬O°w¹ï¤G¶i¨î«ö¦ì¨ÓÁ¿ªº¡^¡AÁ|Ó¨Ò¤l¡A0001©M0010²§©Î¡A§ÚÌ«ö¦ì¹ï¤ñ¡A±o¨ì²§©Îµ²ªG¬O0011¡Apºâªº¤èªk¬O¡G0001ªº²Ä4¦ì¬°0¡A0010ªº²Ä4¦ì¬°0¡A¥¦Ì¬Û¦P¡A«h²§©Îµ²ªGªº²Ä4¦ì«ö·Ó"¬Û¦P¬°0¡A¤£¦P¬°1"ªºì«h±o¨ì0¡A0001ªº²Ä3¦ì¬°0¡A0010ªº²Ä3¦ì¬°0¡A«h²§©Îµ²ªGªº²Ä3¦ì±o¨ì0¡A0001ªº²Ä2¦ì¬°0¡A0010ªº²Ä2¦ì¬°1¡A«h²§©Îµ²ªGªº²Ä2¦ì±o¨ì1¡A0001ªº²Ä1¦ì¬°1¡A0010ªº²Ä1¦ì¬°0¡A«h²§©Îµ²ªGªº²Ä1¦ì±o¨ì1¡A²Õ¦X°_¨Ó´N¬O0011¡C²§©Î¹Bºâ¤µ¦Z·|¹J¨ì«Ü¦h¡A¤j®a¥i¥H¥ý¼ô±x¼ô±x¡A¼ô½m¤F¹ï¤ÀªR«Ü¦³À°§Uªº¡C
¤U±§ÚÌÄ~Äò¬Ý¬Ý¤W±ªº¨âÓ¤å¥ó¡A«ö·Ó±`²z¡A¸ê®Æ¥]ªº¸ê®Æ¤£·|¥þ³¡³£¦³Èªº¡A´åÀ¸¶}µo®É·|¹w¯d¤@¨Ç¦ì¤¸²ÕªÅ¶¡¨Ó«K©ó¤é¦ZªºÂX¥R¡A¤]´N¬O»¡¸ê®Æ¥]¨½·|¦s¦b¤@¨Ç"00"ªº¦ì¤¸²Õ¡AÆ[¹î¤W±ªº¤å¥ó¡A§ÚÌ·|µo²{¤å¥ó¤@¨½«Ü¦h"12"¡A¤å¥ó¤G¨½«Ü¦h"77"¡A¨º»ò³o¬O¤£¬O¥Nªí§ÚÌ»¡ªº"00"©O¡H±À²z¨ì³o¨½¡A§ÚÌ´N¶}©l¦æ°Ê§a¡I
§Ú̧â¤å¥ó¤@»P"12"²§©Î¡A¤å¥ó¤G»P"77"²§©Î¡A·íµM¥Î¤âºâ«Ü¶O¨Æ¡A§Ų́ϥÎ"M2M 1.0 ¥[±K«Ê¥]¤ÀªR¤u¨ã"¨Ópºâ´N¤è«K¦h¤F¡C±o¨ì¤U±ªºµ²ªG¡G
²Ä¤@Ó¤å¥ó¡G
1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09
SEND-> 0010 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 89
2 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 08
3 SEND-> 0000 F4 44 09 D2 7A 00 00 00 48
4 SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00
5 SEND-> 0000 F4 44 05 DB 00
²Ä¤GÓ¤å¥ó¡G
1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09
SEND-> 0010 05 00 70 6B 00 00 00 00 05 00 05 00 00 00 1A
2 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 84
3 SEND-> 0000 F4 44 09 D2 56 00 00 00 48
4 SEND-> 0000 F4 44 10 DA 01 B8 6C 79 F6 05 02 27 35 01 00 00
5 SEND-> 0000 F4 44 05 DB 00
«¢¡A³o¤@¤U¨âÓ¤å¥ó¤j³¡¤À³£¤@¼Ë°Õ¡A»¡©ú§Ú̪º±À²z¬O¥¿½Tªº¡A¤W±´N¬O§ÚÌ»Ýnªº©ú¤å¡I
±µ¤U¨Ó´N¬O·d²M·¡¤@¨ÇÃöÁ䪺¦ì¤¸²Õ©Ò¥Nªíªº§t¸q¡A³o´N»ÝnºIÀò¤j¶qªº¸ê®Æ¨Ó¤ÀªR¡C
º¥ý§ÚÌ·|µo²{¨CÓ¸ê®Æ¥]³£¬O"F4 44"¶}ÀY¡A²Ä3Ӧ줸²Õ¬OÅܤƪº¡A¦ý¬OÅܤƫܦ³³W«ß¡C§Ų́ӬݬݦUÓ¥]ªºªø«×¡Aµo²{¤°»ò¨S¦³¡H¹ï¤F¡A²Ä3Ӧ줸²Õ´N¬O¥]ªºªø«×¡I
³q¹LºIÀò¤j¶qªº¸ê®Æ¥]¡A§Ú̧PÂ_²Ä4Ӧ줸²Õ¥Nªí«ü¥O¡A¤]´N¬O»¡«È¤áºÝ§i¶DªA°È¾¹¶i¦æªº¬O¤°»ò¾Þ§@¡C¨Ò¦p¦VªA°È¾¹½Ð¨D¾Ô¤æ«ü¥O¬°"30"¡A¾Ô¤æ¤¤²¾°Ê«ü¥O¬°"D4"µ¥¡C
±µ¤U¨Ó¡A§ÚÌ´N»Ýn¤ÀªR¤@¤U¤W±²Ä¤@Ó¥]"F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 89"¡A¦b³oÓ¥]¨½¥]§t¤°»ò¸ê°T©O¡HÀ³¸Ó¦³³qª¾ªA°È¾¹§APKªºþÓNPC§a¡A§ÚÌ´N¥ý¨Ó§ä§ä³oÓ©±¤p¤Gªº¥N½X¦b¤°»ò¦a¤è¡C
§Ú̦APK¤@Ó¤p¹ÆÃ¹¡]´N¬O¤j²z«È´Ì¥~ªº¨ºÓ«£¡^¡G
SEND-> 0000 F4 44 1F 30 D4 75 F6 05 01 01 00 01 00 01 75 09
SEND-> 0010 05 00 8A 19 00 00 00 00 11 00 02 00 00 00 C0
§Ú̮ھڱ`²z¤ÀªR¡A´åÀ¸¨½ªºNPCºØÃþÁöµM¤£·|¶W¹L65535¡]FFFF¡^¡A¦ý¶}µo®É¤£·|§â¦Û¤v¨î¦b¦rªº½d³ò¡A¨º¼Ë¤£§Q©ó´åÀ¸ªºÂX¥R¡A©Ò¥H§Ú̦bÂù¦r¨½¬Ý¬Ý¡C³q¹L"©±¤p¤G"©M"¤p¹ÆÃ¹"¨âÓ¥]ªº¹ï¤ñ¡A§ÚÌ§â¥Ø¼Ð©ñ¦b"6C 79 F6 05"©M"CF 26 00 00"¤W¡C¡]¹ï¤ñ¤@¤U«Ü®e©öªº¡A¦ý§A¤£¯à¤Ó¿ð¶w«£¡A¨þ¨þ¡^§Ú̦A¬Ý¬Ý¦Z±ªº¥]¡A¦b¦Z±ªº¥]¨½À³¸ÓÁÙ·|¥X²{NPCªº¥N½X¡A¤ñ¦p²¾°Êªº¥]¡A´åÀ¸¤¹³\Æ[¾Ô¡AªA°È¾¹¥²µM»Ýnª¾¹DNPCªº²¾°Ê§¤¼Ð¡A¦A¼s¼½µ¹Æ[¾Ôªº¨ä¥Lª±®a¡C¦b¦Z±²Ä4Ó¥]"SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00"¨½§Ṳ́S¬Ý¨ì¤F"6C 79 F6 05"¡Aªì¨BÂ_©w©±¤p¤Gªº¥N½X´N¬O¥¦¤F¡I
¡]³o¤ÀªR¨½Ãä¥]§t¤F«Ü¦h¤u§@ªº¡A¤j®a¥i¥H¥ÎWPEºI¤U¸ê®Æ¨Ó¦Û¤v¤ÀªR¤ÀªR¡^
²Ä¤@Ó¥]ªº¤ÀªR¼È®É´N¨ì³o¨½¡]¨½±ÁÙ¦³ªº¸ê°T§Ú̼Ȯɤ£»Ýn§¹¥þ²M·¡¤F¡^
§Ú̬ݬݲÄ4Ó¥]"SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00"¡A¦AºIÀòPK¶Àª¯ªº¥]¡A¡]ª¯·|¥X¨Ó2¥u®@¡^¬Ý¬Ý¥]ªº®æ¦¡¡G
SEND-> 0000 F4 44 1A DA 02 0B 4B 7D F6 05 02 27 35 01 00 00
SEND-> 0010 EB 03 F8 05 02 27 36 01 00 00
®Ú¾Ú¤W±ªº¤ÀªR¡A¶Àª¯ªº¥N½X¬°"4B 7D F6 05"¡]100040011¡^¡A¤£¹L¨â¥u¶Àª¯ªA°È¾¹«ç¼Ë¤À¿ë©O¡H¬Ý¬Ý"EB 03 F8 05"¡]100140011¡^¡A¬O¤W¤@Ó¥N½X¥[¤W100000¡A¨þ¨þ¡A³o¼ËªA°È¾¹´N¥i¥H»{¥X¨â¥u¶Àª¯¤F¡C§Ú̦A³q¹L³¥¥~¹J¼ÄºIÀòªº¸ê®Æ¥]¨ÓÃÒ¹ê¡AªGµM¦p¦¹¡C
¨º»ò¡A³oÓ¥]ªº®æ¦¡À³¸Ó¤ñ¸û²M·¡¤F¡G²Ä3Ӧ줸²Õ¬°¥]ªºªø«×¡A"DA"¬°«ü¥O¡A²Ä5Ӧ줸²Õ¬°NPCӼơA±q²Ä7Ӧ줸²Õ¶}©lªº10Ӧ줸²Õ¥Nªí¤@ÓNPCªº¸ê°T¡A¦h¤@ÓNPC´N¦h10Ӧ줸²Õ¨Óªí¥Ü¡C
¤j®a¦pªGª±¹Lºôª÷¡A¥²µMª¾¹DÀH¾÷¹J¼Ä¦³®É·|¥X²{¼W´©¡A§ÚÌ´N§Q¥Î´åÀ¸³oÓ¼W´©¨ÓÅý¨C¦¸¾Ô¤æ³£·|¥X²{¼W´©ªºNPC§a¡C
³q¹L¦b¾Ô¤æ¤¤¥X²{¼W´©ºIÀòªº¸ê®Æ¥]¡A§ÚÌ·|µo²{ªA°È¾¹ºÝ°e¥X¤F³o¼Ë¤@Ó¥]¡G
F4 44 12 E9 EB 03 F8 05 02 00 00 03 00 00 00 00 00 00
²Ä5-²Ä8Ӧ줸²Õ¬°¼W´©NPCªº¥N½X¡]³o¨½§ÚÌ´N²³æªº¥H¶Àª¯ªº¥N½X¨ÓÁ|¨Ò¡^¡C
¨º»ò¡A§ÚÌ´N§Q¥Î³æ¾÷¥N²z§Þ³N¨Ó¦P®É´ÛÄF«È¤áºÝ©MªA°È¾¹§a¡I
[size=6][color=#0000ff]¦p¦ó¾Þ§@°O¾ÐÅé
[/color][/size]¶iµ{¡G¥Î³Ì²¼äªº¸Ü¨Ó»¡¡A¶iµ{´N¬O¤@Ó¥¿¦b°õ¦æªºµ{§Ç¡A¤@өΦhÓ½uµ{¦b¶iµ{¤¤¹B¦æ¡C
½uµ{¡G½uµ{¬O¾Þ§@¨t²Î¤À°tCPU¹Bºâ®É¶¡ªº³Ì¤p³æ¦ì¡C
¨C¤@Ó¶iµ{³£´£¨Ñ¤F¹B¦æ¤@Óµ{§Ç©Ò¥²»Ýªº¸ê·½¡A¤@Ó¶iµ{¨ã¦³4GBªºµêÀÀ¦a§}ªÅ¶¡¡A¥i°õ¦æ¥N½X¡A¸ê®Æ¡A¹ï
¶H¥y¬`¡AÀô¹ÒÅܶq¡AÀu¥ýÅv¥H¤Î³]¸m³Ì¤j¤Æ³Ì¤p¤Æªº¥\¯à¡C¨C¤@Ó¶iµ{³£±q¤@Ó¥D½uµ{¶}©l°õ¦æ¡A¦ý¥i¥H¦b¥¦©Ò¾Ö¦³
ªº½uµ{¤¤³Ð«ØÃB¥~ªº½uµ{¡C¦pªG¦b¬YÓ½uµ{¤¤³Ð«Ø¤F¤@Ó¤l½uµ{¡A¨º»ò·í¥¦¶}©l°õ¦æ¦Z¡A´N¬O¤@¤Ç²æÅ·ªº³¥°¨¡A«ÜÃø
¦A±±¨î¥¦¤F¡C¦]¦¹¡A¦h½uµ{§Þ³N¦bWin32¥¥x¤U¬O»Ýn«Ü°ªªº§Þ¥©ªº¡C¤@Ó¶iµ{ªº©Ò¦³½uµ{¦@¨É¶iµ{ªºµêÀÀ¦a§}ªÅ¶¡©M
¨t²Î¸ê·½¡A¤@Ó½uµ{ªº¸ê·½¥]¬A½uµ{ªº¾÷¾¹±H¦s¾¹³]¸m¡A¤º®Ö°ï´Ì¡A½uµ{Àô¹ÒÅܶq©M¶iµ{µêÀÀ¦a§}¤¤ªº¨Ï¥ÎªÌ°ï´Ì¡C
¹ï©ó¤£¦Pªº¾Þ§@¨t²Î¡A¨CÓ¶iµ{ªºµêÀÀ¦a§}ªÅ¶¡ªº¤À°t¬O¤£¦Pªº¡CWindows NT Server Enterprise Edition
¤ÎWindows 2000 Advanced Server¤¤§C3GBµêÀÀ¦a§}ªÅ¶¡¨Ñ¶iµ{¨Ï¥Î¡A°ª1GB¨Ñ¾Þ§@¨t²Îªº¤º®Ö¥N½X¨Ï¥Î¡CWindows
NT/2000¤¤§C2GB¨Ñ¶iµ{¨Ï¥Î¡A°ª2GB¨Ñ¾Þ§@¨t²Î¤º®Ö¥N½X¨Ï¥Î¡CWindows9X¡G0¡X¡X64K¥uŪªÅ¶¡¥Î¨Ó¸Ë¤JMicrosoft DOS
¸ê°T¡A64K¡X¡X4M¸Ë¤JDOSªºÝ®e¥N½X¡A4M¡X¡X2GBªº¨p¦³ªÅ¶¡¨Ñ¶iµ{¨Ï¥Î¡A2GB¡X¡X3GBªº¦@¨ÉªÅ¶¡¸Ë¤J¦UºØDLL¥N½X¡A
3GB¡X¡X4GB¬°¦@¨Éªº¨t²Î¤º®Ö¥N½XªÅ¶¡¡A¨ä¤¤¦@¨Éªº2GB¡X¡X4GBªºªÅ¶¡¬O99%ªº¡§°O¾ÐÅéµL®Ä¶¿ù»~¡¨¡B¡§General
Protect Error(GPE)¡¨¤ÎÂū̪º¸o»íº×º¡C
·íµM¡A¾Þ§@¨t²Î¤£·|¯uªºµ¹¨CÓ¶iµ{¤À°t4GBªº°O¾ÐÅéªÅ¶¡¡A§_«h¡A§O»¡°O¾ÐÅé¡A³sµêÀÀ°O¾ÐÅé³£¤£°÷¥Î¡C¾Þ§@¨t²Î
·|±N»Ýn¥Î¨ìªº¬Y¬qµêÀÀ¦a§}ªº¤º®e¬M®g¨ìª«²z°O¾ÐÅé¡A³oºØ¬M®g¾Þ§@¬O¾Þ§@¨t²Î¤º®Ö§¹¦¨ªº¡AµL»Ýµ{§Çû¨Ó±±¨î¡C
°ò¥»·§©À´N¬O³o¼Ë¡A²{¦b§Ú̶}©l¾Ç²ß¦p¦ó¾Þ§@¬Yөһݪº¶iµ{ªº°O¾ÐÅé¡]ÄY®æ¨ÓÁ¿¡A¬O¾Þ§@¥¦ªºµêÀÀ¦a§}¤W
ªº¸ê®Æ¡A¤U¦P¡^¡C
º¥ý¡A¥ÎCreateToolhelp32Snapshot³Ð«Ø·í«e°O¾ÐÅ骺¤@Ó§Ö·Ó¡A±Nªð¦^ªº¥y¬`¶Ç»¼µ¹Process32First¡B
Process32Next¨Ó¹M¾ä°O¾ÐÅ餤ªº©Ò¦³¶iµ{¡A¤@¥¹¹J¨ì©Ò»Ýק諸¬YÓ´åÀ¸ªº¶iµ{¡A´N±N¨ä¶iµ{ID«O¦s¤U¨Ó¡A¦A¥Î
OpenProcess¥´¶}³oÓ¶iµ{¡A±q¦ÓÀò±o¸Ó¶iµ{ªº¶iµ{¥y¬`¡C³Ì¦Z¡A§Q¥Î³oÓ¥y¬`¡A¨Ï¥ÎReadProcessMemory¡B
WriteProcessMemory¨ÓŪ¼gµêÀÀ¦a§}¡C
¥H¤U¬O¤@¬q¨Ò¤l¥N½X¡]µ²ºc¤ÎAPI¨ç¼ÆªºÁn©ú²¤¥h¡^¡G
«O¦sAPI¨ç¼Æªð¦^ȪºÁ{®ÉÅܶq
Dim lngAPIReturn As Long
°O¾ÐÅé§Ö·Óªº¥y¬`
Dim lngHSnapShot As Long
«O¦s¶iµ{¥i°õ¦æ¤å¥ó¦WªºÁ{®ÉÅܶq
Dim strExe As String
¬YÓ§A·P¿³½ìªº¥i°õ¦æ¤å¥ó°õ¦æ¦Zªº¶iµ{ªºID
Dim lngProcessID As Long
¬YÓ§A·P¿³½ìªº¥i°õ¦æ¤å¥ó°õ¦æ¦Zªº¶iµ{ªº¥y¬`
Dim lngHProcess As Long
¦ì¤¸²Õ§Ö¨ú°Ï¡A«O¦s±q°O¾ÐÅ餤Ū¨úªº¸ê®Æ
Dim bytBuffer as Byte
«O¦sReadProcessMemory¨ç¼Æªð¦^¸ê°TªºÁ{®ÉÅܶq
Dim lngCharaWrite As Long
«O¦s¶iµ{¸ê°Tªºµ²ºc
Dim tProcessEntry As PROCESSENTRY32
tProcessEntry.dwSize = Len(tProcessEntry)
Àò±o·í«e°O¾ÐÅé§Ö·Óªº¥y¬`
lngHSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
·j´M°O¾ÐÅ餤²Ä¤@Ó¶iµ{
lngAPIReturn = Process32First(lngHSnapShot, tProcessEntry)
Do
strExe = ""
If InStr(tProcessEntry.szExeFile, Chr(0)) > 1 Then
¹ïwin9X¡AstrExe¬°±a¸ô®|ªº¤å¥ó¦W¡A¹ïwin2K¬°¤£±a¸ô®|ªº¤å¥ó¦W
strExe = Left(tProcessEntry.szExeFile, InStr(tProcessEntry.szExeFile, Chr(0)) -
1)
tProcessEntry.szExeFile = Space(MAX_PATH)
End If
¬d¬Ý¥i°õ¦æ¤å¥ó¦W¬O¤£¬O¬YÓ·P¿³½ìªº¤å¥ó
If UCase(strExe) = UCase("¬YÓ¥i°õ¦æ¤å¥ó¦W" Then
«O¦s¤U¸Ó¶iµ{ªºID
lngProcessID = tProcessEntry.th32ProcessID
Exit Do
End If
·j´M°O¾ÐÅ餤¤U¤@Ó¶iµ{
lngAPIReturn = Process32Next(lngHSnapShot, tProcessEntry)
Loop While (lngAPIReturn <> 0)
¥´¶}¶iµ{
lngHProcess = OpenProcess(PROCESS_VM_READ + PROCESS_VM_WRITE + PROCESS_VM_OPERATION, 0,
lngProcessID)
Ū¨ú¶iµ{µêÀÀ¦a§}1048576¤¤ªº¸ê®Æ
lngAPIReturn = ReadProcessMemory(lngHProcess, 1048576, bytBuffer, 1, lngCharaWrite)
¼g¤J¶iµ{µêÀÀ¦a§}1048576¤¤ªº¸ê®Æ
lngAPIReturn = WriteProcessMemory(lngHProcess, 1048576, bytBuffer, 1, lngCharaWrite)
Ãö³¬¥y¬`
lngAPIReturn = CloseHandle(lngHProcess)
[size=6][color=#0000ff]Hook Win32 API ªºÀ³¥Î¬ã¨s
[/color][/size]¤§¤@¡Gºôµ¸ºÊ±±
µ´¤j¦h¼Æ¨ã¦³ºôµ¸¥\¯àªº³nÅé³£¬O°ò©ósocket(ºôµ¸®M±µ¦r)¹ê²{ªº¡A©ÎªÌ¬O¨Ï¥Î¤F§ó°ª¼hªº±µ¤f(¨Ò¦p¡GWinInet API)¦Ó³Ì©³¼h¤´µM¬O°ò©ósocket¹ê²{ªº¡C¦b¤j¦h¼Æ¾Þ§@¨t²Î¤¤³£¹ê²{¤Fsocket±µ¤f¡A¦bWINDOWS¾Þ§@¨t²Î¤¤ªº¹ê²{ºÙ¬°WinSock¡CWinSock¬O¥HDLLªº§Î¦¡¹ê²{ªº¡A²{¦bWinSock¦³¨âÓª©¥»ªº¹ê²{¡GWinSock 1.1(winsock.dll)©MWinSock 2(ws2_32.dll)¡Aws2_32.dll¬J¤ä«ùWinSock 1.1ªº¨ç¼Æ¤S¤ä«ùWinSock 2³W½d¤¤¼W¥[ªº³\¦hÃB¥~ªº¨ç¼Æ¡A§ÚÌ¥i¥H¹³Win32 API¤@¼Ëªº¨Ï¥Î¥¦¡A¥u¬O»ÝnÃB¥~³sµ²¤@Ó®w¦Ó¤w¡C³o¨½¤£°Q½×¨ãÅ骺WinSockµ{¦¡¤Æ¡A¥u¬OÅý¤j®a¤F¸Ñ¡AWinSock¬OWINDOWSÀ³¥Îµ{§Ç»Pºôµ¸¥´¥æ¹Dªº±µ¤f¡A¬O§Ú̹ê²{ºôµ¸ºÊ±±³oӥتºªº¬ð¯}¤f¡C
¦n¤F¡A¨º§ÚÌ´N¶}©l§a¡I¡§ºôµ¸ºÊ±±¡¨³oÓ½d³ò¦³ÂI¤Óªx¤F¡A§ÚÌ¥ý§â½d³òÁY¤p¨ìºÊ±±ºôµ¸³s±µ½Ð¨D³oÓ¨ãÅ骺¾Þ§@¤W±§a¡A³o¤]´N¬O§Úªº§@«~¡GIPGate ºô§}¹LÂo¾¹ ªº®Ö¤ß§Þ³N¡C§ÚÌ¥ý¨Ó¬Ý¬Ý¤@ÓTCP/IP³s±µ¬O¦p¦ó«Ø¥ßªº¡G
«È¤á¾÷ºÝ ªA°È¾¹ºÝ
======== ========
ºÊÅ¥®M±µ¦r ³s±µ®M±µ¦r
========= =========
socket() socket()
bind() bind()
listen()
connect()----->accept()------>³Ð«Ø³s±µ®M±µ¦r
send()----------------------->recv()
recv()<-----------------------send()
.
.
.
closesocket() closesocket() closesocket()
§ÚÌ¥i¥H¬Ý¥X¡A¬O«È¤á¾÷ºÝªºconnect()°õ¦æ¹ê»Úªº³s±µ½Ð¨D°Ê§@¡A§Ú̦A¨Ó¬Ý¬Ýconnect¨ç¼Æªº°Ñ¼Æ¡G
int connect(
SOCKET s, // «ü©w¹ïþÓ®M±µ¦r¶i¦æ¾Þ§@
const struct sockaddr FAR *name, // ³o¬O¤@Ó´yzªA°È¾¹IP¦a§}ªºµ²ºc
int namelen // «ü©ú¤W±³oÓµ²ºcªº¤j¤p
);
¹ï©óname°Ñ¼Æ¡A¥Ñ©ósockaddrµ²ºc¤º®e¨Ì¿à©ó¨ãÅ骺¨óij¡A©Ò¥H¹ï©óTCP/IP¨óij¡A§Ú̶ǻ¼sockaddr_in³oÓµ²ºc¡A¦A¨Ó¬Ý¬Ý³oÓµ²ºc¡G
struct sockaddr_in{
short sin_family; // ¥²¶·¬°AF_INET
unsigned short sin_port; // IP³s±µ°ð¸¹
struct in_addr sin_addr; // ¼ÐÃÑIP¦a§}ªº¤@Óµ²ºcÅé
char sin_zero[8]; // ¬°¤FÝ®esockaddr¦Ó³]¸mªº¥e¦ìªÅ¶¡
};
¨ì³o¨à¡A§ÚÌ¥i¥H¬Ý¥X¡A¹ï©ó¤@¦¸³s±µ½Ð¨Dªº¥Øªº¦a¸ê°T¡A¤w¸g¥þ³¡¦b¶Ç¤Jªº°Ñ¼Æ¤¤´yz²M·¡¤F¡A±µ¤U¨Ón°µªº´N³]¸m¤@Ó¥þ§½API¹_¤l¡A¹_¦í©Ò¦³µ{§Çªºconnect()½Õ¥Î¡A¦b¶i¦æ¹ê»Úªºconnect()¾Þ§@¤§«e¡A§ÚÌ¥ý¤ÀªR¶Ç¤Jªº°Ñ¼Æ¡A¦pªGµo²{³s±µ¥Øªº¦a¬O§Ṳ́£¤¹³\³X°Ýªº¡A´N¤£¶i¦æ³s±µ¾Þ§@¡A¶Èªð¦^¤@Ó¿ù»~½X´N¥i¥H¤F¡C´N³o»ò²³æ¡A´N¯à¹ê²{¤@¤Ò·íÃö¡A¸U¤Ò²ö¶}ªº®ÄªG¡C
¦P¼Ëªº¹D²z¡A¤]¥i¥HHook¨ä¥¦¨ç¼Æ¦Ó¹ê²{ºÊ±±¾ãÓºôµ¸³q«H¦U¤è±ªº¤º®e¡A¤ñ¦p»¡ºI¨ú°e¥X©M±µ¦¬ªº¸ê®Æ¥]¶i¦æ¤ÀªRµ¥µ¥¡A³o´N¨ú¨M©ó³]pªÌªº·N¹Ï¤F¡A¤j®a¤£§«°Ê¤â¸Õ¸Õ¬Ý¡A·P¨ü¤@¤UHook APIªº¾y¤O¡C
¤§¤G¡G¶iµ{¨¾±þ
¦bWINDOWS¾Þ§@¨t²Î¤U¡A·í§Ú̵Lªkµ²§ô©ÎªÌ¤£ª¾¹D«ç¼Ëµ²§ô¤@Óµ{§Çªº®ÉÔ¡A©ÎªÌ¬OÃi±o¥h§ä¡§°h¥X¡¨«ö¶sªº®ÉÔ¡A³q±`·|«ö¡§CTRL+ALT+DEL¡¨©I¥X¥ô°ÈºÞ²z¾¹¡A§ä¨ì·Qµ²§ôªºµ{§Ç¡AÂI¤@¤U¡§µ²§ô¥ô°È¡¨´N¤F¨Æ¤F¡A¨þ¨þ¡AÁöµM¦³ÂI²Ê¾|¡A¦ý¤j¦h¼Æ±¡ªp¤U³£«Ü¦³®Ä¡A¤£¬O¶Ü¡H
³]·Q¤@¤U¡A¦pªG¦³³o»ò¤@ºØ³nÅé¡A¥¦©Òn°µªº¤u§@´N¬O¹ï¬YӨϥΪ̦b¬Y¥x¹q¸£¤Wªº¬¡°Ê§@¤@©wªº¨î¡A¦Ó¤S¤£¯à³Q¨Ï¥ÎªÌ³q¹L¡§µ²§ô¥ô°È¡¨³oºØ¤è¦¡»´©ö¦a¸Ñ°£¨î¡A¨º¸Ó«ç»ò°µ¡HµL«D¦³³o»ò¤TºØ¤èªk¡G1.«Ì½ª¡§CTRL+ALT+DEL¡¨³oÓ§Ö³tÁ䪺²Õ¦X¡F2.Åýµ{§Ç¤£¥X²{¦b¥ô°ÈºÞ²z¾¹ªº¦Cªí¤§¤¤¡F3.Åý¥ô°ÈºÞ²z¾¹µLªk±þ±¼³oÓ¥ô°È¡C¹ï©ó²Ä¤@ºØ¤èªk¡A³o¼Ë¥¼§K¤]¤Ó´Ý»Å¤F¡A¥ÎºD¤F¡§µ²§ô¥ô°È¡¨³oºØ¤èªkªº¤H·|«Ü¤£²ßºDªº¡F¹ï©ó²Ä¤GºØ¤èªk¡A¦bWINDOWS 9X¤U¥i¥H«Ü»´©ö¦a¨Ï¥Îª`¥UªA°È¶iµ{ªº¤èªk¹ê²{¡A¦ý¬O¹ï©óWINDOWS NT¬[ºcªº¾Þ§@¨t²Î¨S¦³³oÓ¤èªk¤F¡A¶iµ{«ÜÃøÂè¡AÁöµM¤´µM¥i¥H¹ê²{ÁôÂáA¦ý¹ê²{¾÷¨î¸û¬°´_Âø¡F¹ï©ó²Ä¤TºØ¤èªk¡A¹ê²{°_¨Ó¤ñ¸û²³æ¡A§Úªº§@«~¡GIPGate ºô§}¹LÂo¾¹ ´N¬O±Ä¥Îªº³oºØ¤è¦¡¨¾±þªº¡A±µ¤U¨Ó§Ú´N¨Ó¤¶²Ð³oºØ¤èªk¡C
¥ô°ÈºÞ²z¾¹ªº¡§µ²§ô¥ô°È¡¨¹ê»Ú¤W´N¬O±j¨î²×¤î¶iµ{¡A¥¦©Ò¨Ï¥Îªº±þ¤â锏¬O¤@Ó¥s°µTerminateProcess()ªºWin32 API¨ç¼Æ¡A§Ų́Ӭݬݥ¦ªº©w¸q¡G
BOOL TerminateProcess(
HANDLE hProcess; // ±N³Qµ²§ô¶iµ{ªº¥y¬`
UINT uExitCode; // «ü©w¶iµ{ªº°h¥X½X
);
¬Ý¨ì³o¨½¡A¬O¤£¬Oı±o¤£¥²©¹¤U¬Ý³£ª¾¹D±µ¤U¨Ón°µ¤°»ò¡GHook TerminateProcess()¨ç¼Æ¡A¨C¦¸TerminateProcess()³Q½Õ¥Îªº®ÉÔ¥ý§PÂ_¥ø¹Ïµ²§ôªº¶iµ{¬O§_¬O§Úªº¶iµ{¡A¦pªG¬Oªº¸Ü´N²³æ¦aªð¦^¤@Ó¿ù»~½X´N¥i¥H¤F¡C¯uªº¬O³o»ò²³æ¶Ü¡H¥ý´£¥X¤@Ó°ÝÃD¡A¦p¦ó®Ú¾ÚhProcess§PÂ_¥¦¬O§_¬O§Úªº¶iµ{ªº¥y¬`¡Hµª®×¬O¡G¦b§Úªº¶iµ{·í¤¤¥ýÀò±o§Úªº¶iµ{ªº¥y¬`¡AµM¦Z³q¹L¶iµ{¶¡³q«H¾÷¨î¶Ç»¼µ¹¹_¤l¨ç¼Æ¡A»PhProcess¶i¦æ¤ñ¸û¤£´N¦æ¤F¡H¿ù¡I¦]¬°¥y¬`¬O¤@Ó¶iµ{¬ÛÃöªºÈ¡A¤£¦P¶iµ{¤¤±o¨ìªº§Úªº¶iµ{ªº¥y¬`ªºÈ¦b¶iµ{¶¡¶i¦æ¤ñ¸û¬OµL·N¸qªº¡C
«ç»ò¿ì¡H§Ų́Ӧҹî¤@¤U§ÚªºhProcess¥¦¬O¦p¦ó±o¨ìªº¡C¤@Ó¶iµ{¥u¦³¥¦ªº¶iµ{ID¬O¿W¤@µL¤Gªº¡A¾Þ§@¨t²Î³q¹L¶iµ{ID¨Ó¼ÐÃѤ@Ó¶iµ{¡A·í¬YÓµ{§Çn¹ï³oÓ¶iµ{¶i¦æ³X°Ýªº¸Ü¡A¥¦º¥ý±o¥ÎOpenProcess³oÓ¨ç¼Æ¨Ã¶Ç¤Jn³X°Ýªº¶iµ{ID¨ÓÀò±o¶iµ{ªº¥y¬`¡A¨Ó¬Ý¬Ý¥¦ªº°Ñ¼Æ¡G
HANDLE OpenProcess(
DWORD dwDesiredAccess, // §Æ±æÀò±oªº³X°ÝÅv
BOOL bInheritHandle, // «ü©ú¬O§_§Æ±æ©ÒÀò±oªº¥y¬`¥i¥HÄ~©Ó
DWORD dwProcessId // n³X°Ýªº¶iµ{ID
);
¯ßµ¸º¥º¥Åã²{¡G¦b½Õ¥ÎTerminateProcess()¤§«e¡A¥²¥ý½Õ¥ÎOpenProcess()¡A¦ÓOpenProcess()ªº°Ñ¼Æªí¤¤ªºdwProcessId¬O¦b¨t²Î½d³ò¤º°ß¤@½T©wªº¡C±o¥Xµ²½×¡GnHookªº¨ç¼Æ¤£¬OTerminateProcess()¦Ó¬OOpenProcess()¡A¦b¨C¦¸½Õ¥ÎOpenProcess()ªº®ÉÔ¡A§ÚÌ¥ýÀˬddwProcessId¬O§_¬°§Úªº¶iµ{ªºID(§Q¥Î¶iµ{¶¡³q«H¾÷¨î)¡A¦pªG¬Oªº¸Ü´N²³æ¦aªð¦^¤@Ó¿ù»~½X´N¥i¥H¤F¡A¥ô°ÈºÞ²z¾¹®³¤£¨ì§Úªº¶iµ{ªº¥y¬`¡A¥¦¦p¦óµ²§ô§Úªº¶iµ{©O¡H
¦Ü¦¹¡AºÃ¹Î¥þ³¡´¦¶}¤F¡C¥ÑHook TerminateProcess()¨ìHook OpenProcess()ªº³oÓ¹Lµ{¡AÅé²{¤F¤@Ó°f¦V«äºûªº«ä·Q¡C¨ä¹ê§Ú·íªì๶i¤FTerminateProcess()ªº¦ºJ¦P¨½¥b¤Ñ¥X¤]¤£¨Ó¡A¦ý³Ì²×ÁÙ¬OÂÛ¥X¤FÆF·Pªº¤õªá¡Aª`·N¤OÂಾ¨ì¤FOpenProcess()¤W±¡A¹ê²{¤F¶iµ{¨¾±þ
¤§¤T¡GÅܳt±±¨î
³o¬OHook Win32 APIªº¤@Ó¤ñ¸û¥tÃþ©M¦³½ìªºÀ³¥Î¤è±¡C
³o¨½©Ò«üªºÅܳt±±¨î¡A¨Ã¤£¬O»¡¥i¥H§ïÅÜ¥ô¦óµ{§Çªº¹B¦æ³t«×¡A¥u¯à§ïÅܲŦX³o¨Ç±ø¥óªºµ{§Çªº¹B¦æ³t«×¡Gµ{§Çªº¹B¦æ³t«×¨Ì¿à©ó©w®É±±¨î¡A¤]´N¬O»¡¡Aµ{§Çªº°õ¦æ³æ¤¸°õ¦æªºÀW²v¬O¤H¬°ªº¨Ì*©w®É¾÷¨î±±¨îªº¡A¤£¬O¨Ì¿à©óCPUªº§ÖºC¡C¤ñ¦p»¡¡A¬YÓµ{§Ç¨C¹j1¬íÄÁµo¥X¡§ºwµª¡¨Án¡A¥¦¦b§Öªº¹q¸£¤W©MºCªº¹q¸£¤W©Òªí²{¥X¨Óªº¦æ¬°¬O¤@Pªº¡C³o¼Ëªº¨Ì¿à©ó©w®É±±¨îªºµ{§Ç¤~¬O§Ú̪º¬ã¨s¡§Åܳt¡¨¹ï¶H¡C
¤@ÓWINDOWSÀ³¥Îµ{§Çªº©w®É¾÷¨î¦³«Ü¦h¡C¹³¤W±´£¨ìªº¨Ò¤lµ{§Ç¥i¥H±Ä¥ÎWM_TIMER®ø®§¨Ó¹ê²{¡A³q¹L¨ç¼ÆSetTimer()¥i¥H³]©w²£¥ÍWM_TIMER®ø®§ªº®É¶¡¶¡¹j¡C¨ä¥¦ªº¤èªkÁÙ¦³³q¹LGetTickCount()©MtimeGetTime()µ¥¨ç¼Æ±o¨ì¨t²Î®É¶¡¡AµM¦Z³q¹L¤ñ¸û®É¶¡¶¡¹j¨Ó©w®É¡AÁÙ¦³timerSetEvent()³]¸m®ÉÄÁ¨Æ¥óµ¥µ¥¤è¦¡¡C¥ý¨Ó¬Ý¬Ý³o¨Ç¨ç¼Æªº©w¸q¡G
UINT_PTR SetTimer(
HWND hWnd, // ±µ¦¬WM_TIMER®ø®§ªºµøµ¡¥y¬`
UINT_PTR nIDEvent, // ©w®É¾¹ªºID¸¹
UINT uElapse, // µo¥ÍWM_TIMER®ø®§ªº®É¶¡¶¡¹j
TIMERPROC lpTimerProc // ³B²z©w®Éµo¥Í®Éªº¦^½Õ¨ç¼Æ¤J¤f¦a§}
);
MMRESULT timeSetEvent(
UINT uDelay, // ®ÉÄÁ¨Æ¥óµo¥Íªº®É¶¡¶¡¹j
UINT uResolution, // ³]¸m®ÉÄÁ¨Æ¥óªº¤À¿ë²v
LPTIMERCALLBACK lpTimerProc, // ³B²z®ÉÄÁ¨Æ¥óµo¥Í®Éªº¦^½Õ¨ç¼Æ¤J¤f¦a§}
DWORD dwUser, // ¨Ï¥ÎªÌ´£¨Ñªº¦^½Õ¸ê®Æ
UINT fuEvent // ³]¸m¨Æ¥óªºÃþ«¬
);
DWORD GetTickCount(VOID) // ªð¦^¨t²Î±Ò°Ê¥H¨Ó¸g¹L¤F¦h¤Ö²@¬í¤F
DWORD timeGetTime(VOID) // Ãþ¦ü©óGetTickCount()¡A¦ý¤À¿ë²v§ó°ª
¨º»ò§Ų́ӬݡA¦pªG¯à±±¨îSetTimer()ªºuElapse°Ñ¼Æ¡BtimeSetEvent()ªºuDelay°Ñ¼Æ¡BGetTickCount()©MtimeGetTime()ªºªð¦^È¡A´N¯à¹ê²{Åܳt±±¨î¡A°£«DÀ³¥Îµ{§Ç¨Ï¥Îªº¬O¨ä¥¦ªº©w®É¾÷¨î¡A¤£¹L¤j¦h¼ÆÀ³¥Îµ{§Ç±Ä¥Îªº©w®É¾÷¨î¤£¥~¥G³£¬O³o¨Ç¡C
¸Ó½ü¨ìHook¤jªk¥X³õ¤F¡C¦]¬°§Ṳ́@¯ë¥u·Q§ïÅܬYÓµ{§Çªº³t«×¡A¤ñ¦p¬O»¡¬YÓ´åÀ¸µ{§Ç¡A©Ò¥H§Ṳ́£³]¸m¥þ§½¹_¤l¡C¤S¦]¬°§Ṳ́£²M·¡¨ºÓÀ³¥Îµ{§Ç¨ì©³¨Ï¥Îªº¬O¨ººØ©w®É¾÷¨î¡A©Ò¥H¤Wz´XÓ¨ç¼Æ§ÚÌ¥þ³¡³£n±µºÞ¡AµM¦Z§âÃö©ó©w®É°Ñ¼Æ©Îªð¦^È«ö¤ñ¨ÒÁY©ñ´N¥i¥H¤F¡C
¤§¥|¡G«Ì¹õ¨úµü
¥Î¹Lª÷¤sµüÅQ§a¡H¥Î¹Lªº¤H¤@©w¹ï¥¦ªº«Ì¹õ¨úµü¥\¯à¦L¶H«Ü²`¨è¡A¦]¬°³oºØ¥\¯à¨Ï½Ķ¹Lµ{§ó¥[²«K§Ö±¶¡A«Ì¹õ¨úµü¬Oª÷¤sµüÅQªº®Ö¤ß§Þ³N¤§¤@¡C
¤j®a¦³¨S¦³·Q¹L³o¼Ë¯«©_ªº¥\¯à¬O¦p¦ó¹ê²{ªº©O¡H¸g¾ä¹LDOS¦~¥N¨t²Îµ{¦¡¤Æªº¤H¥i¯àª¾¹D¡A«Ì¹õ¤WÅã¥Üªº¦r²Å¬O¦s©ñ¦bÅã¦s¨½ªº¡A¨CÓ§¤¼Ðªº¦r²Å¹ïÀ³Åã¦sªº¤@Ó¯S©wªº²{¦s³æ¤¸¦sÀxªº¦r²Å¡Aª½±µ¾Þ§@Åã¦s¡A´N¥i¥H¶i¦æ¦r²ÅªºÅã¥Ü©MŪ¨ú¡AYWINDOWS¬O³o¼Ë´N¦n¤F¡A¥i±¤¨Æ¹ê¤W¬Û¥h¬Æ»·¡C¨ºWINDOWSªº¦r²Å¬O«ç¼ËÅã¥Üªº©O¡HWINDOWS¬O¹Ï§Î¬É±¡AÅã¥Üªº³Ì¤p³æ¦ì¬O¹³¯À(Pixel)¡A¤W±ªº©Ò¦³ªF¦è³£¬O¡§µe¡¨¤W¥hªº¡A·íµM¤]¥]¬A¤F¦r²Å¡A¤]´N¨S¦³¤°»ò¦r²ÅÅã¦sªº·§©À¤F¡C¨S¦³¤Fª½±µ¾Þ§@Åã¦s¦ÓÀò±o«Ì¹õ¤W¦r²Å¤º®eªº¿ìªk¤F¡A¨ºÁÙ¦³¤°»ò¤èªk©O¡H
Åý§Ų́ӳ]¨³B¦a¦a·Q·Q¬Ý¡A°²¦p§ÚÌn¦b¦Û¤vªºµ{§Ç¤¤Åã¥Ü¤@Ó¦r²Å¦ê¡A§ÚÌ·|«ç¼Ë°µ©O¡H¤£n¦^µª¬OMessageBox()¡A§Ṳ́£¬O«üªº³oºØ¡§Åã¥Ü¡¨¤èªk¡A§Ú«üªº¬O³Ì§C¶¥ªº¤èªk¡A¤]´N¬Oª½±µ¾Þ§@DCªº¤èªk¡A§Ú·Q¤@¯ë´N¬O½Õ¥Î¤W±´£¨ì¹LªºWin32 API¨ç¼ÆTextOut()¤F¡A·íµM¡AÁÙ¦³Ãþ¦üªº¤@¨Ç¨ä¥¦¨ç¼Æ¡A¨Ò¦p¡GExtTextOut()¡BDrawText()¡BDrawTextEx()µ¥µ¥¡C¦n¤F¡A§ä¨ìÂI¬Ü¥Ø¤F¡A§Ų́Ӭݬݳo¨Ç¨ç¼Æªº°Ñ¼Æ¯à´£¨Ñþ¨Ç¸ê°T¡A³o¨½¥u¦C¥XTextOut()¨ç¼Æªº©w¸q¡A¨ä¥¦ªº¨ç¼Æ°ò¥»³£¥]§t³o¨Ç°Ñ¼Æ¡A¥t¥~´£¨Ñ¤F§ó¦hªºªþ¥[¿ï¶µ¦Ó¤w¡A½Ð¬d¾\MSDN¬ÛÃö¤åÀÉ¡G
BOOL TextOut(
HDC hdc, // ³]³Æ¤W¤U¤å¥y¬`
int nXStart, // ¶}©lø¨î¦r²Å¦êªº¦ì¸mªºx§¤¼Ð
int nYStart, // ¶}©lø¨î¦r²Å¦êªº¦ì¸mªºy§¤¼Ð
LPCTSTR lpString, // «ü¦V¦r²Å¦êªº«ü°w
int cbString // «ü©únø¨î¦h¤ÖÓ¦r²Å
);
§Ú̬ݨì¡A§¤¼Ð©M¤º®e³£¦³¤F¡A³o¤£¥¿¬O§ÚÌ·Qnªº¸ê°T¶Ü¡H¥unHook¦í³oÓ¨ç¼Æ¡A³o¨Ç¸ê°T¤£³£³è¤â¥i±o¤F¶Ü¡H©ó¬O²½¥XHook¤jªk¨Ó°µÓ¹êÅç¡G¥ýÀH«K¥ÎVCªº¦V¾É¶}¹@¤@Ó³æ¤åÀÉÀ³¥Îµ{§Ç¡A¦bOnDraw()¨ç¼Æ¨½½Õ¥ÎTextOut()¦b¬YÓ¦ì¸mÀH«K¿é¥X¤@Ó¦r²Å¦ê(¤£½×¬O½Õ¥ÎpDC->TextOut(...)©ÎªÌ¬O::TextOut(...)³£¤@¼Ë¡ACDCÃþ¥u¤£¹L§âTextOut()«Ê¸Ë¤F¤@¤U¦Ó¤w)¡AµM¦Z¦bOnInitialUpdate()¨½³]¸mHook(¥Î²{¦¨ªº®w)¡A¹_¦íTextOut()¡AºIÀòTextOut¤§¦Z¡AÅýTextOut()¿é¥X¥t¥~¤@Ó¦r²Å¦ê¦Ó¤£¿é¥Xì¨Óªº¦r²Å¦ê¡CÁÙn°O¦í¦bOnDestroy()¨½¸Ñ°£Hook¡C³Ì¦Z½sͳs±µ¡A´ú¸Õµ{§Ç¡C§A·|µo²{¤£¶È¬O§A½Õ¥ÎTextOut()¿é¥Xªº¦a¤èªº¦r²Å¦ê³Q´À´«¤F¡A¦Ó¥B³s¤~¥¹¡B¹ï¸Ü®Øµ¥µ¥¦³¦rªº¦a¤è¤]ÅܤF¡A¦b¹êÅ禨¥\¤§§E¡A¬O¤£¬OÓ·N¥~ªº¦¬Àò¡H¨ä¹êWINDOWS¤º³¡ªº¤j¦h¼Æ¤å¦r¿é¥X¤]¬O½Õ¥Î¤FTextOut()¨ç¼Æ¨Ó¹ê²{ªº¡C²{¦b¤ô¸¨¥Û¥X¤F¡A§ÚÌ¥unHook¦í¤å¦r¿é¥X¨ç¼Æ¡A¥]¬A§Ú¤W±´£¨ìªº©M¨S¦³´£¨ìªº¨ç¼Æ¡A´N¯àºIÀò«Ì¹õ¤W¤å¦r¿é¥Xªº§¤¼Ð©M¤º®eµ¥µ¥¸ê°T¡A¥un§Ṳ́@¤@§@°O¿ý¡A¨Ã¥[¥H¤ÀªRÂà´«¡A¸ò·Æ¹«ªº¦ì¸m¶i¦æ¤ñ¸û¡A§ÚÌ´N¯à±o¨ì«Ì¹õ¤W¬YÓ¦ì¸mªº¤å¦r¤º®e¬O¤°»ò¤F¡An½Ķ«ç»òªº¡A´N¬Ý§Aªº¤F¡A³o´N¬O«Ì¹õ¨úµü¡AÁöµM¹ê»Ú¤W¹ê²{ªº¹Lµ{¨Ã¤£¹³»¡±o¨º»ò²³æ¡C
¥X¤FµüÅQªº«Ì¹õ¨úµü¡AÁÙ¦³¤@¨Ç°ÊºAº~¤Æ¡B¥~±¾¤¤¤å¥¥x¤§Ãþªº³nÅé¡A¤]¬O°ò©ó³oºØ§Þ³Nªº¡A²{¦b¬Ý¨Ó¡A¥¦Ì¬O¤£¬O¤w¸g¤£¦A¯«¯¦¤F¡H
[size=6][color=#0000ff]Ãö©óAPI HOOKÄdºI«Ê¥]ì²z
[/color][/size]§Q¥ÎhookºIÀò¶iµ{ªºAPI½Õ¥Î
ºIÀòAPI¬Oӫܦ³¥ÎªºªF¦è¡A¤ñ¦p§A·Q¤ÀªR¤@¤U§O¤Hªºµ{§Ç¬O«ç¼Ë¤u§@ªº¡C³o¨½§Ú¤¶²Ð¤@¤U¤@ºØ§Ú¦Û¤v¸ÕÅç³q¹Lªº¤èªk¡C
º¥ý¡A§ÚÌ¥²¶·³]ªk§â¦Û¤vªº¥N½X©ñ¨ì¥Ø¼Ðµ{§Çªº¶iµ{ªÅ¶¡¨½¥h¡CWindows Hook¥i¥HÀ°§Ú̹ê²{³o¤@ÂI¡CSetWindowsHookExªºÁn©ú¦p¤U¡G
HHOOK SetWindowsHookEx(
int idHook, // hook type
HOOKPROC lpfn, // hook procedure
HINSTANCE hMod, // handle to application instance
DWORD dwThreadId // thread identifier
);
¨ãÅ骺°Ñ¼Æ§t¸q¥i¥H½¾\msdn¡A¨S¦³msdn¥i¿×¤o¨BÃø¦æ¡C
³o¨½Hook¥»¨ªº¥\¯à¨Ã¤£«n¡A§Ų́ϥΥ¦ªº¥Øªº¶È¶È¥u¬O¬°¤F¯à°÷ÅýWindows§â§Ú̪º¥N½X´Ó¤J§Oªº¶iµ{¨½¥h¡Chook Type§ÚÌ¥ô¿ï¤@ºØ§Y¥i¡A¥un«OÃÒ¬O¥Ø¼Ðµ{§ÇªÖ©w·|½Õ¥Î¨ì´N¦æ¡A³o¨½§Ú¥Îªº¬OWH_CALLWNDPROC¡Clpfn©MhMod¤À§O«ü¦V§Ú̪º¹_¤l¥N½X¤Î¨ä©Ò¦bªºdll¡AdwThreadId³]¬°0¡Aªí¥Ü¹ï©Ò¦³¨t²Î¤ºªº½uµ{³£±¾¤W³o¼Ë¤@Óhook¡A³o¼Ë§Ṳ́~¯à§â¥N½X©ñ¨ì§Oªº¶iµ{¨½¥h¡C
¤§¦Z¡A§Ú̪º¥N½X´N¤w¸g¶i¤J¤F¨t²Î¤ºªº©Ò¦³¶iµ{ªÅ¶¡¤F¡C¥²¶·ª`·Nªº¬O¡A§ÚÌ¥u»ÝnºIÀò§ÚÌ©ÒÃö¤ßªº¥Ø¼Ðµ{§Çªº½Õ¥Î¡A¦]¦¹ÁÙ¥²¶·°Ï¤À¤@¤U¶iµ{¸¹¡C§Ú̦ۤvªº¹_¤l¨ç¼Æ¤¤¡A²Ä¤@¦¸¹B¦æ±N¶i¦æ³Ì«nªºAPI«©w¦Vªº¤u§@¡C¤]´N¬O³q¹L±N©Ò»ÝnºIÀòªºAPIªº¶}ÀY´XӦ줸²Õ§ï¬°¤@Ó¸õÂà«ü¥O¡A¨Ï¨ä¸õÂà¨ì§Ú̪ºAPI¤¤¨Ó¡C³o¬O³ÌÃöÁ䪺³¡¤À¡C³o¨½§Ú·QºI¤TӽեΡAws2_32.dll¤¤ªºsend©Mrecv¡Buser32.dll¤¤ªºGetMessageA¡C
DWORD dwCurrentPID = 0;
HHOOK hOldHook = NULL;
DWORD pSend = 0;
DWORD pRecv = 0;
GETMESSAGE pGetMessage = NULL;
BYTE btNewBytes[8] = { 0x0B8, 0x0, 0x0, 0x40, 0x0, 0x0FF, 0x0E0, 0 };
DWORD dwOldBytes[3][2];
HANDLE hDebug = INVALID_HANDLE_value;
LRESULT CALLBACK CallWndProc( int nCode, WPARAM wParam, LPARAM lParam )
{
DWORD dwSize;
DWORD dwPIDWatched;
HMODULE hLib;
if( dwCurrentPID == 0 )
{
dwCurrentPID = GetCurrentProcessId();
HWND hwndMainHook;
hwndMainHook = ::FindWindow( 0, "MainHook" );
dwPIDWatched = ::SendMessage( hwndMainHook, (WM_USER+100), 0, 0 );
hOldHook = (HHOOK)::SendMessage( hwndMainHook, (WM_USER+101), 0, 0 );
if( dwCurrentPID == dwPIDWatched )
{
hLib = LoadLibrary( "ws2_32.dll" );
pSend = (DWORD)GetProcAddress( hLib, "send" );
pRecv = (DWORD)GetProcAddress( hLib, "recv" );
::ReadProcessMemory( INVALID_HANDLE_value, (void *)pSend, (void *)dwOldBytes[0], sizeof(DWORD)*2, &dwSize );
*(DWORD *)( btNewBytes + 1 ) = (DWORD)new_send;
::WriteProcessMemory( INVALID_HANDLE_value, (void *)pSend, (void *)btNewBytes, sizeof(DWORD)*2, &dwSize );
::ReadProcessMemory( INVALID_HANDLE_value, (void *)pRecv, (void *)dwOldBytes[1], sizeof(DWORD)*2, &dwSize );
*(DWORD *)( btNewBytes + 1 ) = (DWORD)new_recv;
::WriteProcessMemory( INVALID_HANDLE_value, (void *)pRecv, (void *)btNewBytes, sizeof(DWORD)*2, &dwSize );
hLib = LoadLibrary( "user32.dll" );
pGetMessage = (GETMESSAGE)GetProcAddress( hLib, "GetMessageA" );
::ReadProcessMemory( INVALID_HANDLE_value, (void *)pGetMessage, (void *)dwOldBytes[2], sizeof(DWORD)*2, &dwSize );
*(DWORD *)( btNewBytes + 1 ) = (DWORD)new_GetMessage;
::WriteProcessMemory( INVALID_HANDLE_value, (void *)pGetMessage, (void *)btNewBytes, sizeof(DWORD)*2, &dwSize );
hDebug = ::CreateFile( "C:\\Trace.log", GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
}
}
if( hOldHook != NULL )
{
return CallNextHookEx( hOldHook, nCode, wParam, lParam );
}
return 0;
}
¤W±ªº¹_¤l¨ç¼Æ¡A¥u¦³²Ä¤@¦¸¹B¦æ®É¦³¥Î¡A´N¬O§â¤TÓ¨ç¼Æªºº8¦ì¤¸²Õ×§ï¤@¤U¡]¹ê»Ú¤W¥u»Ýn7Ó¡^¡CbtNewBytes¤¤ªº«ü¥O¹ê»Ú´N¬O
mov eax, 0x400000
jmp eax
³o¨½ªº0x400000´N¬O·sªº¨ç¼Æªº¦a§}¡A¤ñ¦pnew_recv/new_send/new_GetMessage¡A¦¹®É¡A°½±ç´«¬W¤w¸g§¹¦¨¡C¦A¬Ý¬Ý§Ú̪º¨ç¼Æ¤¤³£¤z¤F¨Ç¤°»ò¡C¥HGetMessageA¬°¨Ò¡G
BOOL _stdcall new_GetMessage( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax )
{
DWORD dwSize;
char szTemp[256];
BOOL r = false;
//Watch here before its executed.
sprintf( szTemp, "Before GetMessage : HWND 0x%8.8X, msgMin 0x%8.8X, msgMax 0x%8.8x \r\n", hWnd, wMsgFilterMin, wMsgFilterMax );
::WriteFile( hDebug, szTemp, strlen(szTemp), &dwSize, 0 );
//Watch over
// restore it at first
::WriteProcessMemory( INVALID_HANDLE_value, (void *)pGetMessage, (void *)dwOldBytes[2], sizeof(DWORD)*2, &dwSize );
// execute it
r = pGetMessage( lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax );
// hook it again
*(DWORD *)( btNewBytes + 1 ) = (DWORD)new_GetMessage;
::WriteProcessMemory( INVALID_HANDLE_value, (void *)pGetMessage, (void *)btNewBytes, sizeof(DWORD)*2, &dwSize );
//Watch here after its executed
sprintf( szTemp, "Result of GetMessage is %d.\r\n", r );
::WriteFile( hDebug, szTemp, strlen( szTemp ), &dwSize, 0 );
if( r )
{
sprintf( szTemp, "Msg : HWND 0x%8.8X, MSG 0x%8.8x, wParam 0x%8.8X, lParam 0x%8.8X\r\nTime 0x%8.8X, X %d, Y %d\r\n",
lpMsg->hwnd, lpMsg->message,
lpMsg->wParam, lpMsg->lParam, lpMsg->time,
lpMsg->pt.x, lpMsg->pt.y );
::WriteFile( hDebug, szTemp, strlen( szTemp ), &dwSize, 0 );
}
strcpy( szTemp, "\r\n" );
::WriteFile( hDebug, szTemp, strlen( szTemp ), &dwSize, 0 );
//Watch over
return r;
}
¥ý±NºIÀò¤U¨Óªº°Ñ¼Æ¡A¼g¤J¨ì¤@Ólog¤å¥ó¤¤¡A¥H«K¤ÀªR¡CµM¦Z«ì´_ì¥ý«O¯d¤U¨ÓªºGetMessageAªºº8¦ì¤¸²Õ¡AµM¦Z°õ¦æ¯u¥¿ªºGetMessageA½Õ¥Î¡A§¹²¦¦Z¦A±N°õ¦æµ²ªG¤]¼g¤Jlog¤å¥ó¡AµM¦Z±NGetMessageAªº°õ¦æµ²ªGªð¦^µ¹½Õ¥ÎªÌ¡C
¾ãÓºIÀòªº¹Lµ{´N¬O³o¼Ë¡C§A¥i¥H§â¨ä¤¤ªº¼glog³¡¤À§ï¦¨§A¦Û¤v·Qnªº¾Þ§@¡C³o¨½¦³Ó¤£¨¬ªº¦a¤è¬O¡AºIÀò°Ê§@¬O¤£¯à°÷¨Ãµo¶i¦æªº¡A¦pªG¥Ø¼Ð¶iµ{¬O¦h½uµ{ªº¡A´N·|¦³°ÝÃD¡C¸Ñ¨M¿ìªk¬O¡A¥i¥H¦b¨C¦¸new_GetMessage¤¤¥[¤J¤@ÓCriticalSectionªºÂê©M¸ÑÂê¡A¥H¨Ï½Õ¥ÎÅܬ°¦ê¦æ¶i¦æ¡A¦ý³oÓ§Ú¨S¦³¸ÕÅç¹L¡C
[size=6][color=#0000ff]ºIÀòWINSOCKET
[/color][/size]ºIÀòWINSOCKET
TCP/IP¨óij¬O¥Ø«e¦Uºôµ¸¾Þ§@¨t²Î¥Dnªº³q«H¨óij¡A¤]¬O INTERNETªº³q«H¨óij¡AWIN95/NT¥¥x´£¨Ñ¤FTCP/IP¨óijªº¹ê²{ ¨ç¼Æ®wWINSOCKET¡]WSOCKET.DLL¡^°ÊºA®w¡A¦]¦Ó¥i¥H§Q¥ÎWINSOCKET ½s¼g°ò©óTCP/IP¨óijªºÀ³¥Î¨t²Î¡C¡]UNIX¥¥x´£¨ÑBSD-SOCKET¡^
---- ¦b¹ê»ÚÀ³¥Î¶}µo¤¤¡A§ÚÌÁ`§Æ±æ¦b½Õ¥Î¥¿±`ªºWINSOCKET±µ¤f ¨ç¼Æ®É¡A¥ý¶i¦æ¦U¦Ûªº¯S®í³B²z¡A¦p¹ï©ó¶}µo°ò©óWIN95/NT¥¥x ªºVPN«È¤áºÝ³nÅé®É¡A§Ú̧ƱæÀ³¥Î¸ê°T¦b°e¥X«e§Y¦b½Õ¥ÎSEND¨ç ¼Æ®É¡A¥ý¹ï¸ê°T¶i¦æ¥[±K¦Z¦A°e¥X¡C¤S¦p¦³ªºÀ³¥Î¨t²Î½Õ¥ÎCONNECT ¨ç¼Æ¶i¦æ³s±µ½Ð¨D¡A§ÚÌ»ÝnºIÀò¦¹½Õ¥Î¡A´¡¤J§Ú̦ۤvªº¨¥÷»{ÃÒ¡C ¼Ò¶ô¡A¥u¦³¦Xªkªº¨¥÷¡A¤~¥i¥H½Õ¥Î¥¿±`ªºCONNECT¨ç¼Æ¡A¦Ó«Dªkªº ¨¥÷«h¤£¶i¦æCONNECT½Õ¥Î¡C¦]¦Ó»Ýn¶}µo¤@ºØºIÀòWINSOCKET¨ç¼Æ½Õ¥Î ªº¤èªk¡]INTERCEPT WINSOCKET¡^¡A¨Ï¦b¶i¦æWINSOCK¥¿±`¨ç¼Æ½Õ¥Î¤§«e¡A ¨Ï¨ä¥ý½Õ¥Î§Ú̪º¨¥÷»{ÃÒ¼Ò¶ô¡A¥[¸Ñ±K¼Ò¶ô¡C¥Ñ©ó¦bWIN95/NT¥¥x WINSOCKET¬O¥H°ÊºA³s±µ®w¡]DLL¡^§Î¦¡´£¨Ñªº¡AÀ³¦Ó¨Ï¦UºØÀ³¥Î¨t²Î¦b ¶i¦æTCP/IP¨óij³q«H®É¡AµL¶·¥ô¦ó×§ï¡A´N¥ý½Õ¥Î§Ú̪ºÀ³¥Î¼Ò¶ô¡A ¹ê²{À³¥Îªº³z©ú©Ê¡C
---- ¤@¯ënºIÀò°ÊºA®w¡]DLL¡^ªº½Õ¥Î¡A¥i¥H¥ÎHOOK¡]¹_¤l§Þ³N¡^¡A©Î¥~¥]DLL §Þ³N¡A§Y±Nì¨ÓªºDLL®w§ï¦W¡]¦p±NWINSOCK®wWSOCK32.DLL§ï¬°A.DLL¡^¡A ·s«Ø¤@ÓDLL®w¡AWSOCKET32.DLL¡A¦b·sªºDLL®w¤¤½Õ¥ÎªºDLL®w¡C
---- ¥H¤Uµ¹¥X¤F§Q¥ÎVISUAL C++¹ê²{ªººIÀòWINSOCKªºÀ³¥Îµ{§Çªº·½¥N½X¡CZip 4KB
---- ¥ý±NWINSOCK®wWSOCK32.DLL¸Ó¦W¬°AAA.DLL¡AWSOCK32.AAA
---- §Q¥ÎVISUAL C++³Ð«Ø¤@ÓDLL¶µ¥Ø WSOCK32.DLL
---- ¥Ø«e¥[¤Jªº¼Ò¶ô¬°¤@Ó¤é§Ó³B²z¡C
[size=6]ºôµ¸´åÀ¸ªº«Ê¥]
[/size]ºôµ¸´åÀ¸ªº«Ê¥]§Þ³N¬O¤j¦h¼Æµ{¦¡¤Æ·R¦nªÌ³£¤ñ¸ûÃöª`ªºÃöª`ªº°ÝÃD¤§¤@¡A¦b³o¤@½g¨½´NÅý§Ṳ́@°_¬ã¨s¤@¤U³o¤@Ó°ÝÃD§a¡C
§O¬Ý³o¬O«Ê¥]³o¤@°ÝÃD¡A¦ý¬O¯A¤Îªº§Þ³N½d³ò«Ü¼s½d¡A¹ê²{ªº¤è¦¡¤]«Ü¦h¡]¤ñ¦p»¡APIHOOK,VXD,Winsock2³£¥i¥H¹ê²{¡^¡A¦b³o¨½§Ṳ́£¥i¯à¨CºØ§Þ³N©M¤èªk³£¯A¤Î¡A©Ò¥H§Ú¦b³o¨½¥HWinsock2§Þ³N§@¸Ô²ÓÁ¿¸Ñ¡A´Nºâ§@©ß¿j¤Þ¥É¡C
¥Ñ©ó¤j¦h¼ÆÅªªÌ¹ï«Ê¥]Ãþµ{¦¡¤Æ¤£¬O«Ü¤F¸Ñ¡A§Ú¦b³o¨½´N²³æ¤¶²Ð¤@¤U¬ÛÃöª¾ÃÑ¡G
APIHooK¡G
¥Ñ©óWindowsªº§â¤º®Ö´£¨Ñªº¥\¯à³£«Ê¸Ë¨ìAPI¨½±¡A©Ò¥H¤j®an¹ê²{¥\¯à´N¥²¶·³q¹LAPI¡A´«¥y¸Ü»¡´N¬O§ÚÌn·Q®·Àò¸ê®Æ«Ê¥]¡A´N¥²¶·¥ýn±oª¾¹D¨Ã¥B®·Àò³oÓAPI¡A±qAPI¨½±±o¨ì«Ê¥]¸ê°T¡C
VXD¡G
ª½±µ³q¹L±±¨îVXDÅX°Êµ{§Ç¨Ó¹ê²{«Ê¥]¸ê°Tªº®·Àò¡A¤£¹LVXD¥u¯à¥Î©ówin9X¡C
winsock2¡G
winsock¬OWindowsºôµ¸µ{¦¡¤Æ±µ¤f¡Awinsock¤u§@¦bÀ³¥Î¼h¡A¥¦´£¨Ñ»P©³¼h¶Ç¿é¨óijµLÃöªº°ª¼h¸ê®Æ¶Ç¿éµ{¦¡¤Æ±µ¤f¡Awinsock2¬Owinsock2.0´£¨ÑªºªA°È´£¨ÑªÌ±µ¤f¡A¦ý¥u¯à¦bwin2000¤U¥Î¡C
¦n¤F¡A§Ú̶}©l¶i¤Jwinsock2«Ê¥]¦¡µ{¦¡¤Æ§a¡C
¦b«Ê¥]µ{¦¡¤Æ¨½±§Ú·Ç³Æ¤À¨âÓ¨BÆJ¹ï¤j®a¶i¦æÁ¿¸Ñ¡G1¡B«Ê¥]ªº®·Àò¡A2¡B«Ê¥]ªº°e¥X¡C
º¥ý§ÚÌn¹ê²{ªº¬O«Ê¥]ªº®·Àò¡G
Delphiªº«Ê¸Ëªºwinsock¬O1.0ª©ªº¡A«Ü¦ÛµMwinsock2´N¥Î¤£¦¨¡C¦pªGn¨Ï¥Îwinsock2§ÚÌn¹ïwinsock2¦bDelphi¨½±°µ¤@Ó±µ¤f¡A¤~¥i¥H¨Ï¥Îwinsock2¡C
1¡B¦p¦ó°µwinsock2ªº±µ¤f¡H
1¡^§ÚÌn¥ý©w¸qwinsock2.0©Ò¥Î±o¨ìªºÃþ«¬¡A¦b³o¨½§ÚÌ¥HWSA_DATAÃþ«¬°µ¥Ü½d¡A¤j®a¥i¥HÁ|¤@¥é¤Tªº¨Ó¹ê²{winsock2¨ä¥LÃþ«¬ªº«Ê¸Ë¡C
§ÚÌnª¾¹DWSA_DATAÃþ«¬·|³Q¥Î©óWSAStartup(wVersionRequired: word; var WSData: TWSAData): Integer;¡A¤j®a·|µo²{WSData¬O¤Þ¥Î°Ñ¼Æ¡A¦b¶Ç¤J°Ñ¼Æ®É¶Çªº¬OÅܶqªº¦a§}¡A©Ò¥H§Ú̹ïWSA_DATA°µ¥H¤U«Ê¸Ë¡G
const
WSADESCRIPTION_LEN = 256;
WSASYS_STATUS_LEN = 128;
type
PWSA_DATA = ^TWSA_DATA;
WSA_DATA = record
wVersion: Word;
wHighVersion: Word;
szDescription: array[0..WSADESCRIPTION_LEN] of Char;
szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char;
iMaxSockets: Word;
iMaxUdpDg: Word;
lpVendorInfo: PChar;
end;
TWSA_DATA = WSA_DATA;
2¡^§ÚÌn±qWS2_32.DLL¤Þ¤Jwinsock2ªº¨ç¼Æ¡A¦b¦¹§Ṳ́]¬O¥HWSAStartup¬°¨Ò°µ¨ç¼Æ¤Þ¤J¡G
function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Integer; stdcall;
implementation
const WinSocket2 = 'WS2_32.DLL';
function WSAStartup; external winsocket name 'WSAStartup';
³q¹L¥H¤W¤èªk¡A§ÚÌ«K¥i¥H¹ïwinsock2°µ±µ¤f¡A¤U±§ÚÌ´N¥i¥H¥Îwinsock2°µ«Ê¥]®·Àò¤F¡A¤£¹Lº¥ýn¦³¤@¶ôºô¥d¡C¦]¬°¯A¤Î¨ì¥¿¦b¹B§@ªººôµ¸´åÀ¸¦w¥þ°ÝÃD¡A©Ò¥H§Ú̦b³o¨½¥HIP¸ê®Æ¥]¬°¨Ò°µ«Ê¥]®·Àò¡A¦pªG¤U±ªº¬Y¨Ç¸ê®ÆÃþ«¬±z¤£¬O«Ü²M·¡¡A½Ð±z¬d¾\MSDN¡G
1¡^§ÚÌn°_°ÊWSA¡A³o®ÉÓn¥Î¨ìªºWSAStartup¨ç¼Æ¡A¥Îªk¦p¤U¡G
INTEGER WSAStartup(
wVersionRequired: word¡A
WSData: TWSA_DATA
)¡F
2¡^¨Ï¥Îsocket¨ç¼Æ±o¨ìsocket¥y¬`¡Am_hSocket:=Socket(AF_INET, SOCK_RAW, IPPROTO_IP); ¥Îªk¦p¤U¡G
INTEGER socket(af: Integer,
Struct: Integer,
protocol: Integer
);
m_hSocket:=Socket(AF_INET, SOCK_RAW, IPPROTO_IP);¦bµ{§Ç¨½m_hSocket¬°socket¥y¬`¡AAF_INET¡ASOCK_RAW¡AIPPROTO_IP§¡¬°±`¶q¡C
3)©w¸qSOCK_ADDRÃþ«¬¡A¸ò¾Ú§Ú̪ººô¥dIPµ¹Sock_ADDRÃþ«¬ªþÈ¡AµM¦Z§Ų́ϥÎbind¨ç¼Æ¨Ó¸j©w§Ú̪ººô¥d¡ABind¨ç¼Æ¥Îªk¦p¤U¡G
Type
IN_ADDR = record
S_addr : PChar;
End;
Type
TSOCK_ADDR = record
sin_family: Word;
sin_port: Word;
sin_addr : IN_ADDR
sin_zero: array[0..7] of Char;
End;
var
LocalAddr:TSOCK_ADDR;
LocalAddr.sin_family: = AF_INET;
LocalAddr.sin_port: = 0;
LocalAddr.sin_addr.S_addr: = inet_addr('192.168.1.1'); ¡þ¡þ³o¨½§A¦Û¤vªººô¥dªºIP¦a§},¦Óinet_addr³oÓ¨ç¼Æ¬Owinsock2ªº¨ç¼Æ¡C
bind(m_hSocket, LocalAddr, sizeof(LocalAddr))¡F
4)¥ÎWSAIoctl¨Óª`¥UWSAªº¿é¤J¿é¥X²Õ¥ó¡A¨ä¥Îªk¦p¤U¡G
INTEGER WSAIoctl(s:INTEGER,
dwIoControlCode : INTEGER,
lpvInBuffer :INTEGER,
cbInBuffer : INTEGER,
lpvOutBuffer : INTEGER,
cbOutBuffer: INTEGER,
lpcbBytesReturned : INTEGER,
lpOverlapped : INTEGER,
lpCompletionRoutine : INTEGER
);
5)¤U±°µ¦º´`Àô¡A¦b¦º´`Àô¶ô¨½¡A¨Ó¹ê²{¸ê®Æªº±µ¦¬¡C¦ý¬O«àÀô¤¤¶¡n¥ÎSleep()°µ©µ®É¡A¤£µMµ{§Ç·|¥X¿ù¡C
6)¦b´`Àô¶ô¨½¡A¥Îrecv¨ç¼Æ¨Ó±µ¦¬¸ê®Æ¡Arecv¨ç¼Æ¥Îªk¦p¤U¡G
INTEGER recv (s : INTEGER,
buffer:Array[0..4095] of byte,
length : INTEGER,
flags : INTEGER,
)¡F
7)¦bbuffer¨½´N¬O§Ú̱µ¦¬¦^¨Óªº¸ê®Æ¤F¡A¦pªG§ÚÌ·Qnª¾¹D¸ê®Æ¬O¤°»ò¦a¤èµo¨Óªº¡A¨º»ò¡A§ÚÌn©w¸q¤@©wIP¥]µ²ºc¡A¥ÎCopyMemory()§âIP¸ê°T±qbuffer¨½±Åª¥X¨Ó´N¥i¥H¤F¡A¤£¹LŪ¥X¨Óªº¬O¤Q¤»¶i¨îªº¸ê®Æ»ÝnÂà´«¤@¤U¡C
¬Ý¤F«Ê¥]®·Àòªº¥þ¹Lµ{§Ç¡A¹ï§A¬O¤£¬O¦³ÂI°_µo¡AµM¦Ó¦b³o¨½n§i¶D¤j®aªº¬O«Ê¥]ªºÀò±o¬O«Ü®e©öªº¡A¦ý¬O³\¦h´åÀ¸ªº«Ê¥]³£¬O¥[±Kªº¡A¦pªG§A·Q·d²M·¡©Ò±o¨ìªº¬O¤°»ò¤º®eÁÙ»Ýn¦Û¤v¶i¦æ«Ê¥]¸Ñ±K¡C
³o¨½´¡±µ¤U¶Ç©_½ä³õ«Ê¥]ªº¥Îªk
¥Ñ©ó¤£¦P°Ï¤£¦PªA°È¾¹ªºªº¸ê®Æ¤£¦P¡A¤@Ó«Ê¥]n·Q¦b¨CÓªA°È¾¹³£¯à¨Ï¥Î¬O¤£¥i¯àªº¡C
³o´N»Ýn§Ú̹ï즳ªº«Ê¥]¶i¦æ×§ï¡C
¤j®a¦bµo«Ê¥]¤§«e¡A³£·|©MNPC»¡¸Ü¡AµM¦Z¶i¦æ·j´M¡A±o¨ì¤@§å¸ê®Æ¡A´N¬O16¶i¨î¥N½X
§ÚÌn°µªº¬O¥´¶}©Òn°e¥Xªº«Ê¥]¡AµM¦Z¿ï¾Ün°e¥Xªº©R¥O¦p¡GPacket n 1¡A°e¥X¡C²{¦b
¤@Ó«Ê¥]©R¥O´Nµo¥X¥h¤F¡A³o´N¬OWPEªº¥Îªk¡A§Ún»¡ªº¬O«ç»ò×§ï¡A¤j®aÄ~Äò¬Ý¡G
²{¦b¡A§ÚÌÂùÀ»¥ªÃ䪺Packet n 1¡A·|¥X¨Ó¤@±ø¹ï¸Ü®Ø¡A¨½±¤]¦³16¶i¨î¥N½X§Ú©Ò»Ýn
°µªº¬O§â²Ä¤@±Æ²Ä3¡C4¡C5¡C6¡C4²Õ¸ê®Æ×§ï¦¨§Aè¤~·j¯Áªº¬ÛÀ³¸ê®Æ¡]ª`·N¡G¥Lªº¬ÛÀ³¼Æ
¾Ú¬O¦b·j¯Áªº®ÉÔ¡A¥ªÃä±aS²Å¸¹ªº¨º´X±Æ¸ê®Æ¡^
¦pªG¦b·j¯Áªº®ÉÔ¡A¥X²{¤F³\¦h±aS²Å¸¹ªº¸ê®Æ±Æ¡A«hÃÒ©ú¡A¦³¦a¤è¥X¿ù¡A§A°h¥X¶Ç©_
¦A¶i©ÎªÌ¦A¦¸·j¯Á¤@¹M¡A¤@¯ë¥u·|¥X²{2-3±ÆªºS¡A¦Ó¨ä¥L±aRªº¤£¥ÎºÞ¥L¡C§A²{¦b¤w¸g§â¨ä
¥LªA°È¾¹ªº«Ê¥]§ï¦¨§A³oÓªA°È¾¹¯à¥Îªº«Ê¥]¤F¡C
¤ñ¦p½ä³õ«Ê¥]¡A¦b1¸¹©Ð·j¯Á¨Ã×§ï1¸¹«Ê¥]¸ê®Æ¦Z°e¥X¡A¼»6¨ì¤F7¸¹©Ð¡A¦A·j¯Á¨Ã×§ï
2¸¹«Ê¥]¸ê®Æ¦Z°e¥X¡A¨Ì¦¸Ãþ±À´N¥i¥H¨ì40¸¹©Ð¶¡¡Cª`·N¡A×§ï9¸¹«Ê¥]¤]´N¬O®³¿ú«Ê¥]ªº
®ÉÔ¥²¶·µ¥§A¥X¨Ó»PNPC¹ï¸Ü¥X²{¦¨¥\¦r¼Ëªº®ÉÔ¤~¯à×§ï¡A¦pªG§A®³¤£¨ì¿ú¡A§A©Òק諸
«Ê¥]«hµL¥ô¦ó¥Î³B¡A©Ò¥Hnק﮳¿ú«Ê¥]¡A¥²¶·§A¥ý±o®³¨ì¤@¦¸¿ú¡A¦ý¬O¦pªG¦¨¥\¤F©MNPC
»¡¸Ü¦Z¥ß§Y¶}©l×§ï¡A¦Ó¥Bn¤@¦¸¦¨¥\¡AºCÂI³£µL©Ò¿×¡A·Q·Q×§ï¨BÆJ¡A§_«h§A¥¢±Ñ¤F¦A
ÂINPC´N·|°e§A¦^¥h¡C
[size=6]³nÅé¯}¸Ñ
[/size]/////////³nÅé«OÅ@
³nÅ骺¯}¸Ñ§Þ³N»P«OÅ@§Þ³N³o¨âªÌ¤§¶¡¥»¨´N¬O¥Ù»P¬ÞªºÃö«Y¡A¥¦Ì¬O¦b¤¬¬Û¤æª§¤¤µo®i¶i¤Æªº¡C³oºØ§Þ³N¤Wªº¸û¶qÂk®Ú¨ì©³¬O¤@ºØ§Q¯qªº¨R¬ð¡C³nÅé¶}µoªÌ¬°¤FºûÅ@¦Û¨ªº°Ó·~§Q¯q¡A¤£Â_¦a´M§ä¦UºØ¦³®Äªº§Þ³N¨Ó«OÅ@¦Û¨ªº³nÅ骩Åv¡A¥H¼W¥[¨ä«OÅ@±j«×¡A±À¿ð³nÅé³Q¯}¸Ñªº®É¶¡¡F¦Ó¯}¸ÑªÌ«h©Î¨üµsª©©Ò±a¨Óªº°ªÃB§Q¼íªºÅX¨Ï¡A©Î¥X©ó¯ÂºéªºÓ¤H¿³½ì¡A¦Ó¤£Â_¨î§@·sªº¯}¸Ñ¤u¨ã¨Ã°w¹ï·s¥X²{ªº«OÅ@¤è¦¡¶i¦æ¸òÂܤÀªR¥H§ä¨ì¬ÛÀ³ªº¯}¸Ñ¤èªk¡C±q²z½×¤W»¡¡A´X¥G¨S¦³¯}¸Ñ¤£¤Fªº«OÅ@¡C¹ï³nÅ骺«OÅ@¶È¶È*§Þ³N¬O¤£°÷ªº¡A¦Ó³o³Ì²×n*¤H̪ºª¾ÃѲ£Åv·NÃÑ©Mªk¨îÆ[©Àªº¶i¨B¥H¤Î¥Í¬¡¤ô¥ªº´£°ª¡C¦ý¬O¦pªG¤@ºØ«OÅ@§Þ³Nªº±j«×±j¨ì¨¬¥HÅý¯}¸ÑªÌ¦b³nÅ骺¥Í©R©P´Á¤ºµLªk±N¨ä§¹¥þ¯}¸Ñ¡A³oºØ«OÅ@§Þ³N´N¥i¥H»¡¬O«D±`¦¨¥\ªº¡C³nÅé«OÅ@¤è¦¡ªº³]pÀ³¦b¤@¶}©l´N§@¬°³nÅé¶}µoªº¤@³¡¤À¨Ó¦Ò¼{¡A¦C¤J¶}µop¦E©M¶}µo¦¨¥»¤¤¡A¨Ã¦b«OÅ@±j«×¡B¦¨¥»¡B©ö¥Î©Ê¤§¶¡¶i¦æ§é°J¦Ò¼{¡A¿ï¾Ü¤@Ó¦X¾Aªº¥¿ÅÂI¡C
¦b®à±¾Þ§@¨t²Î¤¤¡A·L³nªº²£«~¦ÛµM¬O¿WÅQ¤Ñ¤U¡A¤@¯ëÓ¤H¨Ï¥ÎªÌ±µàD±o³Ì¦h¡A¬ã¨s±o¦ÛµM¤]§ó¦h¤@¨Ç¡C¦bDOS®É¥N¤§«e´N¦³¨Ç¤ñ¸û¦nªº³nÅé«OÅ@§Þ³N¡A¦Ó¦bDOS¤¤¨Ï¥Î±o³Ì¦hªº®£©Ènºâ³n¦¡ºÏºÐ¾÷«ü¯¾¨¾«þ¨©§Þ³N¤F¡C¥Ñ©óDOS¾Þ§@¨t²Îªº¯Ü®z©Ê¡A¦b¨ä¤¤¹B¦æªº´¶³qÀ³¥Îµ{§Ç´X¥G¥i¥H³X°Ý¨t²Î¤¤ªº¥ô¦ó¸ê·½¡A¦pª½±µ³X°Ý¥ô¦óª«²z°O¾ÐÅé¡Bª½±µÅª¼g¥ô¦óºÏ½L®°°Ï¡Bª½±µÅª¼g¥ô¦óI/O³s±µ°ðµ¥¡A³oµ¹³nÅé«OÅ@ªÌ´£¨Ñ¤F·¥¤jªº¦Û¥Ñ«×¡A¨Ï¨ä¥i¥H³]p¥X¤@¨Ç¦Ü¤µ¤´¬°¤HºÙ¹Dªº«OÅ@§Þ³N¡F¦ÛWindows 95¶}©l¡]¯S§O¬OWinNT©MWindows 2000³o¼ËÄY®æ·N¸q¤Wªº¦h¨Ï¥ÎªÌ¾Þ§@¨t²Î¡^¡A¾Þ§@¨t²Î§Q¥ÎµwÅé¯S©Ê¼W±j¤F¹ï¦Û¨ªº«OÅ@¡A±N¦Û¤v¹B¦æ¦bRing 0¯SÅv¯Å¤¤¡A¦Ó´¶³qÀ³¥Îµ{§Ç«h¹B¦æ¦b³Ì§Cªº¯SÅv¯ÅRing 3¤¤¡A¨î¤FÀ³¥Îµ{§Ç©Ò¯à³X°Ýªº¸ê·½¡A¨Ï±o³nÅé«OÅ@§Þ³N¦b¤@©wµ{«×¤W¨ü¨ì¤@¨Ç¨î¡C¶}µoªÌn·Q¬ð¯}Ring 3ªº¨î¡A¤@¯ë»Ýn½s¼gÅX°Êµ{§Ç¡A¦pŪ¼g¨Ã¤f¤Wªº³nÅ骯ªºÅX°Êµ{§Çµ¥¡A³o¼W¥[¤F¶}µoÃø«×©M©P´Á¡A¦ÛµM¤]¼W¥[¤F¦¨¥»¡C¦P®É¥Ñ©óWin32µ{§Ç°O¾ÐÅé´M§}¨Ï¥Îªº¬O¬Û¹ï¨Ó»¡¤ñ¸û²³æªº¥©Z´M§}¼Ò¦¡¡]¬ÛÀ³¦a¨ä±Ä¥ÎªºPE¤å¥ó®æ¦¡¤]¤ñ¥H«eªº16-bitªºEXEµ{§Çªº®æ¦¡n®e©ö³B²z¤@¨Ç¡^¡A¨Ã¥BWin32µ{§Ç¤j¶q½Õ¥Î¨t²Î´£¨ÑªºAPI¡A¦ÓWin32¥¥x¤Wªº½Õ¸Õ¾¹¦pSoftICEµ¥«ê¦n¦³°w¹ïAPI³]Â_ÂIªº±j¤j¥\¯à¡A³o¨Ç³£µ¹¸òÂܯ}¸Ñ±a¨Ó¤F¤@©wªº¤è«K¡C
²Ä¤G¸` 8088 ¶×½s³t¬d¤â¥U
¤@¡B¸ê®Æ¶Ç¿é«ü¥O
¥¦Ì¦b¦s¶J¾¹©M±H¦s¾¹¡B±H¦s¾¹©M¿é¤J¿é¥X³s±µ°ð¤§¶¡¶Ç°e¸ê®Æ.
1. ³q¥Î¸ê®Æ¶Ç°e«ü¥O.
MOV ¶Ç°e¦r©Î¦ì¤¸²Õ.
MOVSX ¥ý²Å¸¹ÂX®i,¦A¶Ç°e.
MOVZX ¥ý¹sÂX®i,¦A¶Ç°e.
PUSH §â¦rÀ£¤J°ï´Ì.
POP §â¦r¸õ¥X°ï´Ì.
PUSHA §âAX,CX,DX,BX,SP,BP,SI,DI¨Ì¦¸À£¤J°ï´Ì.
POPA §âDI,SI,BP,SP,BX,DX,CX,AX¨Ì¦¸¸õ¥X°ï´Ì.
PUSHAD §âEAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI¨Ì¦¸À£¤J°ï´Ì.
POPAD §âEDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX¨Ì¦¸¸õ¥X°ï´Ì.
BSWAP ¥æ´«32¦ì±H¦s¾¹¨½¦ì¤¸²Õªº¶¶§Ç
XCHG ¥æ´«¦r©Î¦ì¤¸²Õ.( ¦Ü¤Ö¦³¤@Ó¾Þ§@¼Æ¬°±H¦s¾¹,¬q±H¦s¾¹¤£¥i§@¬°¾Þ§@¼Æ)
CMPXCHG ¤ñ¸û¨Ã¥æ´«¾Þ§@¼Æ.( ²Ä¤GÓ¾Þ§@¼Æ¥²¶·¬°²Ö¥[¾¹AL/AX/EAX )
XADD ¥ý¥æ´«¦A²Ö¥[.( µ²ªG¦b²Ä¤@Ó¾Þ§@¼Æ¨½ )
XLAT ¦ì¤¸²Õ¬dªíÂà´«.
¢w¢w BX «ü¦V¤@±i 256 ¦ì¤¸²Õªºªíªº°_ÂI, AL ¬°ªíªº¯Á¤ÞÈ (0-255,§Y
0-FFH); ªð¦^ AL ¬°¬dªíµ²ªG. ( [BX+AL]->AL )
2. ¿é¤J¿é¥X³s±µ°ð¶Ç°e«ü¥O.
IN I/O³s±µ°ð¿é¤J. ( »yªk: IN ²Ö¥[¾¹, {³s±µ°ð¸¹¢xDX} )
OUT I/O³s±µ°ð¿é¥X. ( »yªk: OUT {³s±µ°ð¸¹¢xDX},²Ö¥[¾¹ )
¿é¤J¿é¥X³s±µ°ð¥Ñ¥ß§Y¤è¦¡«ü©w®É, ¨ä½d³ò¬O 0-255; ¥Ñ±H¦s¾¹ DX «ü©w®É,
¨ä½d³ò¬O 0-65535.
3. ¥Øªº¦a§}¶Ç°e«ü¥O.
LEA ¸Ë¤J¦³®Ä¦a§}.
¨Ò: LEA DX,string ;§â°¾²¾¦a§}¦s¨ìDX.
LDS ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JDS.
¨Ò: LDS SI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìDS:SI.
LES ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JES.
¨Ò: LES DI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìESI.
LFS ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JFS.
¨Ò: LFS DI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìFSI.
LGS ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JGS.
¨Ò: LGS DI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìGSI.
LSS ¶Ç°e¥Ø¼Ð«ü°w,§â«ü°w¤º®e¸Ë¤JSS.
¨Ò: LSS DI,string ;§â¬q¦a§}:°¾²¾¦a§}¦s¨ìSSI.
4. ¼Ð§Ó¶Ç°e«ü¥O.
LAHF ¼Ð§Ó±H¦s¾¹¶Ç°e,§â¼Ð§Ó¸Ë¤JAH.
SAHF ¼Ð§Ó±H¦s¾¹¶Ç°e,§âAH¤º®e¸Ë¤J¼Ð§Ó±H¦s¾¹.
PUSHF ¼Ð§Ó¤J´Ì.
POPF ¼Ð§Ó¥X´Ì.
PUSHD 32¦ì¼Ð§Ó¤J´Ì.
POPD 32¦ì¼Ð§Ó¥X´Ì.
¤G¡Bºâ³N¹Bºâ«ü¥O
ADD ¥[ªk.
ADC ±a¶i¦ì¥[ªk.
INC ¥[ 1.
AAA ¥[ªkªºASCII½X½Õ¾ã.
DAA ¥[ªkªº¤Q¶i¨î½Õ¾ã.
SUB ´îªk.
SBB ±aɦì´îªk.
DEC ´î 1.
NEC ¨D¤Ï(¥H 0 ´î¤§).
CMP ¤ñ¸û.(¨â¾Þ§@¼Æ§@´îªk,¶È×§ï¼Ð§Ó¦ì,¤£¦^°eµ²ªG).
AAS ´îªkªºASCII½X½Õ¾ã.
DAS ´îªkªº¤Q¶i¨î½Õ¾ã.
MUL µL²Å¸¹¼ªk.
IMUL ¾ã¼Æ¼ªk.
¥H¤W¨â±ø,µ²ªG¦^°eAH©MAL(¦ì¤¸²Õ¹Bºâ),©ÎDX©MAX(¦r¹Bºâ),
AAM ¼ªkªºASCII½X½Õ¾ã.
DIV µL²Å¸¹°£ªk.
IDIV ¾ã¼Æ°£ªk.
¥H¤W¨â±ø,µ²ªG¦^°e:
°Ó¦^°eAL,§E¼Æ¦^°eAH, (¦ì¤¸²Õ¹Bºâ);
©Î °Ó¦^°eAX,§E¼Æ¦^°eDX, (¦r¹Bºâ).
AAD °£ªkªºASCII½X½Õ¾ã.
CBW ¦ì¤¸²ÕÂà´«¬°¦r. (§âAL¤¤¦ì¤¸²Õªº²Å¸¹ÂX®i¨ìAH¤¤¥h)
CWD ¦rÂà´«¬°Âù¦r. (§âAX¤¤ªº¦rªº²Å¸¹ÂX®i¨ìDX¤¤¥h)
CWDE ¦rÂà´«¬°Âù¦r. (§âAX¤¤ªº¦r²Å¸¹ÂX®i¨ìEAX¤¤¥h)
CDQ Âù¦rÂX®i. (§âEAX¤¤ªº¦rªº²Å¸¹ÂX®i¨ìEDX¤¤¥h)
¤T¡BÅÞ¿è¹Bºâ«ü¥O
AND »P¹Bºâ.
OR ©Î¹Bºâ.
XOR ²§©Î¹Bºâ.
NOT ¨ú¤Ï.
TEST ´ú¸Õ.(¨â¾Þ§@¼Æ§@»P¹Bºâ,¶È×§ï¼Ð§Ó¦ì,¤£¦^°eµ²ªG).
SHL Å޿襪²¾.
SAL ºâ³N¥ª²¾.(=SHL)
SHR ÅÞ¿è¥k²¾.
SAR ºâ³N¥k²¾.(=SHR)
ROL ´`Àô¥ª²¾.
ROR ´`Àô¥k²¾.
RCL ³q¹L¶i¦ìªº´`Àô¥ª²¾.
RCR ³q¹L¶i¦ìªº´`Àô¥k²¾.
¥H¤W¤KºØ²¾¦ì«ü¥O,¨ä²¾¦ì¦¸¼Æ¥i¹F255¦¸.
²¾¦ì¤@¦¸®É, ¥iª½±µ¥Î¾Þ§@½X. ¦p SHL AX,1.
²¾¦ì>1¦¸®É, «h¥Ñ±H¦s¾¹CLµ¹¥X²¾¦ì¦¸¼Æ.
¦p MOV CL,04
SHL AX,CL
¥|¡B¦ê«ü¥O
DS:SI ·½¦ê¬q±H¦s¾¹ :·½¦êÅܧ}.
ESI ¥Ø¼Ð¦ê¬q±H¦s¾¹:¥Ø¼Ð¦êÅܧ}.
CX «´_¦¸¼Æp¼Æ¾¹.
AL/AX ±½ºËÈ.
D¼Ð§Ó 0ªí¥Ü«´_¾Þ§@¤¤SI©MDIÀ³¦Û°Ê¼W¶q; 1ªí¥ÜÀ³¦Û°Ê´î¶q.
Z¼Ð§Ó ¥Î¨Ó±±¨î±½ºË©Î¤ñ¸û¾Þ§@ªºµ²§ô.
MOVS ¦ê¶Ç°e.
( MOVSB ¶Ç°e¦r²Å. MOVSW ¶Ç°e¦r. MOVSD ¶Ç°eÂù¦r. )
CMPS ¦ê¤ñ¸û.
( CMPSB ¤ñ¸û¦r²Å. CMPSW ¤ñ¸û¦r. )
SCAS ¦ê±½ºË.
§âAL©ÎAXªº¤º®e»P¥Ø¼Ð¦ê§@¤ñ¸û,¤ñ¸ûµ²ªG¤Ï¬M¦b¼Ð§Ó¦ì.
LODS ¸Ë¤J¦ê.
§â·½¦ê¤¤ªº¤¸¯À(¦r©Î¦ì¤¸²Õ)³v¤@¸Ë¤JAL©ÎAX¤¤.
( LODSB ¶Ç°e¦r²Å. LODSW ¶Ç°e¦r. LODSD ¶Ç°eÂù¦r. )
STOS «O¦s¦ê.
¬OLODSªº°f¹Lµ{.
REP ·íCX/ECX<>0®É«´_.
REPE/REPZ ·íZF=1©Î¤ñ¸ûµ²ªG¬Ûµ¥,¥BCX/ECX<>0®É«´_.
REPNE/REPNZ ·íZF=0©Î¤ñ¸ûµ²ªG¤£¬Ûµ¥,¥BCX/ECX<>0®É«´_.
REPC ·íCF=1¥BCX/ECX<>0®É«´_.
REPNC ·íCF=0¥BCX/ECX<>0®É«´_.
¤¡Bµ{§ÇÂಾ«ü¥O
1>µL±ø¥óÂಾ«ü¥O (ªøÂಾ)
JMP µL±ø¥óÂಾ«ü¥O
CALL ¹Lµ{½Õ¥Î
RET/RETF¹Lµ{ªð¦^.
2>±ø¥óÂಾ«ü¥O (µuÂಾ,-128¨ì+127ªº¶ZÂ÷¤º)
( ·í¥B¶È·í(SF XOR OF)=1®É,OP1<OP2 )
JA/JNBE ¤£¤p©ó©Î¤£µ¥©ó®ÉÂಾ.
JAE/JNB ¤j©ó©Îµ¥©óÂಾ.
JB/JNAE ¤p©óÂಾ.
JBE/JNA ¤p©ó©Îµ¥©óÂಾ.
¥H¤W¥|±ø,´ú¸ÕµL²Å¸¹¾ã¼Æ¹Bºâªºµ²ªG(¼Ð§ÓC©MZ).
JG/JNLE ¤j©óÂಾ.
JGE/JNL ¤j©ó©Îµ¥©óÂಾ.
JL/JNGE ¤p©óÂಾ.
JLE/JNG ¤p©ó©Îµ¥©óÂಾ.
¥H¤W¥|±ø,´ú¸Õ±a²Å¸¹¾ã¼Æ¹Bºâªºµ²ªG(¼Ð§ÓS,O©MZ).
JE/JZ µ¥©óÂಾ.
JNE/JNZ ¤£µ¥©ó®ÉÂಾ.
JC ¦³¶i¦ì®ÉÂಾ.
JNC µL¶i¦ì®ÉÂಾ.
JNO ¤£·¸¥X®ÉÂಾ.
JNP/JPO ©_°¸©Ê¬°©_¼Æ®ÉÂಾ.
JNS ²Å¸¹¦ì¬° "0" ®ÉÂಾ.
JO ·¸¥XÂಾ.
JP/JPE ©_°¸©Ê¬°°¸¼Æ®ÉÂಾ.
JS ²Å¸¹¦ì¬° "1" ®ÉÂಾ.
3>´`Àô±±¨î«ü¥O(µuÂಾ)
LOOP CX¤£¬°¹s®É´`Àô.
LOOPE/LOOPZ CX¤£¬°¹s¥B¼Ð§ÓZ=1®É´`Àô.
LOOPNE/LOOPNZ CX¤£¬°¹s¥B¼Ð§ÓZ=0®É´`Àô.
JCXZ CX¬°¹s®ÉÂಾ.
JECXZ ECX¬°¹s®ÉÂಾ.
4>¤¤Â_«ü¥O
INT ¤¤Â_«ü¥O
INTO ·¸¥X¤¤Â_
IRET ¤¤Â_ªð¦^
5>³B²z¾¹±±¨î«ü¥O
HLT ³B²z¾¹¼È°±, ª½¨ì¥X²{¤¤Â_©Î´_¦ì«H¸¹¤~Ä~Äò.
WAIT ·í´¹¤ù¤Þ½uTEST¬°°ª¹q¥®É¨ÏCPU¶i¤Jµ¥«Ýª¬ºA.
ESC Âà´«¨ì¥~³B²z¾¹.
LOCK «ÊÂê¶×¬y±Æ.
NOP ªÅ¾Þ§@.
STC ¸m¶i¦ì¼Ð§Ó¦ì.
CLC ²M¶i¦ì¼Ð§Ó¦ì.
CMC ¶i¦ì¼Ð§Ó¨ú¤Ï.
STD ¸m¤è¦V¼Ð§Ó¦ì.
CLD ²M¤è¦V¼Ð§Ó¦ì.
STI ¸m¤¤Â_¤¹³\¦ì.
CLI ²M¤¤Â_¤¹³\¦ì.
¤»¡B°°«ü¥O
DW ©w¸q¦r(2¦ì¤¸²Õ).
PROC ©w¸q¹Lµ{.
ENDP ¹Lµ{µ²§ô.
SEGMENT ©w¸q¬q.
ASSUME «Ø¥ß¬q±H¦s¾¹´M§}.
ENDS ¬qµ²§ô.
END µ{§Çµ²§ô.
¤¸` ¤ÀªR§Þ³N
¦b¶i¦æ³nÅ骺¯}¸Ñ¡B¸Ñ±K¥H¤Î¹q¸£¯f¬r¤ÀªR¤u§@¤¤¡A¤@Óºnªº°ÝÃD¬O¹ï³nÅé¤Î¯f¬r¶i¦æ¤ÀªR¡C³o¨Ç³nÅé³£¬O¾÷¾¹¥N½Xµ{§Ç¡A¹ï©ó¥¦Ì¤ÀªR¥²¶·¨Ï¥ÎÀRºA©Î°ÊºA½Õ¸Õ¤u¨ã¡A¤ÀªR¸òÂܨä¶×½s¥N½X¡C
¤@¡B±q³nÅé¨Ï¥Î»¡©ú©M¾Þ§@¤¤¤ÀªR³nÅé
±ý¯}¸Ñ¤@³nÅé¡Aº¥ýÀ³¸Ó¥ý¥Î¥Î³o³nÅé¡A¤F¸Ñ¤@¤U¥\¯à¬O§_¦³¨î¡A³Ì¦n¾\Ū¤@¤U³nÅ骺»¡©ú©Î¤â¥U,¯S§O¬O¦Û¤v©ÒÃö¤ßªºÃöÁ䳡¤Àªº¨Ï¥Î»¡©ú¡A³o¼Ë¤]³\¯à°÷§äÂI½u¯Á¡C
¤G¡BÀRºA¤Ï¶×½s
©Ò¿×ÀRºA¤ÀªR§Y±q¤Ï¶×½s¥X¨Óªºµ{§Ç²M³æ¤W¤ÀªR¡A±q´£¥Ü¸ê°T¤J¤â¶i¦æ¤ÀªR¡C¥Ø«e¡A¤j¦h¼Æ³nÅé¦b³]p®É¡A³£±Ä¥Î¤F¤H¾÷¹ï¸Ü¤è¦¡¡C©Ò¿×¤H¾÷¹ï¸Ü¡A§Y¦b³nÅé¹B¦æ¹Lµ{¤¤¡A»Ýn¥Ñ¨Ï¥ÎªÌ¿ï¾Üªº¦a¤è¡A³nÅé§YÅã¥Ü¬ÛÀ³ªº´£¥Ü¸ê°T¡A¨Ãµ¥«Ý¨Ï¥ÎªÌ«öÁä¿ï¾Ü¡C¦Ó¦b°õ¦æ§¹¬Y¤@¬qµ{§Ç¤§¦Z¡A«KÅã¥Ü¤@¦ê´£¥Ü¸ê°T¡A¥H¤Ï¬M¸Ó¬qµ{§Ç¹B¦æ¦Zªºª¬ºA¡A¬O¥¿±`¹B¦æ¡AÁÙ¬O¥X²{¿ù»~¡A©ÎªÌ´£¥Ü¨Ï¥ÎªÌ¶i¦æ¤U¤@¨B¤u§@ªºÀ°§U¸ê°T¡C¬°¦¹¡A¦pªG§Ú̹ïÀRºA¤Ï¶×½s¥X¨Óªºµ{§Ç²M³æ¶i¦æ¾\Ū¡A¥i¤F¸Ñ³nÅ骺µ{¦¡¤Æ«ä¸ô¡A¥H«K¶¶§Q¯}¸Ñ¡C ±`¥ÎªºÀRºA¤ÀªR¤u¨ã¬OW32DASM¡BIDA©MHIEWµ¥¡C
¤T¡B°ÊºA¸òÂܤÀªR
ÁöµM±qÀRºA¤W¥i¥H¤F¸Ñµ{§Çªº«ä¸ô¡A¦ý¬O¨Ã¤£¥i¯à¯u¥¿¤F¸Ñ¦a¤F¸Ñ³nÅ骺²Ó¸`¡A¦pÀRºA¤ÀªR§ä¤£¥X½u¯Á¡A´Nn°ÊºA¤ÀªRµ{§Ç¡A¥t¥~¡A¸I¨ìÀ£ÁYµ{§Ç¡AÀRºA¤ÀªR¤]µL¯à¬°¤O¤F¡A¥u¯à°ÊºA¤ÀªR¤F¡C©Ò¿×°ÊºA¤ÀªR¬O§Q¥ÎSOFTICE©ÎTRW2000¤@¨B¤@¨B¦a³æ¨B°õ¦æ³nÅé¡C¬°¤°»òn¹ï³nÅé¶i¦æ°ÊºA¤ÀªR©O¡H³o¥Dn¬O¦]¬°¡G
1¡B³\¦h³nÅé¦b¾ãÅé¤W§¹¦¨ªº¥\¯à¡A¤@¯ën¤À¸Ñ¦¨Y¤z¼Ò¶ô¨Ó§¹¦¨¡A¦Ó¥B¦Z¤@¼Ò¶ô¦b°õ¦æ®É¡A©¹©¹»Ýn¨Ï¥Î¨ä«e¤@¼Ò¶ô³B²zªºµ²ªG¡A³o¤@µ²ªG§Ú̧⥦¥s¤¤¶¡µ²ªG¡C¦pªG§ÚÌ¥u¹ï³nÅ饻¨¶i¦æÀRºA¦a¤ÀªR¡A¤@¯ë¬O«ÜÃø¤ÀªR¥X³o¨Ç¤¤¶¡µ²ªGªº¡C¦Ó¥u¦³³q¹L¸òÂܰõ¦æ«e¤@¼Ò¶ô¡A¤~¯à¬Ý¨ì³o¨Çµ²ªG¡C¥t¥~¡A¦bµ{§Çªº¹B¦æ¹Lµ{¤¤¡A©¹©¹·|¦b¬Y¤@¦a¤è¥X²{³\¦h¤À¤ä©MÂಾ¡A¤£¦Pªº¤À¤ä©MÂಾ©¹©¹»Ýn¤£¦Pªº±ø¥ó¡A¦Ó³o¨Ç±ø¥ó¤@¯ë¬O¥Ñ¹B¦æ¸Ó¤À¤ä¤§«eªºµ{§Ç¨Ó²£¥Íªº¡C¦pªG·Qª¾¹Dµ{§Ç¹B¦æ¨ì¸Ó¤À¤äªº¦a¤è®É¡A¥h©³¨«¦Vþ¤@¤À¤ä¡A¤£¶i¦æ°ÊºA¦a¸òÂÜ©M¤ÀªR¬O¤£±o¦Óª¾ªº¡C
2¡B¦³³\¦h³nÅé¦b¹B¦æ®É¡A¨ä³Ìªì°õ¦æªº¤@¬qµ{§Ç©¹©¹»Ýn¹ï¸Ó³nÅ骺¦Z±¦UÓ¼Ò¶ô¶i¦æ¤@¨Çªì©l©l¤Æ¤u§@¡A¦Ó¨S¦³¨Ì¿à¨t²Îªº«©w¦ì¡C
3¡B¦³³\¦h¥[±Kµ{§Ç¬°¤Fªý¤î«Dªk¸òÂÜ©M¾\Ū¡A¹ï°õ¦æ¥N½Xªº¤j³¡¤À¤º®e¶i¦æ¤F¥[±KÅÜ´«¡A¦Ó¥u¦³«Üµuªº¤@¬qµ{§Ç¬O©ú¤å¡C¥[±Kµ{§Ç¹B¦æ®É¡A±Ä¥Î¤F³v¶ô¸Ñ±K¡A³v¶ô°õ¦æ©M¤èªk¡Aº¥ý¹B¦æ³Ìªìªº¤@¬q©ú¤åµ{§Ç¡A¸Óµ{§Ç¦b¹B¦æ¹Lµ{¤¤¡A¤£¶Èn§¹¦¨ªý¤î¸òÂܪº¥ô°È¡A¦Ó¥BÁÙnt³d¹ï¤U¤@¶ô±K½X¶i¦æ¸Ñ±K¡CÅãµM¶È¹ï¸Ó³nÅ骺±K½X³¡¤À¶i¦æ¤Ï¶×½s¡A¤£¹ï¸Ó³nÅé°ÊºA¸òÂܤÀªR¡A¬O®Ú¥»¤£¥i¯à¶i¦æ¸Ñ±Kªº¡C
¥Ñ©ó¤Wzì¦]¡A¦b¹ï³nÅéÀRºA¤ÀªR¤£¦æªº±ø¥ó¤U¡A´Nn¶i¦æ°ÊºA¤ÀªR¤F¡Cþ»ò¦p¦ó¦³®Ä¦a¶i¦æ°ÊºA¸òÂܤÀªR©O¡H¤@¯ë¨Ó»¡¦³¦p¤U´XÂI¡G
1¡B¹ï³nÅé¶i¦æ²Ê¸òÂÜ
©Ò¿×²Ê¸òÂÜ¡A§Y¦b¸òÂÜ®Én¤j¶ô¤j¶ô¦a¸òÂÜ¡A¤]´N¬O»¡¨C¦¸¹J¨ì½Õ¥ÎCALL«ü¥O¡B«´_¾Þ§@«ü¥OREP.´`Àô¾Þ§@LOOP«ü¥O¥H¤Î¤¤Â_½Õ¥ÎINT«ü¥Oµ¥¡A¤@¯ë¤£n¸òÂܶi¥h¡A¦Ó¬O®Ú¾Ú°õ¦æµ²ªG¤ÀªR¸Ó¬qµ{§Çªº¥\¯à¡C
2¡B¹ïÃöÁ䳡¤À¶i¦æ²Ó¸òÂÜ
¹ï³nÅé¶i¦æ¤F¤@©wµ{«×ªº²Ê¸òÂܤ§«á«K¥i¥HÀò¨ú³nÅ餤§ÚÌ©ÒÃö¤ßªº¼Ò¶ô©Îµ{§Ç¬q¡A³o¼Ë´N¥i¥H°w¹ï©Ê¦a¹ï¸Ó¼Ò¶ô¶i¦æ¨ãÅé¦Ó¸Ô²Ó¦a¸òÂܤÀªR¡C¤@¯ë±¡ªp¤U¡A¹ïÃöÁä¥N½Xªº¸òÂÜ¥i¯àn¤Ï´_¶i¦æY¤z¦¸¤~¯àŪÀ´¸Óµ{§Ç¡A¨C¦¸n§â¤ñ¸ûÃöÁ䪺¤¤¶¡µ²ªG©Î«ü¥O¦a§}°O¿ý¤U¨Ó¡A³o¼Ë·|¹ï¤U¤@¦¸¤ÀªR¦³«Ü¤jªºÀ°§U¡C³nÅé¤ÀªR¬O¤@ºØ¤ñ¸û´_Âø©MÁ}Wªº¤u§@¡A¤W±ªº´XÂI¤ÀªR¤èªk¡A¥u¬O´£¨Ñ¤F¤@ºØ°ò¥»ªº¤ÀªR¤èªk¡Cn¿n²Ö³nÅé¤ÀªRªº¸gÅç»Ýn¦b¹ê½î¤¤¤£Â_¦a±´¯Á©MÁ`µ²¡C
²Ä¤T¸` 8088 ¶×½s¸õÂà
¤@¡Bª¬ºA±H¦s¾¹
PSW¡]Program Flag)µ{§Çª¬ºA¦r±H¦s¾¹¡A¬O¤@Ó16¦ì±H¦s¾¹¡A¥Ñ±ø¥ó½X¼Ð§Ó¡]flag¡^©M±±¨î¼Ð§Óºc¦¨¡A¦p¤U©Ò¥Ü¡G
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
±ø¥ó½X¡G
①OF¡]Overflow Flag)·¸¥X¼Ð§Ó¡C·¸¥X®É¬°1,§_«h¸m0¡C
②SF¡]Sign Flag¡^²Å¸¹¼Ð§Ó¡Cµ²ªG¬°t®É¸m1,§_«h¸m0.
③ZF¡]Zero Flag)¹s¼Ð§Ó¡A¹Bºâµ²ªG¬°0®ÉZF¦ì¸m1,§_«h¸m0.
④CF¡]Carry Flag)¶i¦ì¼Ð§Ó¡A¶i¦ì®É¸m1,§_«h¸m0.
⑤AF¡]Auxiliary carry Flag¡^»²§U¶i¦ì¼Ð§Ó¡A°O¿ý¹Bºâ®É²Ä3¦ì¡]¥bӦ줸²Õ¡^²£¥Íªº¶i¦ì¸m¡C¦³¶i¦ì®É1,§_«h¸m0.
⑥PF¡]Parity Flag¡^©_°¸¼Ð§Ó¡Cµ²ªG¾Þ§@¼Æ¤¤1ªºÓ¼Æ¬°°¸¼Æ®É¸m1,§_«h¸m0.
±±¨î¼Ð§Ó¦ì¡G
⑦DF¡]Direction Flag¡^¤è¦V¼Ð§Ó¡A¦b¦ê³B²z«ü¥O¤¤±±¨î¸ê°Tªº¤è¦V¡C
⑧IF¡]Interrupt Flag¡^¤¤Â_¼Ð§Ó¡C
⑨TF¡]Trap Flag¡^³´¤«¼Ð§Ó¡C
¤G¡B ª½±µ¼Ð§ÓÂಾ¡]8¦ì´M§}¡^
«ü¥O®æ¦¡ ¾÷¾¹½X ´ú¸Õ±ø¥ó ¦p...«hÂಾ
«ü¥O®æ¦¡ ¾÷¾¹½X ´ú¸Õ±ø¥ó ¦p...«hÂಾ
JC 72 C=1 ¦³¶i¦ì JNS 79 S=0 ¥¿¸¹
JNC 73 C=0 µL¶i¦ì JO 70 O=1 ¦³·¸¥X
JZ/JE 74 Z=1 ¹s/µ¥©ó JNO 71 O=0 µL·¸¥X
JNZ/JNE 75 Z=0 ¤£¬°¹s/¤£µ¥©ó JP/JPE 7A P=1 ©_°¸¦ì¬°°¸
JS 78 S=1 t¸¹ JNP/IPO 7B P=0 ©_°¸¦ì¬°©_
¤T¡B¶¡±µ¼Ð§ÓÂಾ¡]8¦ì´M§}¡^
«ü¥O®æ¦¡ ¾÷¾¹½X ´ú¸Õ®æ¦¡ ¦p...«hÂಾ
JA/JNBE(¤ñ¸ûµL²Å¸¹¼Æ) 77 C©ÎZ=0 > °ª©ó/¤£§C©ó©Îµ¥©ó
JAE/JNB(¤ñ¸ûµL²Å¸¹¼Æ) 73 C=0 >= °ª©ó©Îµ¥©ó/¤£§C©ó
JB/JNAE(¤ñ¸ûµL²Å¸¹¼Æ) 72 C=1 < §C©ó/¤£°ª©ó©Îµ¥©ó
JBE/JNA(¤ñ¸ûµL²Å¸¹¼Æ) 76 C©ÎZ=1 <= §C©ó©Îµ¥©ó/¤£°ª©ó
JG/JNLE(¤ñ¸û±a²Å¸¹¼Æ) 7F (S²§©ÎO¡^©ÎZ=0 > ¤j©ó/¤£¤p©ó©Îµ¥©ó
JGE/JNL(¤ñ¸û±a²Å¸¹¼Æ) 7D S²§©ÎO=0 >= ¤j©ó©Îµ¥©ó/¤£¤p©ó
JL/JNGE(¤ñ¸û±a²Å¸¹¼Æ) 7C S²§©ÎO=1 < ¤p©ó/¤£¤j©ó©Îµ¥©ó
JLE/JNG(¤ñ¸û±a²Å¸¹¼Æ) 7E (S²§©ÎO)©ÎZ=1 <= ¤p©ó©Îµ¥©ó/¤£¤j©ó
¥|¡BµL±ø¥óÂಾ«ü¥O
¾Þ§@½X °°½X«ü¥O §t¸q
EB cb JMP rel8 ¬Û¹ïµu¸õÂà¡]8¦ì¡^¡A¨Ïrel8³Bªº¥N½X¦ì¤U¤@±ø«ü¥O
E9 cw JMP rel16 ¬Û¹ï¸õÂà¡]16¦ì¡^¡A¨Ïrel16³Bªº¥N½X¦ì¤U¤@±ø«ü¥O
FF /4 JMP r/m16 µ´¹ï¸õÂà¡]16¦ì¡^¡A¤U¤@«ü¥O¦a§}¦br/m16¤¤µ¹¥X
FF /4 JMP r/m32 µ´¹ï¸õÂà¡]32¦ì¡^¡A¤U¤@«ü¥O¦a§}¦br/m32¤¤µ¹¥X
EA cb JMP ptr16:16 »·¶ZÂ÷µ´¹ï¸õÂà¡A ¤U¤@«ü¥O¦a§}¦b¾Þ§@¼Æ¤¤
EA cb JMP ptr16:32 »·¶ZÂ÷µ´¹ï¸õÂà¡A ¤U¤@«ü¥O¦a§}¦b¾Þ§@¼Æ¤¤
FF /5 JMP m16:16 »·¶ZÂ÷µ´¹ï¸õÂà¡A ¤U¤@«ü¥O¦a§}¦b°O¾ÐÅém16:16¤¤
FF /5 JMP m16:32 »·¶ZÂ÷µ´¹ï¸õÂà¡A ¤U¤@«ü¥O¦a§}¦b°O¾ÐÅém16:32¤¤
¤¡B16¦ì/32¦ì´M§}¤è¦¡
¾Þ§@½X °°½X«ü¥O ¸õÂà§t¸q ¸õÂàÃþ«¬ ¸õÂ઺±ø¥ó¡]¼Ð§Ó¦ì¡^
0F 87 cw/cd JA rel16/32 ¤j©ó near (CF=0 and ZF=0)
0F 83 cw/cd JAE rel16/32 ¤j©óµ¥©ó near (CF=0)
0F 82 cw/cd JB rel16/32 ¤p©ó near (CF=1)
0F 86 cw/cd JBE rel16/32 ¤p©óµ¥©ó near (CF=1 or ZF=1)
0F 82 cw/cd JC rel16/32 ¶i¦ì near (CF=1)
0F 84 cw/cd JE rel16/32 µ¥©ó near (ZF=1)
0F 84 cw/cd JZ rel16/32 ¬°0 near (ZF=1)
0F 8F cw/cd JG rel16/32 ¤j©ó near (ZF=0 and SF=OF)
0F 8D cw/cd JGE rel16/32 ¤j©óµ¥©ó near (SF=OF)
0F 8C cw/cd JL rel16/32 ¤p©ó near (SF<>OF)
0F 8E cw/cd JLE rel16/32 ¤p©óµ¥©ó near (ZF=1 or SF<>OF)
0F 86 cw/cd JNA rel16/32 ¤£¤j©ó near (CF=1 or ZF=1)
0F 82 cw/cd JNAE rel16/32 ¤£¤j©óµ¥©ó near (CF=1)
0F 83 cw/cd JNB rel16/32 ¤£¤p©ó near (CF=0)
0F 87 cw/cd JNBE rel16/32 ¤£¤p©óµ¥©ó near (CF=0 and ZF=0)
0F 83 cw/cd JNC rel16/32 ¤£¶i¦ì near (CF=0)
0F 85 cw/cd JNE rel16/32 ¤£µ¥©ó near (ZF=0)
0F 8E cw/cd JNG rel16/32 ¤£¤j©ó near (ZF=1 or SF<>OF)
0F 8C cw/cd JNGE rel16/32 ¤£¤j©óµ¥©ó near (SF<>OF)
0F 8D cw/cd JNL rel16/32 ¤£¤p©ó near (SF=OF)
0F 8F cw/cd JNLE rel16/32 ¤£¤p©óµ¥©ó near (ZF=0 and SF=OF)
0F 81 cw/cd JNO rel16/32 ¥¼·¸¥X near (OF=0)
0F 8B cw/cd JNP rel16/32 ¤£¬O°¸¼Æ near (PF=0)
0F 89 cw/cd JNS rel16/32 «Dt¼Æ near (SF=0)
0F 85 cw/cd JNZ rel16/32 «D¹s¡]¤£µ¥©ó¡^ near (ZF=0)
0F 80 cw/cd JO rel16/32 ·¸¥X near (OF=1)
0F 8A cw/cd JP rel16/32 °¸¼Æ near (PF=1)
0F 8A cw/cd JPE rel16/32 °¸¼Æ near (PF=1)
0F 8B cw/cd JPO rel16/32 ©_¼Æ near (PF=0)
0F 88 cw/cd JS rel16/32 t¼Æ near (SF=1)
0F 84 cw/cd JZ rel16/32 ¬°¹s¡]µ¥©ó¡^ near (ZF=1)
ª`¡G¤@¨Ç«ü¥O¾Þ§@¼Æªº§t¸q»¡©ú¡G
rel8 ªí¥Ü 8 ¦ì¬Û¹ï¦a§}
rel16 ªí¥Ü 16 ¦ì¬Û¹ï¦a§}
rel16/32 ªí¥Ü 16©Î32 ¦ì¬Û¹ï¦a§}
r/m16 ªí¥Ü16¦ì±H¦s¾¹
r/m32 ªí¥Ü32¦ì±H¦s¾¹
²Ä¥|¸` ¯BÂI«ü¥O
¹ï¤U±ªº«ü¥O¥ý°µ¤@¨Ç»¡©ú¡G
st(i)¡G¥Nªí¯BÂI±H¦s¾¹¡A©Ò»¡ªº¥X´Ì¡B¤J´Ì¾Þ§@³£¬O¹ïst(i)ªº¼vÅT
src,dst,dest,opµ¥³£¬O«ü«ü¥Oªº¾Þ§@¼Æ¡Asrcªí¥Ü·½¾Þ§@¼Æ¡Adst/destªí¥Ü¥Øªº¾Þ§@¼Æ
mem8,mem16,mem32,mem64,mem80µ¥ªí¥Ü¬O°O¾ÐÅé¾Þ§@¼Æ¡A¦Z±ªº¼ÆÈªí¥Ü¸Ó¾Þ§@¼Æªº°O¾ÐÅé¦ì¼Æ¡]8¦ì¬°¤@¦ì¤¸²Õ¡^
x <- y ªí¥Ü±NyªºÈ©ñ¤Jx¡A¨Òst(0) <- st(0) - st(1)ªí¥Ü±Nst(0)-st(1)ªºÈ©ñ¤J¯BÂI±H¦s¾¹st(0)
1¡D ¸ê®Æ¶Ç»¼©M¹ï±`¶qªº¾Þ§@«ü¥O
«ü¥O®æ¦¡
«ü¥O§t¸q
°õ¦æªº¾Þ§@
FLD src
¸Ë¤J¹ê¼Æ¨ìst(0)
st(0) <- src (mem32/mem64/mem80)
FILD src
¸Ë¤J¾ã¼Æ¨ìst(0)
st(0) <- src (mem16/mem32/mem64)
FBLD src
¸Ë¤JBCD¼Æ¨ìst(0)
st(0) <- src (mem80)
FLDZ
±N0.0¸Ë¤Jst(0)
st(0) <- 0.0
FLD1
±N1.0¸Ë¤Jst(0)
st(0) <- 1.0
FLDPI
±Npi¸Ë¤Jst(0)
st(0) <- ?(ie, pi)
FLDL2T
±Nlog2(10)¸Ë¤Jst(0)
st(0) <- log2(10)
FLDL2E
±Nlog2(e)¸Ë¤Jst(0)
st(0) <- log2(e)
FLDLG2
±Nlog10(2)¸Ë¤Jst(0)
st(0) <- log10(2)
FLDLN2
±Nloge(2)¸Ë¤Jst(0)
st(0) <- loge(2)
FST dest
«O¦s¹ê¼Æst(0)¨ìdest
dest <- st(0) (mem32/mem64)
FSTP dest
dest <- st(0) (mem32/mem64/mem80)¡FµM¦Z¦A°õ¦æ¤@¦¸¥X´Ì¾Þ§@
FIST dest
±Nst(0)¥H¾ã¼Æ«O¦s¨ìdest
dest <- st(0) (mem32/mem64)
FISTP dest
dest <- st(0) (mem16/mem32/mem64)¡FµM¦Z¦A°õ¦æ¤@¦¸¥X´Ì¾Þ§@
FBST dest
±Nst(0)¥HBCD«O¦s¨ìdest
dest <- st(0) (mem80)
FBSTP dest
dest<- st(0) (mem80)¡FµM«á¦A°õ¦æ¤@¦¸¥X´Ì¾Þ§@
2¡D¤ñ¸û«ü¥O
«ü¥O®æ¦¡
«ü¥O§t¸q
°õ¦æªº¾Þ§@
FCOM
¹ê¼Æ¤ñ¸û
±N¼Ð§Ó¦ì³]¸m¬° st(0) - st(1) ªºµ²ªG¼Ð§Ó¦ì
FCOM op
¹ê¼Æ¤ñ¸û
±N¼Ð§Ó¦ì³]¸m¬° st(0) - op (mem32/mem64)ªºµ²ªG¼Ð§Ó¦ì
FICOM op
©M¾ã¼Æ¤ñ¸û
±NFlagsȳ]¸m¬°st(0)-op ªºµ²ªGop (mem16/mem32)
FICOMP op
©M¾ã¼Æ¤ñ¸û
±Nst(0)©Mop¤ñ¸û op(mem16/mem32)¦Z¡F¦A°õ¦æ¤@¦¸¥X´Ì¾Þ§@
FTST
¹sÀË´ú
±Nst(0)©M0.0¤ñ¸û
FUCOM st(i)
¤ñ¸ûst(0) ©Mst(i) [486]
FUCOMP st(i)
¤ñ¸ûst(0) ©Mst(i)¡A¨Ã¥B°õ¦æ¤@¦¸¥X´Ì¾Þ§@
FUCOMPP st(i)
¤ñ¸ûst(0) ©Mst(i)¡A¨Ã¥B°õ¦æ¨â¦¸¥X´Ì¾Þ§@
FXAM
Examine: Eyeball st(0) (set condition codes)
3¡D¹Bºâ«ü¥O
«ü¥O®æ¦¡
«ü¥O§t¸q
°õ¦æªº¾Þ§@
¥[ªk
FADD
¥[¹ê¼Æ
st(0) <-st(0) + st(1)
FADD src
st(0) <-st(0) + src (mem32/mem64)
FADD st(i),st
st(i) <- st(i) + st(0)
FADDP st(i),st
st(i) <- st(i) + st(0)¡FµM¦Z°õ¦æ¤@¦¸¥X´Ì¾Þ§@
FIADD src
¥[¤W¤@Ó¾ã¼Æ
st(0) <-st(0) + src (mem16/mem32)
´îªk
FSUB
´î¥h¤@Ó¹ê¼Æ
st(0) <- st(0) - st(1)
FSUB src
st(0) <-st(0) - src (reg/mem)
FSUB st(i),st
st(i) <-st(i) - st(0)
FSUBP st(i),st
st(i) <-st(i) - st(0)¡AµM¦Z°õ¦æ¤@¦¸¥X´Ì¾Þ§@
FSUBR st(i),st
¥Î¤@Ó¹ê¼Æ¨Ó´î
st(0) <- st(i) - st(0)
FSUBRP st(i),st
st(0) <- st(i) - st(0)¡AµM¦Z°õ¦æ¤@¦¸¥X´Ì¾Þ§@
FISUB src
´î¥h¤@Ó¾ã¼Æ
st(0) <- st(0) - src (mem16/mem32)
FISUBR src
¥Î¤@Ó¾ã¼Æ¨Ó´î
st(0) <- src - st(0) (mem16/mem32)
¼ªk
FMUL
¼¤W¤@Ó¹ê¼Æ
st(0) <- st(0) * st(1)
FMUL st(i)
st(0) <- st(0) * st(i)
FMUL st(i),st
st(i) <- st(0) * st(i)
FMULP st(i),st
st(i) <- st(0) * st(i)¡AµM¦Z°õ¦æ¤@¦¸¥X´Ì¾Þ§@
FIMUL src
¼¤W¤@Ó¾ã¼Æ
st(0) <- st(0) * src (mem16/mem32)
°£ªk
FDIV
°£¥H¤@Ó¹ê¼Æ
st(0) <-st(0) /st(1)
FDIV st(i)
st(0) <- st(0) /t(i)
FDIV st(i),st
st(i) <-st(0) /st(i)
FDIVP st(i),st
st(i) <-st(0) /st(i)¡AµM«á°õ¦æ¤@¦¸¥X´Ì¾Þ§@
FIDIV src
°£¥H¤@Ó¾ã¼Æ
st(0) <- st(0) /src (mem16/mem32)
FDIVR st(i),st
¥Î¹ê¼Æ°£
st(0) <- st(i) /st(0)
FDIVRP st(i),st
FDIVRP st(i),st
FIDIVR src
¥Î¾ã¼Æ°£
st(0) <- src /st(0) (mem16/mem32)
FSQRT
¥¤è®Ú
st(0) <- sqrt st(0)
FSCALE
2ªºst(0)¦¸¤è
st(0) <- 2 ^ st(0)
FXTRACT
Extract exponent:
st(0) <-exponent of st(0); and gets pushed
st(0) <-significand of st(0)
FPREM
¨ú§E¼Æ
st(0) <-st(0) MOD st(1)
FPREM1
¨ú§E¼Æ¡]IEEE¡^¡A¦PFPREM¡A¦ý¬O¨Ï¥ÎIEEE¼Ð·Ç[486]
FRNDINT
¨ú¾ã¡]¥|ªÙ¤¤J¡^
st(0) <- INT( st(0) ); depends on RC flag
FABS
¨Dµ´¹ïÈ
st(0) <- ABS( st(0) ); removes sign
FCHS
§ïÅܲŸ¹¦ì(¨Dt¼Æ¡^
st(0) <-st(0)
F2XM1
pºâ(2 ^ x)-1
st(0) <- (2 ^ st(0)) - 1
FYL2X
pºâY * log2(X)
st(0)¬°Y¡Fst(1)¬°X¡F±Nst(0)©Mst(1)Åܬ°st(0) * log2( st(1) )ªºÈ
FCOS
§E©¶¨ç¼ÆCos
st(0) <- COS( st(0) )
FPTAN
¥¿¤Á¨ç¼Ætan
st(0) <- TAN( st(0) )
FPATAN
¤Ï¥¿¤Á¨ç¼Æarctan
st(0) <- ATAN( st(0) )
FSIN
¥¿©¶¨ç¼Æsin
st(0) <- SIN( st(0) )
FSINCOS
sincos¨ç¼Æ
st(0) <-SIN( st(0) )¡A¨Ã¥BÀ£¤Jst(1)
st(0) <- COS( st(0) )
FYL2XP1
pºâY * log2(X+1)
st(0)¬°Y¡F st(1)¬°X¡F ±Nst(0)©Mst(1)Åܬ°st(0) * log2( st(1)+1 )ªºÈ
³B²z¾¹±±¨î«ü¥O
FINIT
ªì©l¤ÆFPU
FSTSW AX
«O¦sª¬ºA¦rªºÈ¨ìAX
AX<- MSW
FSTSW dest
«O¦sª¬ºA¦rªºÈ¨ìdest
dest<-MSW (mem16)
FLDCW src
±qsrc¸Ë¤JFPUªº±±¨î¦r
FPU CW <-src (mem16)
FSTCW dest
±NFPUªº±±¨î¦r«O¦s¨ìdest
dest<- FPU CW
FCLEX
²M°£²§±`
FSTENV dest
«O¦sÀô¹Ò¨ì°O¾ÐÅé¦a§}dest³B «O¦sª¬ºA¦r¡B±±¨î¦r¡B¼Ð§Ó¦r©M²§±`«ü°wªºÈ
FLDENV src
±q°O¾ÐÅé¦a§}src³B¸Ë¤J«O¦sªºÀô¹Ò
FSAVE dest
«O¦sFPUªºª¬ºA¨ìdest³B 94¦ì¤¸²Õ
FRSTOR src
±qsrc³B¸Ë¤J¥ÑFSAVE«O¦sªºFPUª¬ºA
FINCSTP
¼W¥[FPUªº´Ì«ü°wÈ
st(6) <-st(5); st(5) <-st(4),...,st(0) <-?
FDECSTP
´î¤ÖFPUªº´Ì«ü°wÈ
st(0) <-st(1); st(1) <-st(2),...,st(7) <-?
FFREE st(i)
¼Ð§Ó±H¦s¾¹st(i)¥¼³Q¨Ï¥Î
FNOP
ªÅ¾Þ§@¡Aµ¥¦PCPUªºnop
st(0) <-st(0)
WAIT/FWAIT
¦P¨BFPU»PCPU¡G°±¤îCPUªº¹B¦æ¡Aª½¨ìFPU§¹¦¨·í«e¾Þ§@½X
FXCH
¥æ´««ü¥O¡A¥æ´«st(0)©Mst(1)ªºÈ
st(0) <-st(1)
st(1) <- st(0)
²Ä3³¹ °ÊºA¤ÀªR§Þ³N
²Ä¤@¸` SoftICE»PTRW2000¦w¸Ë¦w¸Ë»P°t¨î
SOFTICE¦³´XÓ¥¥xªºª©¥»¡ADOS,WINDOWS 3.0,Windows 95/98,WINDOWS NT,µ¥¡C ¥Ñ©ó²{¦b³Ì´¶¤Îªº¾Þ§@¨t²Î¬O Windows 95/98¡BWindows NT¡BWindows Millennium¡BWindows2000¦]¦¹´NÁ¿Á¿SOFTICE¦b³o´XÓ¥¥x¦w¸Ë®Éªº¤@¨Çª`·N¨Æ¶µ¡C
¤@¡BSOFTICE for win9x¦w¸Ë»P°t¨î
1¡BÅã¥d¦w¸Ë
2¡B·Æ¹«¦w¸Ë
3¡BAutoexec.bat©Mconfig.sys°t¨î
4¡BSymbol Loader
5¡Bwinice.dat°t¨î
¤G¡BSOFTICE for Windows Millennium
¤T¡BSOFTICE for NT/2K¦w¸Ë»P°t¨î
¥|¡BTRW2000¦w¸Ë
SOFTICEªº¦w¸Ë»P°t¨î
¤@¡BSOFTICE for win9x¦w¸Ë»P°t¨î
㈠¡BSOFTICE¦w¸Ë
1¡BSOFTICE¥Ø«e³Ì·sª©¥»¬O4.05¡A¦p§Aªº¨t²Î¬Owin9x,´N½Ð¤U¸üfor win9xª©¥»ªºSOFTICE¡A«ØÄ³¤U¸üSOFTICEªº³Ì·sª©¥»¡A³o¼Ëéw©Ê¦n¨Ç¡C¹B¦æsetup.exe¶}©l¦w¸Ë
³q¹L°t¨î±Ò°Ê¥\¯àªí¡A±Ò°Ê®É®Ú¾Ú¦Û¤vªº»Ýn¿ï¾Ü¬O§_¸Ë¸üSOFTICE¡C
AUTOEXEC.BAT°t¨î¼Ë¨Ò¡G
@ECHO OFF
goto %config%
:SICE
C:\PROGRA~1\NUMEGA\SOFTIC~1\WINICE.EXE
goto common
:NORM
goto common
:common
CONFIG.SYS°t¨î¼Ë¨Ò¡G
[MENU]
MENUITEM NORM,Windows 9x
MENUITEM SICE,Windows 9x with SoftICE
MENUDEFAULT NORM,2
[NORM]
[SICE]
[common]
①General¿ï¶µ
¦bInitialization string¨½¡A§A¥i¶ñ¤W»ÝnSOFTICE¤@±Ò°Ê¦Û°Ê¹B¦æªº©R¥O¡C¦p¡G
WD 2; WC 14; FAULTS OFF; IXHERE OFF; IYHERE OFF; set font 2;lines 40;x;¡]¦U¦æ¥H¤À¸¹¤À¶}¡^
②Exports¿ï¶µ
¦b³o¨½¥i²K¥[¬ÛÃöªºDLL¤å¥ó¡A¥H«K¦bSOFTICE¤UÄdºI³o¨ÇDLLªº¨ç¼Æ¡C¯S§O¬O¯}¸ÑVBµ{§Ç®É¡A©wn±NVB¹B¦æ®w¸Ë¸ü¶i¥h¡C
③Keyboard Mappings¿ï¶µ
³o¸Ì°t¨î¦U¥\¯à§Ö³tÁä¡C¦p¡GF5="^x;"¥ÎF5Áä¥N´À©R¥OX.
④Macro Definitions¿ï¶µ
§»©w¸q¡A§A¥i©w¨î¦UºØ©R¥O§»¡A¥H¤è«K¥®Éªº¾Þ§@¡C
¦p¡Gs7878="S 30:0 L ffffffff '78787878' " ¥Î©R¥Os7878¥N´À¤@¦ê©R¥O¡GS 30:0 L ffffffff '78787878'
⑤Remote Debugging
§Q¥Îºôµ¸»·µ{½Õ¸Õ°t¨î¡C
ª`¡G¥H¤W©Ò¦³°t¨î¦n¦Zªº°Ñ¼Æ¡A³£«O¦s¦bwinice.dat¤å¥ó¨½¡C
2¡Bwinice.dat°t¨î
¦bWindows 9x¤U SoftICE°t¨î°£¤F¥Î¤W±ªº¤èªk¥~¡A¤]¥i³q¹L¤å¥ówinice.dat¨Ó¹ê²{ªº¡CSoft-ICE ¦b±Ò°Êªº®ÉÔ³q¹L¥¦¸Ë¤J¤@¨Ç DLL/EXE ªº¸ê°T¡C
§A¥i¦bSOFTICE¦w¸Ë¥Ø¿ý¤Uµo²{winice.dat¡A¥i¥Î¥ô¦ó¤å¥»½s¿è³nÅ饴¶}¥¦¡]¦p°O¨Æ¥»¡^¡C¦p§Ú¾÷¤l¨½ªºwinice.dat¡G(§A¥i°Ñ¦Ò§Úªº¨Ó×§ï§Aªºwinice.dat¡^
;ª`·N¤À¸¹¦Z¬O´yz»y¨¥¡A¤£³Q°õ¦æ¡C
PENTIUM=ON;<=Pentium Op-Codes
NMI=ON
ECHOKEYS=OFF
NOLEDS=OFF
NOPAGE=OFF
SIWVIDRANGE=ON
THREADP=ON
LOWERCASE=OFF
WDMEXPORTS=OFF
MONITOR=0
PHYSMB=128;<=³oÓȬO§Aªºª«²z°O¾ÐÅé¤j¤p
SYM=1024
HST=256;<=¾ä¥v§Ö¨ú°Ï¬°256K
TRA=8
MACROS=32;<=§»¾Þ§@ªº³Ì¤jӼơA¦¹³B¬O32Ó
DRAWSIZE=2048;<= §ÚªºÅã¥d°O¾ÐÅé¬O2MB ¡A¦¹³BȬO§AÅã¥d°O¾ÐÅé¤j¤p
INIT=" wd 2;wc 20;FAULTS OFF; IXHERE OFF; IYHERE OFF; set font 2;lines 40;code on;x;";<=ªì©l¤Æ¡A¦¹³B¹w³]ªº¬O800¡¯600¤À¤À¿ë²v
;¦p§A¬O¥þ¿Ã¹õ½Ð´«¤W¡Glines 57
F1="h;"
F2="^wr;"
F3="^src;"
F4="^rs;"
F5="^x;"
F6="^ec;"
F7="^here;"
F8="^t;"
F9="^bpx;"
F10="^p;"
F11="^G @SS:ESP;"
F12="^p ret;"
SF3="^format;"
CF8="^XT;"
CF9="TRACE OFF;"
CF10="^XP;"
CF11="SHOW B;"
CF12="TRACE B;"
AF1="^wr;"
AF2="^wd;"
AF3="^S 0 L FFFFFFFF 8B,CA,F3,A6,74,01,9F,92,8D,5E,08;";<=VB3¯S©º¦r²Å¦ê
AF4="^s 0 l ffffffff 56,57,8B,7C,24,10,8B,74,24,0C,8B,4C,24,14,33,C0,F3,66,A7;" ;<=VB4¯S©º¦r²Å¦ê
AF5="^s 0 l ffffffff FF,75,E0,E8,85,EF,FF,FF,DC,1D,28,10,40,00,DF,E0,9E,75,03;" ;<=VB5¯S©º¦r²Å¦ê
AF8="^XT R;"
AF11="^dd dataaddr->0;"
AF12="^dd dataaddr->4;"
CF1="altscr off; lines 60; wc 32; wd 8;"
CF2="^wr;^wd;^wc;"
;<=¥H¤U¬O§»¾Þ§@©R¥O¡G
MACRO s7878="S 30:0 L ffffffff '78787878' "
MACRO sname="S 0 L FFFFFFFF 'toye' "
MACRO swide="s 0 l FFFFFFFF '7','8,'7','8,'7','8,'7','8,'7','8,'7','8,'7','8','7','8' "
MACRO reg="bpx regqueryvalueexa if *(esp->8)>='Soft' do "d(esp->14)" "
MACRO bpxpe="bpx loadlibrarya do "dd esp->4" "
MACRO bpxgeta="bpx GetDlgItemTextA; bpx getwindowtexta; bpx getdlgitemint; bpx getdlgitemtext;"
; ***** Examples of sym files that can be included if you have the SDK *****
; Change the path to the appropriate drive and directory
;LOAD=c:\windows\system\user.exe
;LOAD=c:\windows\system\gdi.exe
;LOAD=c:\windows\system\krnl386.exe
;LOAD=c:\windows\system\mmsystem.dll
;LOAD=c:\windows\system\win386.exe
; Exports - change the path to the appropriate drive and directory
EXP=c:\windows\system\advapi32.dll ;<=³o¥|¦æ«e¤£n¥[¤À¸¹,§_«h¤£³Q¸Ë¸ü¡ASOFTICE¥i¯à¤°»ò¤]Äd¤£¨ì :
EXP=c:\windows\system\kernel32.dll
EXP=c:\windows\system\user32.dll
exp=c:\windows\system\gdi32.dll
exp=c:\windows\system\comctl32.dll ;
; ¦p§An¯}¸ÑVBµ{§Ç¡A¤U±ªºVB¹B¦æ®w±Nn¸Ë¸ü¡ASOFTICE¹w³]ȬO¨S¦³³o´X¦æ¡A§A»Ý¤â°Ê¥[¤W¡C
;EXP=c:\windows\system\msvbvm60.dll;<= Visual Basic 6 ¨ãÅé°Ñ¦Ò²Ä¤Q¤½ÒVB¯}¸Ñ
EXP=c:\windows\system\msvbvm50.dll ;<= Visual Basic 5 ª`·N¦b³o¤ÓDLL¤¤³Ì¦n¤£n¦P®É¸Ë¸ü2Ó¥H¤W
; EXP=c:\windows\system\vb40032.dll;<= Visual Basic 4¡]32bit)
; EXP=c:\windows\system\vb40016.dll;<=Visual Basic 4(16-bit)¸û¤Ö¨£
; EXP=c:\windows\system\vbrun300.dll;<=Visual Basic 3
;EXP=c:\windows\system\vga.drv;
;EXP=c:\windows\system\vga.3gr
;EXP=c:\windows\system\sound.drv
;EXP=c:\windows\system\mouse.drv
;EXP=c:\windows\system\netware.drv
;EXP=c:\windows\system\system.drv
;EXP=c:\windows\system\keyboard.drv
;EXP=c:\windows\system\toolhelp.dll
;EXP=c:\windows\system\shell.dll
;EXP=c:\windows\system\commdlg.dll
;EXP=c:\windows\system\olesvr.dll
;EXP=c:\windows\system\olecli.dll
;EXP=c:\windows\system\mmsystem.dll
;EXP=c:\windows\system\winoldap.mod
;EXP=c:\windows\progman.exe
;EXP=c:\windows\drwatson.exe
; ***** Examples of export symbols that can be included for Windows 95 *****
; Change the path to the appropriate drive and directory
EXP=c:\windows\system\kernel32.dll
EXP=c:\windows\system\user32.dll
EXP=c:\windows\system\gdi32.dll
EXP=c:\windows\system\comdlg32.dll
EXP=c:\windows\system\shell32.dll
EXP=c:\windows\system\advapi32.dll
EXP=c:\windows\system\shell232.dll
EXP=c:\windows\system\comctl32.dll
;EXP=c:\windows\system\crtdll.dll
;EXP=c:\windows\system\version.dll
EXP=c:\windows\system\netlib32.dll
;EXP=c:\windows\system\msshrui.dll
EXP=c:\windows\system\msnet32.dll
EXP=c:\windows\system\mspwl32.dll
;EXP=c:\windows\system\mpr.dll
±Ò°Êwindows¸Ë¸üSOFTICE¦Z¡A«x¡I«ç»ò¨S¤ÏÀ³¡A¨S½Õ¸Õµe±¡I«¢«¢¡A§OµÛ«æ¡A«öCTRL¡ÏD¬Ý¬Ý¡A¦A«ö¤@¤U¦^¨ìwindows¤U¡A©Î«öF5¤]¯à¦^¨Ó¡C¦¹®É½Õ¸Õµøµ¡¶Hwindows¶}ªº¤@µøµ¡¡A¦p¬O¶H¥þ¿Ã¹õDOS¤@¼Ëµøµ¡¡A¨º´N¬O¦w¸ËÅã¥d®É¡A°Ñ¼Æ¨S¿ï¦n¡A¦¹®É«ö¤W¤å×¥¿§Y¥i¡C¤U±ªº©R¥O¬O½Õ¾ãSOFTICEµøµ¡ª¬ºA¡G
set font n(n=1,2,3)³]¸m¦rÅé;¥»¤H«ØÄ³set font 2(¦b800*600±ø¥ó¤U¡^
set origin x,y(x,y)Âê©wµøµ¡;
lines n n=(25-128)³]¸mÅã¥Ü¦æ¼Æ¡F¥»¤H«ØÄ³lines 40
Ctrl+Alt+´å¼ÐÁä ²¾°Êµøµ¡¡F
Ctrl+Alt+home «³]µøµ¡¦ì¸mìÂI¡]0,0¡^¡F
Ctrl+L ¨ê·s¡C
¦p§A¥H¹w³]winice.dat±Ò°ÊSOFTICE¡A¦³¥i¯à»Ý¥ÎWD¥´¶}¸ê®Æµøµ¡;¥ÎSET FONT 2 ³]¸m¦rÅéµ¥«´_¤u§@¡C§A¥i¦bwinice.dat¤å¥ó¤º³]¸m¦Û°Ê°õ¦æ©R¥O¾Þ§@¡A¤èªk¬O¦bINIT³o¤@¦æ¡A¦U©R¥O¥Î¤À¸¹¤À¶}¡A¦p¡G
INIT=" WD 2; WC 14; FAULTS OFF; IXHERE OFF; IYHERE OFF; set font 2;lines 40;x;"³o¼Ë°t¨î«á¬É±Ãþ¦üTRW2000¡C¡]³o¨Ç¬O¦b800*600±ø¥ó¤Uªº±¡ªp¡A¦p§A¤£¬O¦¹¤ÀÅG²v¥i½Õ¾ãset font n;lines n¡^
¤G¡BSOFTICE for Windows Millennium
¥Ñ©óWindows Millennium¨S¦³¤FDOS¥¥x¡A¦]¦¹¤£¯à¥Î±`¥Îªº¤èªk¨Ó¦w¸ËSOFTICE,¦b¦¹¥¥x¤W¥i¥H¹B¦æSOFTICE for WIN9xª©¥»©MTRW2000ª©¥»¡Cn¹ê²{SOFTICE¦bWindows Millennium¥¥xªº¦w¸Ë¡A»Ýn¤u¨ãWinice Loader¡A¦w¸Ë¹Lµ{¦p¤U:
1 ¥¿±`¦w¸ËWindows Millennium,¦p¦bC:\WIN98ME¡F
2 ¥¿±`¦w¸ËSoftice 405 Build 334¡F
3 ´_¨îWINICE.EXE¡BWINICE.DAT¡BSIWVID.386 ¤TÓ¤å¥ó¨ì C:\WIN98ME¤U¡F
4 ±qWinice Loader¤º¸ÑÀ£ LOADER.EXE,´_¨î³oÓ¤å¥ó¨ìC:\WINME98\SYSTEM\VMM32\ ¤U.
5 «·s±Ò°Ê¨t²Î¡C
¤T¡BSOFTICE for NT/2K¦w¸Ë»P°t¨î
1¡BSOFTICE for NT/2kªº¦w¸Ë»Pfor 9xª©¥»®t¤£¦h¡A©Ò¤£¦Pªº¬O¦b²Ä¤¨B¡G¸Ë¸üSOFTICE¤è¦¡¿ï¾Ü
§A¥i®Ú¾Ú»Ýn¿ï¾Ü¤£¦Pªº¸Ë¸ü¤è¦¡¡Aª`¡G¦p§A¿ï¾Ü¤FManual¤è¦¡¡An¸Ë¸üSOFTICE¡A»Ýn¨ÓSOFTICEªº¥\¯àªí¨½¹B¦æ¿ï¶µ¡GSTART SOFTICE§Ö±¶¤è¦¡¨Ó¸Ë¸üSOFTICE¡C
2¡B¦bNT¤U¡A°t¨îSOFTICE¬O¥ÎSOFTICE Loader¡]±q§Aªº¶}©l¥\¯àªí¿ï¡^¡A¿ï¾ÜEdit/SoftICE¡A¤@¯ëªº¿ï¶µ¬Oªì©l¤Æ¡A³o¨½§A¥i°Ñ¦Ò¤â¥U¤F¸Ñ¤£¦Pªº¶}Ãö¿ï¶µªº¸Ô²Ó´yz¡C¦p¡G
CODE ON; FAULTS OFF; I3HERE OFF; WD 3; WF; X;
¨ä¥¦¨âÓ«nªº¿ï¶µ¬OSymbols & Exports¡C¦pªG§A¾Ö¦³¦Û¤v¨t²ÎªºSDK¡]³nÅé¶}µo¤u¨ã¥]¡^¡A§A¥i¥ÎSOFTICE¸Ë¸ü¨Ã½Õ¸Õ¥¦¡C¨º¨Ç¨S¦³SDKÀ³¸Ó¥Îexports¿ï¶µ±q%WINNT%/System32 ¥Ø¿ý¤U¼W¥[¤U±ªºDLL¤å¥ó¡C
advapi32.dll, comctl32.dll, comdlg32.dll, gdi32.dll, kernel32.dll, msvbvm(50/60).dll (¦pªG»Ýn), msvcrt.dll (¦pªG»Ýn), ole32.dll, oleaut32.dll, shell32.dll, user32.dll, version.dll.
¥|¡BTRW2000ªº¦w¸Ë»P°t¨î
㈠¡BTRW2000¦w¸Ë
TRW¦w¸Ë²³æ¦h¤F¡A¨SSOFTICE¨º¼Ë´_Âø¡A¦ý¥Ø«eTRW2000¤£¤ä«ùwindows NT¡C¥¦µo¥¬ª©¥»¬O¤@ÓZIPÀ£ÁY¥]¡A¤~200¦hK¡C¥un±N¨ä¸ÑÀ£ÁY¨ì¤@ӥؿý¤U¡AµM«á¹BTRW2000.EXE§Y¥i
¿E¬¡¤è¦¡¦PSOFTICE¤£¤@¼Ë¡G
1. Ctrl + M ¯SÅv¯Å0¯Åªº§Ö³tÁä¡A¯à°÷¥ß§Y¤¤Â_Win9x¡C ¬Û·í©ó Soft-ICE ªº§Ö³tÁä Ctrl+D.
2. Ctrl + N ¯SÅv¯Å3¯Åªº§Ö³tÁä¡C ¦bµ´¤j¦h¼Æ®ÉÔ¡A§Ų́䣻Ýn¦b0¯Å¤W¤¤Â_¡C Ctrl + N¥i¥H¤¤Â_Windowsªº¯SÅv¯Å3¯Åªº«e¥x½uµ{¡C ³oÀ³¸Ó¬O§Ú̳̱`¥Îªº¡C
¨ä¥¦«ü¥O¦PSOFTICEÝ®e¡A¤]´N»¡§A¦b¤W¤@¸`¾Ç±oªF¦è§¹¥þ¥i¥Î¦bTRW2000¤W¡C
¦ý¬OTRW2000¦³³\¦h§ó·sªº«ä·Q¡A¨ãÅé¬Ý¦Z±´X½Ò¤¶²Ð¤Î½d¨Ò¡C
¥t¥~¡ATRW2000¥i¤ä«ùplug-ins¡A¤]¥i¸Ë¸üdll¤å¥ó¡A¦b1.15ª©¥»¥H¤W¡A¦b¦w¸Ë¥Ø¿ý¤U¦³¤@DLL¥Ø¿ý¡A¦p§A¯S§O»Ýnªºdll´_¨î¨ì¦¹¥Ø¿ý¡A§Y¥i¸Ë¸ü¡A¦p¯}¸ÑVB®É¡A´N»Ýn±NVB dll´_¨î¦¹¥Ø¿ý¡A¨ãÅé°Ñ¦Ò«á±ªºVB¯}¸Ñ¡C
¨ä¥¦ªº½ÐŪ¨äReadme.
㈡¡BTRW2000ªº°t¨î
TRW2000ªº°t¨î¬O³q¹L¨ä¦w¸Ë¥Ø¿ý¤Uªº
TRW2000.ini ¨Ó¹ê²{ªº¡A§A¥i«ö¦Û¤vªº»Ýn°t¨î¥¦¡]¤@¯ë«ö¹w³]§Y¥i¡^¡C
; TRW2000 Initialize file
; Please modify it as your habit .
;rem PLUGS=C:\PLUGS\HELLO.SYS
;No, you don't put this line. Now we have changed plug-ins load-method.
;Please copy your SYS to <TRW2000 Directory>\SYS, TRW2000 will load it
;automatic.
; Now, we don't support keyword LINES=, please use command LINES instead.
INIT="lines 35;wr 3;wd 4;wc 16"
F1=^HELP ; Command length CAN'T be longer than 15 characters !
; This command length is 5 charcaters .
F3=^SRC
F4=^RS
F5=^X
F6=^EC
F7=^HERE
F8=^T
F9=^BPX
F10=^P
F12=^PRET
;HOTKEY=320D ;Ctrl+M
;R3HOTKEY=310E ;Ctrl+N
GRAPHICS=ON ;Use graphics mode driver
VESA=OFF
VGA=ON
INTELLIMOUSE=ON ;If your mouse is a intellmouse, set this to ON
WINMOUSE=ON ;If you found your mouse is not work properly, try it to ON. But we do NOT recommend this, because it maybe decrease stabilization.
;HST=256 ;History buffer size, default = 256k
SYMBUFFER=1024
CAPITAL=ON
WONDER=ON
TESTMODE=OFF
[[i] ¥»©«³Ì«á¥Ñ seep1234567890 ©ó 2007-9-21 01:53 ½s¿è [/i]] ¬Ýªº¥X¨Ó¤j¤j¬O°ª¤â
¼gªº¯uªº«Üºë²`
¤£¬O¤@¯ë¥b¦Q¤l¦A¼gªº ¶W¦hªº东¦è¦³¡A»Ýn时´N会·P¿E¥L内®eªº¤¥´I¤F ªF¦è¦n¦h°Ú...¼gÓ¥~±¾nÀ´ªºªF¦è¯u¤£¤Ö... ÁöµM¬Ý¤£¤Ó¸³¤£¹L ¨ü¯q¨}¦h·P£¡¤£¶i 这贴¤Ó¦Q¤F¡A§Ú¦¬ÂäF~备¥Î¡I
¯u¯«ªü!!
ì¨Ó»s§@¤@Ó¦nªº¥~±¾»Ýn¦p¦¹Ãe¤jªº¤uµ{¤~°µªº¥X¨Ó~¯u¨ØªA¨º¨Ç»s§@¥X¥«±¤W¨º¨Ç¼öªù¹CÀ¸¥~±¾ªº°ª¤â~ ¥ý¦¬Âð_¨Óµ¥©ú¤Ñ¦A¦n¦nªºÆ[¬Ý^^«D±`·PÁ±zµL¨p¤À¨É ¥ý¦¬Âð_¨Óµ¥©ú¤Ñ¦A¦n¦nªºÆ[¬Ý ¬Ý来°¸还¦³«Ü¦h东¦èn学 ÁÂÁÂc hing ¤À¨É ^_^ ¡¨3¡B¼ô½m´x´¤¸òÂÜ©M½Õ¸Õªº¤u¨ã¡§
实际¾Þ§@过µ{¤¤
ring0级别¥Îsoftice, 静态¦ÛµM¥Îida pro ,¥¦¦³¤@个´¡¥ó¡A¥i¥H§â汇编码译¦¨伪码¡A¦Ó¯A¤Î¤@¯ëªº¸ò踪¡A¥Îollydbg´N¥i¥H¤F¡A¥¦ªº¥\¯à¤]«Ü强¤j¡A×§ïpe¤å¥ó¤]«Ü¤è«K¡C°£¦¹¤§¥~¡A还n°t¦Xpeidµ¥¨ä¥L¤u¨ã¡C
--------
ºë¤O过³Ñªº¤H³Ì¦n学¤Udx©Mopengl两®Mapi,¤]¦³§U¤_²z¸Ñ´å戏实现逻辑¡C
ÊI¤W¨º¥»¡mÊI络´å戏¦w¥þ´¦±K¡n¡A¨½±´£¨ì¤@¨Ç§Þ术应¥Î¡A还¥i¥H¡C ¤j¤jªGµM¬O°ª¤â
«ØÄ³§A ¥h¥X®Ñ ©ú¥Õ©ú¥Õ, ¾Ç·|¤F! ³o¦ì¤jô¯uªº¦n¼F®`
´«¦¨¤@¯ë¤Hn¬Ý³£²Ö¤F
§A§â¥L¥´§¹...orz
¶:
[1]