ÄúÏÖÔÚµÄλÖãº0A > 0AÀúÊ· > > ÐÂÊéÍÆ¼ö32PE½á¹¹DOSÍ·ºÍDO

ÐÂÊéÍÆ¼ö32PE½á¹¹DOSÍ·ºÍDO

2025/1/13 À´Ô´£º±¾Õ¾Ô­´´ ä¯ÀÀ´ÎÊý£º´Î

ÕýÈçÎÒÃÇÔÚ³õʶPEÎļþÒ»½ÚÖп´µ½µÄ£¬PEÎļþÍ·Öаüº¬¼¸¸öÖØÒªµÄ½á¹¹£¬DOSÍ·¡¢DOS¿é£¨DOSStub£©ºÍNTÍ·¡£NTÍ·¾ÍÊÇPEÌØÕ÷Âë+ÎļþÍ·£¨COFFÎļþ±êÍ·£©+À©Õ¹Í·£¨¿ÉÑ¡±êÍ·£©£¬ºÏ³ÆÎªNTÍ·¡£ÕâÒ»½ÚÎÒÃǽ«Ïêϸ½²½âÕ⼸¸öÖØÒªµÄ½á¹¹¡£ÎÒÃǽ«DOSÍ·ºÍDOS¿éºÏ³ÆÎªMS-DOS´æ¸ù¡£COFF¶ÔÏóÎļþ£¨obj£©±êÍ·ÓÉCOFFÎļþ±êÍ·ºÍ¿ÉÑ¡±êÍ·×é³É¡£

±¾½Ú±ØÐëÕÆÎÕµÄ֪ʶµã£º

DOSÍ·

DOS¿é

NTÍ·

3.2.1DOSÍ·

DOSÍ·£¨DOSHeader£©ÊÇ¿ÉÖ´ÐÐÎļþÖеÄÒ»¸öÊý¾Ý½á¹¹£¬ËüÊÇÓÃÓÚÖ§³ÖÔçÆÚµÄDOS²Ù×÷ϵͳµÄ±ê×¼¸ñʽ¡£DOSͷλÓÚ¿ÉÖ´ÐÐÎļþµÄ¿ªÍ·£¬°üº¬ÁËһЩ¹ØÓÚÎļþµÄ»ù±¾ÐÅÏ¢ºÍ¿ÉÖ´ÐгÌÐòµÄÈë¿Úµã¡£

MS-DOS´æ¸ùÊÇÔÚMS-DOSÏÂÔËÐеÄÓÐЧӦÓóÌÐò¡£Ëü·ÅÖÃÔÚEXEÓ³ÏñµÄÇ°Ãæ¡£Á´½ÓÆ÷ÔÚ´Ë´¦·ÅÖÃĬÈÏ´æ¸ù£¬µ±Ó³ÏñÔÚMS-DOSÖÐÔËÐÐʱ£¬´Ë´æ¸ù»áÊä³öÏûÏ¢¡°´Ë³ÌÐò²»ÄÜÔÚDOSģʽÏÂÔËÐС±¡£Óû§¿ÉÒÔʹÓÃ/STUBÁ´½ÓÆ÷Ñ¡ÏîÖ¸¶¨²»Í¬µÄ´æ¸ù¡£

ÔÚλÖÃ0x3c£¬´æ¸ù¾ßÓÐPEÇ©Ãû£¨PEÌØÕ÷Âë¡°PE\0\0¡±£©ÎļþÆ«ÒÆÁ¿¡£´ËÐÅϢʹWindowsÄܹ»ÕýÈ·Ö´ÐÐÓ³ÏñÎļþ£¬¼´Ê¹´ËÎļþ¾ßÓÐMS-DOS´æ¸ùÒ²²»ÀýÍâ¡£Á´½ÓÆÚ¼ä£¬´ËÎļþÆ«ÒÆÁ¿·ÅÔÚλÖÃ0x3c¡£

ʵÑé¾Å£ºÔÚwinnt.hÍ·ÎļþÖв鿴DOSÍ·¡¢ÎļþÍ·ºÍÀ©Õ¹Í·µÄ½á¹¹¶¨Òå

ÔÚVSÖÐÊäÈë#include"winnt.h"£¬µã»÷ÓÒ¼ü£¬´ò¿ªÎĵµ¡£È»ºóËÑË÷IMAGE_DOS_HEADER»òÕßÔÚ³ÌÐòÀïÃæÊäÈëIMAGE_DOS_HEADER°´F12תµ½¶¨Òå¡£

¡öIMAGE_DOS_HEADER½á¹¹

typedefstruct_IMAGE_DOS_HEADER{

WORDe_magic;//DOSħÊý

WORDe_cblp;//ÎļþµÄ×îºóÒ»Ò³µÄ×Ö½ÚÊý

WORDe_cp;//ÎļþÖеÄÒ³Êý

WORDe_crlc;//ÖØ¶¨Î»ÏîµÄÊýÁ¿

WORDe_cparhdr;//±êÍ·µÄ¶ÎÊý

WORDe_minalloc;//³ÌÐòËùÐèµÄ×îС¸½¼Ó¶ÎÊý

WORDe_maxalloc;//³ÌÐòËùÐèµÄ×î´ó¸½¼Ó¶ÎÊý

WORDe_ss;//³õʼ¶ÑÕ»¶ÎµÄÏà¶ÔÆ«ÒÆÁ¿

WORDe_sp;//³õʼ¶ÑÕ»Ö¸Õë

WORDe_csum;//ÎļþУÑéºÍ

WORDe_ip;//³õʼָÁîÖ¸Õë

WORDe_cs;//³õʼ´úÂë¶ÎµÄÏà¶ÔÆ«ÒÆÁ¿

WORDe_lfarlc;//ÖØ¶¨Î»±íµÄÎļþÆ«ÒÆÁ¿

WORDe_ovno;//¸²¸ÇºÅ

WORDe_res[4];//±£Áô×Ö¶Î

WORDe_oemid;//OEM±êʶ·û£¨ÓÃÓÚe_oeminfo£©

WORDe_oeminfo;//OEMÐÅÏ¢£»ÓÉe_oemidÖ¸¶¨

WORDe_res2[10];//±£Áô×Ö¶Î

LONGe_lfanew;//еÄPEÍ·µÄÎļþÆ«ÒÆÁ¿

}IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER;

¡öÏÂÃæÊÇDOSÍ·ÖÐÒ»Ð©ÖØÒª×ֶεÄ˵Ã÷£º

¡ñe_magic£ºÕâÊÇÒ»¸ö16λµÄ×ֶΣ¬ÓÃÓÚ±íʾ¿ÉÖ´ÐÐÎļþµÄ±êʶ·û¡£¶ÔÓÚ±ê×¼µÄ¿ÉÖ´ÐÐÎļþ£¬¸Ã×Ö¶ÎӦΪ5A4DH£¬¼´"MZ"µÄASCIIÂ룬ȡ×Ô΢Èí¿ª·¢ÈËÔ±Ãû×Ö¡£

¡ñe_lfanew£ºÕâÊÇÒ»¸ö32λµÄ×ֶΣ¬Ëü±íʾPEÍ·µÄÆ«ÒÆÁ¿¡£PEÍ·£¨PortableExecutableHeader£©ÊÇÔÚDOSÍ·Ö®ºóµÄÒ»¸öÊý¾Ý½á¹¹£¬°üº¬Á˸üÏêϸµÄ¿ÉÖ´ÐÐÎļþÐÅÏ¢¡£

¡ñe_cblpºÍe_cp£ºÕâÁ½¸ö×ֶηֱð±íʾÎļþµÄ×îºóÒ»¸öÒ³£¨×Ö½Ú£©µÄ×Ö½ÚÊýºÍÎļþÖеÄÒ³Êý¡£

¡ñe_crlcºÍe_cparhdr£ºÕâÁ½¸ö×ֶηֱð±íÊ¾ÖØ¶¨Î»±íÏîÊýÁ¿ºÍ±ê׼ͷµÄ×Ö½ÚÊý¡£

¡ñe_minallocºÍe_maxalloc£ºÕâÁ½¸ö×ֶηֱð±íʾ³ÌÐòËùÐèµÄ×îСºÍ×î´óÄÚ´æÁ¿¡£

¡ñe_ssºÍe_sp£ºÕâÁ½¸ö×ֶηֱð±íʾ³ÌÐòµÄ³õʼ¶ÑÕ»¶ÎºÍ¶ÑÕ»Ö¸Õë¡£

¡ñe_csum£ºÕâÊÇÒ»¸ö16λµÄ×ֶΣ¬ÓÃÓÚ´æ´¢ÎļþµÄУÑéºÍ¡£ÔÚÔçÆÚµÄDOS²Ù×÷ϵͳÖУ¬¿ÉÒÔʹÓøÃ×ֶνøÐмòµ¥µÄÎļþÍêÕûÐÔУÑé¡£ÏÖÔÚÒѾ­Ã»Ê²Ã´ÓÃÁË£¬¿ÉÒÔËæ±ã¸Ä¡£

¡ñe_ipºÍe_cs£ºÕâÁ½¸ö×ֶηֱð±íʾ³õʼָÁîÖ¸ÕëºÍ´úÂë¶Î¡£

¡ñe_lfarlc£ºÕâÊÇÒ»¸ö16λµÄ×ֶΣ¬±íÊ¾ÖØ¶¨Î»±íµÄÆ«ÒÆÁ¿¡£

¡ñe_ovno£ºÕâÊÇÒ»¸ö16λµÄ×ֶΣ¬ÓÃÓڴ洢һЩ¸½¼ÓÐÅÏ¢¡£

ΪÁË·½±ã¶ÁÕßÔĶÁ£¬ÎÒÃǽ«winnt.hÍ·ÎļþÖÐDOSÍ·½á¹¹¶¨ÒåµÄÓ¢ÎÄ×¢Ê͸ÄΪÖÐÎÄ×¢ÊÍ¡£

DOSÍ·ÊÇ¿ÉÖ´ÐÐÎļþ¸ñʽÖеÄÒ»¸öÖØÒª×é³É²¿·Ö£¬ËüÔÊÐíDOS²Ù×÷ϵͳʶ±ðºÍ¼ÓÔØ¿ÉÖ´ÐÐÎļþ¡£È»¶ø£¬ÏÖ´úµÄWindows²Ù×÷ϵͳÒѾ­²»ÔÙÒÀÀµDOSÍ·À´Ö´ÐпÉÖ´ÐÐÎļþ£¬¶øÊÇʹÓÃPEÍ·ºÍÆäËûÏà¹Ø½á¹¹À´½âÎöºÍ¼ÓÔØ¿ÉÖ´ÐÐÎļþ¡£ËäÈ»Èç´Ë£¬WindowsPEÎļþÖл¹ÊDZ£ÁôÁËDOSÍ·½á¹¹¡£

¡ñDOSÍ·½á¹¹IMAGE_DOS_HEADERÖÐ×îÖØÒªµÄ³ÉÔ±ÓÐÁ½¸ö£º

1£®µÚÒ»¸öÊÇe_magicµ±ÎÒÃÇÅжÏÒ»¸öÎļþÊÇ·ñΪPEÎļþʱ£¬ÎÒÃÇÐèÒªÅжÏDOSÍ·½á¹¹µÄµÚÒ»¸ö×Ö¶Îe_magicΪ5A4DH£¨¡°MZ¡±£©£¬Í¬Ê±NTÍ·µÄµÚÒ»¸ö×Ö¶ÎSignatureΪ0x£¨¡°PE/0/0¡±£©¡£

2£®µÚ¶þ¸ö×Ö¶ÎÊÇe_lfanew£¬Õâ¸ö×Ö¶ÎÊÇÒ»¸öÎļþÄ򵀮«ÒƵØÖ·£¬Ö¸ÏòPEÍ·¡£ÎÒÃÇ¿ÉÒÔ¸ù¾ÝDOSÍ·ÖеÄÕâ¸ö×ֶβéÕÒPEÍ·¡£

ÎÒÃÇÒÔnotepad32.exeΪÀý£¬Ê¹ÓÃWinHex´ò¿ªnotepad32.exe£¬ÈçÏÂËùʾ£º

D5AFFFFMZ..........ÿÿ..

0B80?......

.......

0020................

0030E............?..

00E1FBA0E00BCD21BCCD..?.???L?Th

00506973FDE6E6Fisprogramcanno

00607420EEFtberuninDOS

00706D6FE0D0D0A2mode....$.......

0080ECBA1A8EF2A8EF2A8EF2ì…[¡¨?ò¨?ò¨??

00906BEB3AF2A9EF26BEB55F2A9EF2k?ò©?òkëUò©??

00A06BEB68F2BBEF2A8EFEF2këhò»?ò¨?òc??

00B06BEB6BF2A9EF26BEB6AF2BFEF2këkò©?òkëjò¿??

00C06BEB6FF2A9EFA8EF2këoò©?òRich¨ä5?

00D0................

00E050454C48PE..L...‡R.H....

00F0EFB70A0078....?.......x..

DOSÍ·½á¹¹IMAGE_DOS_HEADER×îºóÒ»¸ö×Ö¶Îe_lfanewµÄֵΪ0xE0£¬ÔÙ¿´Ò»ÏÂÎļþÆ«ÒÆµØÖ·00E0´¦µÄÖµ¸ÕºÃÊÇPEÌØÕ÷Âë0x£¨¡°PE/0/0¡±£©¡£

¡ñÏÂÃæÊǸø³öÒ»¶ÎÅжÏÊÇ·ñΪPEÎļþµÄ»ã±à´úÂë

;¼ì²âPEÎļþÊÇ·ñÓÐЧ

movesi,

lpMemory

assumeesi:ptrIMAGE_DOS_HEADER;esiÖ¸ÏòDOSÍ·

;ÅжÏÊÇ·ñÓÐMZ×ÖÑù

.if[esi].e_magic!=IMAGE_DOS_SIGNATURE;ÅжÏDOSÍ·ÌØÕ÷

jmp_ErrFormat

.endif

;µ÷ÕûESIÖ¸ÕëÖ¸ÏòPEÎļþÍ·

addesi,[esi].e_lfanew

assumeesi:ptrIMAGE_NT_HEADERS

;ÅжÏÊÇ·ñÓÐPE×ÖÑù

.if[esi].Signature!=IMAGE_NT_SIGNATURE

jmp_ErrFormat

.endif

Á·Ï°

Çë¶ÁÕßʹÓÃWinHex´ò¿ªÈÎÒâÒ»¸öPEÎļþ£¬È»ºó¶ÔÕÕIMAGE_DOS_HEADER½á¹¹£¬Ð´³öÿ¸ö½á¹¹³ÉÔ±µÄÊýÖµ¡£

3.2.2DOSStub

ÎÒÃǽ«PEÍ·ºÍDOSÍ·Ö®¼äµÄ²¿·Ö³ÆÎªDOS¿é£¨DOSStub£©¡£DOSStub£¨DOSռλ³ÌÐò£©ÊÇ¿ÉÖ´ÐÐÎļþÖеÄÒ»¶Î´úÂ룬λÓÚPEÎļþµÄDOSÍ·ºÍPEÍ·Ö®¼ä¡£ËüÊÇΪÁ˱£³Ö¶ÔÔçÆÚDOS²Ù×÷ϵͳµÄ¼æÈÝÐÔ¶ø´æÔڵġ£

DOSStubÊÇÒ»¸öСÐ͵ijÌÐò»òÒ»¶ÎÖ¸Á£¬Í¨³£ÊÇÓûã±àÓïÑÔ±àдµÄ¡£ËüµÄÖ÷Òª×÷ÓÃÊÇÔÚÔËÐпÉÖ´ÐÐÎļþʱ£¬Èç¹û²Ù×÷ϵͳÎÞ·¨Ê¶±ðPEÎļþ¸ñʽ£¬»òÕßÔÚ·ÇWindows»·¾³ÏÂÖ´ÐУ¬»á½«Ö´ÐÐÈ¨×ªÒÆµ½DOSStubÉÏ£¬ÒÔÌṩһЩÓѺõÄÌáʾÐÅÏ¢»òÖ´ÐÐÏà¹ØµÄ²Ù×÷¡£

DOSStubͨ³£°üº¬Ò»Ð©Îı¾¡¢Í¼ÐλòÆäËûÐÎʽµÄÐÅÏ¢£¬ÀýÈç»¶Ó­ÐÅÏ¢¡¢°æ±¾ºÅ¡¢×÷ÕßÐÅÏ¢£¬ÉõÖÁ¿ÉÒÔÊÇÒ»¶ÎСµÄ¶¯»­Ð§¹û¡£ËüµÄ´óСͨ³£Êǹ̶¨µÄ£¬Îª64×Ö½Ú£¨16λDOSʱ´ú£©»ò×Ö½Ú£¨32λDOSʱ´ú£©¡£¶øÊÂʵÊÇDOS¿éµÄ´óС²¢²»Êǹ̶¨µÄ£¬ÎÒÃÇ¿ÉÒÔÐÞ¸ÄDOSÍ·×îºóÒ»¸ö×Ö¶Îe_lfanewµÄÖµ£¬À©Õ¹DOS¿é¡£DOS¿é±¾Éí¼°À©Õ¹²¿·ÖµÄ¿Õ¼äÊÇ¿ÉÒÔ±»ÎÒÃÇÓÃÀ´´æ´¢ÆäËûÐÅÏ¢µÄ£¨ËäÈ»ÎÒÃǺÜÉÙÕâÑùʹÓã©¡£

µ±ÔÚDOS»·¾³ÏÂÖ´ÐпÉÖ´ÐÐÎļþʱ£¬DOS²Ù×÷ϵͳ»áÊ×ÏȼÓÔØDOSStub²¢Ö´ÐÐËü¡£Èç¹û¿ÉÖ´ÐÐÎļþÊÇÒ»¸öÓÐЧµÄPEÎļþ£¬DOSStub»áÔÚÖ´ÐÐÍê×Ô¼ºµÄÈÎÎñºó£¬Í¨¹ýÌø×ª»òµ÷ÓÃÖ¸Á¿ØÖÆÈ¨×ªÒƵ½PEÍ·£¬½ø¶øÓɲÙ×÷ϵͳ¼ÌÐø½âÎöºÍÖ´ÐÐPEÎļþ¡£

ÔÚÏÖ´úWindows²Ù×÷ϵͳÖУ¬DOSStubµÄ×÷ÓÃÏà¶Ô½ÏС£¬ÒòΪ²Ù×÷ϵͳÒѾ­Äܹ»Õýȷʶ±ðºÍ½âÎöPEÎļþ¸ñʽ¡£È»¶ø£¬ÎªÁ˱£³Ö¶ÔÔçÆÚDOSÓ¦ÓóÌÐòµÄ¼æÈÝÐÔ£¬PEÎļþÈÔÈ»±£ÁôÁËDOSStub¡£

×¢Òâ

1£®DOSStub²¢·ÇËùÓеÄPEÎļþ¶¼±ØÐë°üº¬¡£ÔÚÒ»Ð©ÌØÊâµÄÇé¿öÏ£¬¿ª·¢ÈËÔ±¿ÉÒÔÑ¡Ôñ²»°üº¬DOSStub£¬´Ó¶øÊ¹µÃPEÎļþ¸ü¼Ó½ô´Õ¡£

2£®µ±PE¼ÓÔØÆ÷¼ÓÔØPEÎļþºó£¬PEÎļþÍ·²¿ËùÔÚµÄÒ³Ãæ±»ÉèÖÃΪֻ¶ÁÊôÐÔ¡£Òò´ËÀ©Õ¹²¿·ÖÖ»ÄÜ´æ·ÅÖ»¶ÁÊý¾Ý¡£Í¨³£ÎÒÃǽ¨ÒéDOS¿éÀ©Õ¹ºóµÄ´óС²»ÄÜʹÕû¸öPEÎļþÍ·²¿µÄ´óС³¬¹ýH£¬·ñÔòÐèÒªÐÞ¸ÄÏÂÃæ¸÷¸ö½ÚÇøÄÚµÄËùÓÐÎļþÆ«ÒÆµØÖ·£¬Ôì³É²»±ØÒªµÄÂé·³¡£

ʵÑéÊ®£ºÔÚDOSϵͳÖÐÔËÐÐ32λPEÎļþ

¡ñµÚÒ»²½£º½«µÚÒ»Õ±àдµÄHelloWorld.exe32λPEÎļþÍÏÈëWinHexÖУ¬¹Û²ìDOS¿éµÄÊý¾ÝÈçÏÂËùʾ£º

00E1FBA0E00BCD21BCCD..?.???L?Th

00506973FDE6E6Fisprogramcanno

00607420EEFtberuninDOS

00706D6FE0D0D0A2mode....$.......

00805D5C6DCDDD]\m?=.?=.?=.?

00909722E3DE51DD?.?=.’å..?=.?

00ADRich.=.?.......

¡ñµÚ¶þ²½£ºÐÞ¸ÄHelloWorld.exe³ÌÐòÃûΪ.exe¡£

32λPEÎļþÐèÒªÐÞ¸ÄÎļþÃû²ÅÄÜÔÚDOSBoxÐéÄâ»úÉÏÔËÐеÄÔ­ÒòÊÇÒòΪDOSBoxÊÇÒ»¸öÄ£ÄâDOS»·¾³µÄÐéÄâ»ú£¬ËüÖ÷ÒªÓÃÓÚÔËÐÐÔçÆÚµÄDOSÓ¦ÓóÌÐòºÍÓÎÏ·¡£DOSBoxÄ£ÄâÁËDOS²Ù×÷ϵͳµÄÐÐΪºÍ»·¾³£¬µ«Ëüʵ¼ÊÉÏÊÇÔÚÏÖ´ú²Ù×÷ϵͳÉÏÔËÐеġ£

DOSBoxÊÇΪÁ˼æÈݾɵÄDOSÓ¦ÓóÌÐò¶øÉè¼ÆµÄ£¬Ëü¶Ô32λPEÎļþµÄÖ§³ÖÏà¶ÔÓÐÏÞ¡£32λPEÎļþͨ³£ÊÇΪWindows²Ù×÷ϵͳÉè¼ÆµÄ£¬²¢Ê¹ÓÃÁËWindowsÌØ¶¨µÄAPIºÍ¹¦ÄÜ¡£¶øDOSBoxÖ÷ҪģÄâµÄÊÇÔçÆÚµÄDOS»·¾³£¬Òò´ËÎÞ·¨Ö±½ÓÔËÐÐ32λµÄWindowsPEÎļþ¡£

ΪÁËÔÚDOSBoxÖÐÔËÐÐ32λPEÎļþ£¬¿ÉÒÔ³¢ÊÔ½«ÎļþÃûÐÞ¸ÄΪ¾ßÓÐDOS¼æÈÝÐÔµÄ8.3¸ñʽ£¨×î¶à8¸ö×Ö·ûµÄÎļþÃûºÍ3¸ö×Ö·ûµÄÀ©Õ¹Ãû£©¡£

DOSBoxÔÚ¼ÓÔØ¿ÉÖ´ÐÐÎļþʱ£¬»á¸ù¾ÝÎļþÃûµÄÀ©Õ¹ÃûÀ´ÅжÏÎļþÀàÐÍ£¬²¢Ê¹ÓÃÏàÓ¦µÄ´¦Àí·½Ê½¡£Í¨¹ý½«32λPEÎļþµÄÎļþÃûÐÞ¸ÄΪDOS¼æÈݵĸñʽ£¬DOSBox»á½«Æäʶ±ðΪDOSÓ¦ÓóÌÐò£¬¾¡¹ÜËüʵ¼ÊÉÏÊÇÒ»¸ö32λµÄWindowsPEÎļþ¡£

×¢Òâ

¼´Ê¹½«ÎļþÃûÐÞ¸ÄΪDOS¼æÈݸñʽ£¬ÈÔÈ»ÎÞ·¨±£Ö¤ËùÓеÄ32λPEÎļþ¶¼ÄÜÔÚDOSBoxÖÐÕý³£ÔËÐС£ÕâÊÇÒòΪDOSBox²¢²»ÊÇΪÔËÐÐ32λWindowsÓ¦ÓóÌÐò¶øÉè¼ÆµÄ£¬ËüµÄ¹¦ÄܺͼæÈÝÐÔÓÐÏÞ¡£ÔÚijЩÇé¿öÏ£¬¿ÉÄÜÐèҪʹÓÃÆäËû¹¤¾ß»òÐéÄâ»úÀ´ÔËÐÐ32λPEÎļþ¡£

¡ñµÚÈý²½£ºÑéÖ¤DOS¿éÄÚµÄÊý¾ÝÊÇʲô£¿

°²×°DOSBoxÐéÄâ»ú£¬´ò¿ªÐéÄâ»úºó£¬ÊäÈëÃüÁ

mountcd:\code\winpe\ch03

c:

½«ÐéÄâ»úCÅ̸ùĿ¼¶ÔÓ¦ÕæÊµ»úHelloWorld.exe³ÌÐòËùÔÚµÄĿ¼¡£

µÚËIJ½£ºÃüÁîÐÐÊäÈë.exeºó£¬»Ø³µÔËÐС£Èçͼ3-3Ëùʾ£¬´°¿ÚÏÔʾһÐÐÌáʾÐÅÏ¢£º¡°ThisprogramcannotberuninDOSmode.¡±¡£ÕâÕýÊÇWinHex¿´µ½µÄ×Ö·û´®¡£

µÚÎå²½£ºÊ¹ÓÃdebug.exeµ÷ÊÔÆ÷¼ÓÔØ.exe£¬È»ºóÊäÈëUÃüÃû£¬²é¿´·´»ã±à´úÂ룬Èçͼ3-4Ëùʾ¡£Ñ§Ï°¹ý16λ»ã±àµÄ¶ÁÕßÒ»¶¨·Ç³£ÊìϤ¡£ÕâÊÇÒ»¶Î»ã±à´úÂëÖп´µ½µÄÄÚÈÝÕýÊÇÎÒÃÇÔÚWinHexÖп´µ½µÄDOS¿éÖеÄÄÚÈÝ¡£Ç°Ãæ14¸ö×Ö½ÚΪһ¶Î»ã±à´úÂ룬µ÷ÓÃint21hµÄ9ºÅ¹¦ÄÜ£¨DXΪÈë¿Ú²ÎÊý£¬AHΪ¹¦Äܺţ©£¬Êä³öÆ«ÒÆµØÖ·0EH´¦µÄ¡¯$¡¯½áβµÄ×Ö·û´®£¬ÕýÊÇÎÒÃÇÔËÐÐ.exe³ÌÐòÔÚ´°¿ÚÏÔʾµÄÌáʾÐÅÏ¢¡£×îºóµ÷ÓÃint21hµÄ4CHºÅ¹¦ÄÜ£¬Èë¿Ú²ÎÊýΪ0£¬½áÊø³ÌÐò¡£

ͼ3-3ÔÚDOSϵͳÉÏÔËÐÐ32λPEÎļþ

ͼ3-4ʹÓÃdebugµ÷ÊÔÆ÷²é¿´·´»ã±à´úÂë

ʵÑéʮһ£ºÊ¹ÓÃIDA·ÖÎö32λPEÎļþµÄDOS¿é

ÎÒÃÇ»¹¿ÉÒÔʹÓÃIDA·ÖÎöHelloWorld.exe³ÌÐòµÄDOS¿é¡£

µÚÒ»²½£º½«HelloWorld.exeÍÏÈëWinHex£¬½«ÎļþÆ«ÒÆµØÖ·0x3C´¦£¨DOSÍ·Ö¸ÏòPEÍ·µÄe_lfanew×Ö¶ÎÐÞ¸ÄΪ0£©£¬ÈçÏÂËùʾ£º

D5AFFFFMZ..........ÿÿ..

0B80?......

.......

0020................

0030................

µÚ¶þ²½£º½«Ð޸ĺóµÄHelloWorld.exe³ÌÐòÍÏÈëIDA£¬Ö÷´°¿ÚÏÔʾµÄ·´»ã±à´úÂëÈçÏÂËùʾ£º

seg:;FileName:D:\code\winpe\HelloWorld.exe

seg:;Format:MS-DOSexecutable(EXE)

seg:;BaseAddress:1hRange:1h-hLoadedlength:h

seg:;EntryPoint:1:0

seg:

seg:.p

seg:.mmx

seg:.modellarge

seg:

seg:;===========================================================

seg:

seg:;Segmenttype:Purecode

seg:segsegmentbytepublicCODEuse16

seg:assumecs:seg

seg:assumees:nothing,ss:seg,ds:nothing,fs:nothing,gs:nothing

seg:

seg:;===============SUBROUTINE=======================================

seg:

seg:;Attributes:noreturn

seg:

seg:publicstart

seg:startprocnear

seg:pushcs

seg:1popds

seg:2assumeds:seg

seg:2movdx,0Eh

seg:5movah,9

seg:7int21h;DOS-PRINTSTRING

seg:7;DS:DX-stringterminatedby"$"

seg:9movax,4C01h

seg:Cint21h;DOS-2+-QUITWITHEXITCODE(EXIT)

seg:Cstartendp;AL=exitcode

seg:C

0B80?......

.......

0020................

00306802............h...

¶ÁÕß¿ÉÄÜ»áÓÐÒÉÎÊ£¬ÎªºÎÒª¸ÄΪ0x0´óÐ¡ÄØ£¿ÔÚǰÎÄÖÐÓÐÌáµ½£¬ÎÒÃÇ¿ÉÒÔÀ©Õ¹DOS¿éµÄ´óС£¬µ«ÊÇÀ©Õ¹ºóPEÎļþÍ·²¿×îºÃ²»Òª³¬¹ý¸ö×Ö½Ú£¬·ñÔòÎÒÃǽ«¸Ä±äPEÎļþÍ·²¿ºóÃæµÄ¼¸¸ö½ÚÇøÔÚPEÎļþÄ򵀮«ÒÆ£¬Èç´ËÒ»À´¾ÍÐèÒªÐÞ¸ÄËùÓÐÓë´ËÏà¹ØµÄÆ«ÒÆ£¬´øÀ´ºÜ¶àÂé·³¡£

×¢Òâ¹Û²ì£¬½Ú±íºÍµÚÒ»¸ö.text½ÚÇøÖ®¼äµÄ¿Õ°×ÇøÓòÈ«²¿Îª0¡£Õⲿ·Ö¿Õ¼äÔÚÎļþÆ«ÒÆ0H~0HÖ®¼ä£¬.text½ÚÇøµÄÆðʼµØÖ·Îª0H¡£ÎÒÃÇÖ»Òª±£Ö¤.text½ÚÇøµÄÆðʼµØÖ·²»±ä£¬Òò´ËËùÓнÚÇøµÄµØÖ·¶¼²»»á·¢Éú±ä»¯¡£ÄÇôDOS¿é¿ÉÒÔÀ©Õ¹µÄ×Ö½ÚÊý¾ÍÊÇH-H=1A0H¸ö×Ö½Ú£¨Ê®½øÖÆÊý¸ö×Ö½Ú£©¡£

¿ÉÒÔÀ©Õ¹µÄ×î´ó×Ö½ÚÊý¼ÆËã³öÀ´Ö®ºó£¬ÏÂÒ»²½¾ÍÊÇÔÚDOS¿éÄÚÕ³ÌùÁã×Ö½ÚÁË¡£ÎªÁ˲¿ÆÆ»µÔ­DOS¿éµÄÄÚÈÝ£¬ÎÒÃÇÑ¡ÔñÔÚPEÍ·ÌØÕ÷ÂëµÄǰһ¸ö×ֽڵĵØÖ·´¦Õ³Ìù¸öÁã×Ö½Ú£¨ÒòΪDOS¿éûÓÐʲôÓÃ;£¬ÎÒÃÇÒ²¿ÉÒÔÑ¡ÔÚDOS¿éµÄÈÎÒâλÖã©¡£

¾ßÌå²Ù×÷·½·¨£º

Êó±êÑ¡ÖÐ0xC7µØÖ·´¦£¬µã»÷Êó±êÓÒ¼ü£¬µã»÷¡°±à¼­¡±¡°Õ³ÌùÁã×Ö½Ú¡±£¬µ¯³öÒ»¸ö¶Ô»°¿ò´°¿Ú£¬Èçͼ3-5Ëùʾ¡£Ìîд×Ö½ÚÊý£¬µã»÷¡°OK¡±°´Å¥¡£

ͼ3-5Õ³ÌùÁã×Ö½Ú

´Ëʱ£¬ÎÒÃǹ۲ìÒ»ÏÂPEͷλÓÚÎļþ0xÆ«ÒÆµØÖ·´¦¡£ÎÒÃǽ«DOSÍ·µÄ×îºóÒ»¸ö×Ö¶Îe_lfanew£¨Ö¸ÏòPEÍ·µÄÎļþÆ«ÒÆµØÖ·£©0x0C8ÐÞ¸ÄΪ0x0£¬É¾³ý½Ú±íÓë.text½ÚÇø¼ä¶àÓàµÄÁã×Ö½Ú£¬±£³Ö.text½ÚÇøµØÖ·²»±ä¡£È»ºóµã»÷WinHex

¹¤¾ßÀ¸¡°±£´æ¡±°´Å¥¡£

×îºó²âÊÔÒ»ÏÂHelloWorld.exeÊÇ·ñ¿ÉÒÔÕý³£ÔËÐС£

Á·Ï°

Çë¶ÁÕß°´ÕÕÉÏÊöʵÑéÊ®¡¢Ê®Ò»¡¢Ê®¶þµÄ·½·¨·Ö±ð²âÊÔnotepad32.exeºÍnotepad64.exe»òÕ߯äËûÈÎÒâPEÎļþ¡£

½áÂÛ

1£®²»ÂÛ32λ»¹ÊÇ64λPEÎļþ¶¼¿ÉÒÔÀ©Õ¹DOS¿éµÄ´óС£¬·½·¨ÊÇÐÞ¸ÄDOSÍ·½á¹¹µÄ×îºóÒ»¸ö×Ö¶Îe_lfanewµÄÖµ£¬Ö¸ÏòÒ»¸öеÄPEÍ·µÄÎļþÆ«ÒÆµØÖ·¡£

2£®ÎªÁ˲»¸Ä±äPEÎļþÍ·²¿ºóÃæ½ÚÇøµÄÎļþÆ«ÒÆµØÖ·£¬À©Õ¹ºóµÄPEÎļþÍ·²¿µÄ´óС²»³¬¹ýH£¨£©¸ö×Ö½Ú¡£

×ªÔØÇë×¢Ã÷£º
http://www.wqopd.com/ynyys/13758.html
  • ÉÏһƪÎÄÕ£º

  • ÏÂһƪÎÄÕ£º ûÓÐÁË
  • ÍøÕ¾Ê×Ò³ °æÈ¨ÐÅÏ¢ ·¢²¼ÓÅÊÆ ºÏ×÷»ï°é Òþ˽±£»¤ ·þÎñÌõ¿î ÍøÕ¾µØÍ¼ ÍøÕ¾¼ò½é
    Ò½ÔºµØÖ·£º ½¡¿µÈÈÏߣº
    ÎÂܰÌáʾ£º±¾Õ¾ÐÅÏ¢²»ÄÜ×÷ΪÕï¶ÏºÍÒ½ÁÆÒÀ¾Ý
    °æÈ¨ËùÓÐ 2014-2024
    ½ñÌìÊÇ£º