ÕýÔÚѧPE½á¹¹...¸Ðл¸öλ´ó¸çµÄÎÄÕºÍ×ÊÁÏ...ÕâÀïÏÈ˵Éùлл

Ò»°ã¸ß¼¶±àÒëÆ÷¶¼ÊDZàÒëºÃµÄPEÍ·²¿,ÀýÈçMASM,TASMµÈ
Ò»Ö±¶¼ËµNASM,FASMÊǵͼ¶±àÒëÆ÷.¿ÉÒÔ×Ô¶¨Òå½á¹¹
µ«ÊÇ¿àÓÚÎÞÈË·¢²¼Ïà¹ØÎÄÕÂ˵Ã÷..ÎÒÕâÀï¾Í¼òµ¥µÄÓÃNASMдһÏÂ
ÓÉÓÚ¸ÕѧPE½á¹¹Ðí¶à¶«Î÷¶¼²»Ì«¶®Ï£Íû¸öλ´óÏÀÖ¸µã
ÈçºÎ´òÔìÒ»¸öÃÔÄãµÄPE½á¹¹..ÎÒÔÝÖ»Ö»ÄÜ×÷µ½617×Ö½Ú
ÏÂÃæËæ×ÅѧϰµÄÉîÈë...»¹ÓиüÃÔÄãµÄPE³öÏÖ...

´úÂë¿ÉÒÔÖ±½Ó±àÒë..
±àÒë²ÎÊý:nasmw -fbin MsgBoxA.asm -o MsgBoxA.exe

ÇëÏÂÔØ×îеÄNASM for Win32±àÒëÆ÷
µ±Ç°×îа汾:NASM 0.98.39

´úÂë:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ;Small PE Header Demo For NASM ;Email:Anskya@Gmail.com ; ;´úÂë˵Ã÷:NASM ±àдÃÔÄãPE´úÂë.(C) 2006.3.20 ;1.×Ô¹¹ÔìPEÍ·²¿ ;2.×Ô¹¹Ôìµ¼Èë±í½á¹¹ ; ;Thank:Vecna[29A],Nguga aka PedroGC Made NAGOA+.INC ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [BITS 32] %define     CODE_BASE    1000h        ;´úÂë»ùÖ· %define    RVADIFF      1000h-200h      ;¼ÆËãÄÚ´æÊý¾ÝÓëÓ²ÅÌÊý¾ÝÏà¶Ô±ãÒË %define    imagebase    00400000h      ;´úÂë»ùÖ· %define     reloc    RVADIFF+imagebase  ;È«¾ÖÆ«ÒÆ--Ò»¸öºÜÖØÒªµÄ²ÎÊý ;DOS STUBÍ·²¿ MZ_Header: .magic                  dw "MZ"    ;01 02----DOS STUB±êʶ[¹Ø¼üÊý¾Ý] .cblp                   dw 435Bh  ;03 04--[·Ç¹Ø¼üÊý¾Ý] .cp                     dw 415Dh  ;05 06--[·Ç¹Ø¼üÊý¾Ý] .crlc                   dw 736Eh  ;07 08--ÕâÊ®¸ö×Ö½ÚÎÒÃÇ¿ÉÒÔдһµã×Ô¼ºµÄ¸öÈËÐÅÏ¢[·Ç¹Ø¼üÊý¾Ý] .cparhdr                dw 796Bh  ;09 10--[·Ç¹Ø¼üÊý¾Ý] .minalloc               dw 2161h  ;11 12--[·Ç¹Ø¼üÊý¾Ý] PE_Header: .Signature              dd "PE"    ;13 14 | 15 16----PE Í·²¿Æðʼ[¹Ø¼üÊý¾Ý] .Machine                dw 14Ch    ;17 18----¸ÃÎļþÔËÐÐËùÒªÇóµÄCPU:IMAGE_FILE_MACHINE_I386[¹Ø¼üÊý¾Ý] .NumberOfSections       dw 1    ;19 20----Îļþ½ÚÊýÁ¿[¹Ø¼üÊý¾Ý] .TimeDateStamp          dd 0h    ;21  22 | 23 24----Îļþ´´½¨ÈÕÆÚºÍʱ¼ä[·Ç¹Ø¼üÊý¾Ý] .PointerToSymbolTable   dd 0h    ;25 26 | 27 28----µ÷ÊÔÐÅÏ¢-[·Ç¹Ø¼üÊý¾Ý] .NumberOfSymbols        dd 0h    ;29 30 | 31 32----µ÷ÊÔÐÅÏ¢-[·Ç¹Ø¼üÊý¾Ý] .SizeOfOptionalHeader   dw 0E0h    ;33 34----OptionalHeader ½á¹¹´óС[¹Ø¼üÊý¾Ý] .Characteristics        dw 103h    ;35 36----ÎļþÐÅÏ¢µÄ±ê¼Ç:±ÈÈçÎļþÊÇexe»¹ÊÇdll[¹Ø¼üÊý¾Ý] Optional_Header: .Magic                  dw 10Bh    ;37 38----[¹Ø¼üÊý¾Ý] .MajorLinkerVersion     db 0h    ;39----[·Ç¹Ø¼üÊý¾Ý] .MinorLinkerVersion     db 0h    ;40----[·Ç¹Ø¼üÊý¾Ý] .SizeOfCode             dd 0h    ;41 42 | 43 44----[·Ç¹Ø¼üÊý¾Ý] .SizeOfInitializedData  dd 0h    ;45 46 | 47 48----[·Ç¹Ø¼üÊý¾Ý] .SizeOfUninitialzedData dd 0h    ;49 50 | 51 52----[·Ç¹Ø¼üÊý¾Ý] .AddressOfEntryPoint    dd code+RVADIFF  ;53 54 | 55 56----´úÂë»ùÖ·+RVA=´ËÖµ---ÐèÒª¼ÆËã[¹Ø¼üÊý¾Ý] .BaseOfCode             dd 0h  ;57 58 | 59 60----´úÂë»ùÖ·[·Ç¹Ø¼üÊý¾Ý] ;.BaseOfData            dd DATA_BASE  ;Êý¾Ý»ùÖ·-±»ÏÂÃæµÄ.lfanewÌæ»»ÁË~Õâ¸öÊýÖµ±¾ÉíҲûÓÐʲôÓà .lfanew                 dd 0Ch    ;61 62 | 63 64----±êʶ.PEÍ·²¿µÄÆðʼλÖÃÕâÀïдΪC-¿´ÉÏÃæµÚ13×Ö½Ú ;DOS STUB²¿·ÖµÄ×îºó½áβ²¿·Ö---±êʶ:PEÍ·²¿µÄÆðʼλÖÃ~ËûµÄλÖÃÊǹ̶¨µÄËùÒÔÖ»ÄÜдÔÚ×îºóÁË ;align 16, DB 0             .ImageBase              dd imagebase;65 66 | 67 68----ÄÚ´æÓ³Éä»ùÖ·--ĬÈÏΪ00400000h[¹Ø¼üÊý¾Ý] .SectionAlignment       dd 01000h  ;69 70 | 71 72----ÄÚ´æÖнڶÔÆë--Èç¹û¸ÃÖµÊÇ1000hÄÇôÿ½ÚµÄÆðʼµØÖ·±ØÐëÊÇ4096µÄ±¶Êý, .FileAlignment          dd 0200h  ;73 74 | 75 76----Îļþ¶ÔÆë[¹Ø¼üÊý¾Ý]..Ã÷°×°É .MajorOperSystemVersion dw 0h    ;77 78--[·Ç¹Ø¼üÊý¾Ý] .MinorOperSystemVersion dw 0h    ;79 80--[·Ç¹Ø¼üÊý¾Ý] .MajorImageVersion      dw 0h    ;81 82--win32×Óϵͳ°æ±¾¡£ÈôPEÎļþÊÇרÃÅΪWin32Éè¼ÆµÄ[·Ç¹Ø¼üÊý¾Ý] .MinorImageVersion      dw 0h    ;83 84--¸Ã×Óϵͳ°æ±¾±Ø¶¨ÊÇ4.0·ñÔò¶Ô»°¿ò²»»áÓÐ3άÁ¢Ìå¸Ð[·Ç¹Ø¼üÊý¾Ý] .MajorSubsystemVersion  dw 4    ;85 86--[¹Ø¼üÊý¾Ý] .MinorSubsystemVersion  dw 0    ;87 88--[¹Ø¼üÊý¾Ý] .Reserved1              dd 0    ;89 90 | 91 92----[·Ç¹Ø¼üÊý¾Ý] .SizeOfImage            dd 2000h  ;93 94 | 95 96----ÄÚ´æÖÐÕû¸öPEÓ³ÏñÌåµÄ³ß´ç,ËüÊÇËùÓÐÍ·ºÍ½Ú¾­¹ý½Ú¶ÔÆë´¦ÀíºóµÄ´óС[¹Ø¼üÊý¾Ý] .SizeOfHeaders          dd code    ;97 98 | 99 100---ËùÓÐÍ·+½Ú±íµÄ´óС,Ò²¾ÍµÈÓÚÎļþ³ß´ç¼õÈ¥ÎļþÖÐËùÓнڵijߴç,¿ÉÒÔÒÔ´ËÖµ×÷ΪPEÎļþµÚÒ»½ÚµÄÎļþÆ«ÒÆÁ¿[¹Ø¼üÊý¾Ý] .CheckSum               dd 0h    ;101 102 | 103 104----[·Ç¹Ø¼üÊý¾Ý] .Subsystem              dw 2    ;105 106----PEÎļþÊô×Óϵͳ,2=Win32 GUI,3=Win32 Console[¹Ø¼üÊý¾Ý] .DllCharacteristics     dw 0    ;107 108----[·Ç¹Ø¼üÊý¾Ý] .SizeOfStackReserve1    dd 100000h  ;109 110 | 111 112----[¹Ø¼üÊý¾Ý] .SizeOfStackCommit1     dd 2000h  ;113 114 | 115 116----[¹Ø¼üÊý¾Ý] .SizeOfStackReserve2    dd 100000h  ;117 118 | 119 120----[¹Ø¼üÊý¾Ý] .SizeOfStackCommit2     dd 2000h  ;121 122 | 123 124----[¹Ø¼üÊý¾Ý] .LoaderFlags            dd 0h    ;125 126 | 127 128----[·Ç¹Ø¼üÊý¾Ý] .NumberOfRvaAndSizes    dd 10h    ;129 130 | 131 132----[¹Ø¼üÊý¾Ý] Data_Directories: .ExportRva            dd 0h    ;133 134 | 135 136----µ¼³ö±íÐéÄâÆ«ÒÆ[·Ç¹Ø¼üÊý¾Ý] .ExportSize        dd 0h    ;137 138 | 139 140----µ¼Èë±í³¤¶È[·Ç¹Ø¼üÊý¾Ý] .ImportRva               dd import+RVADIFF  ;141 142 | 143 144----µ¼Èë±íÐéÄâÆ«ÒÆ[¹Ø¼üÊý¾Ý] .ImportSize        dd code_end-import  ;145 146 | 147 148----µ¼Èë±í³¤¶È[¹Ø¼üÊý¾Ý] ;µ¼Èë±í½á¹¹²¿·Ö~Õâ¸öµØ·½ÐèÒª×Ðϸ¹¹Ôì[ÉÐδÑо¿³¹µ×] ;.misc_sectionz times 28 dd 0    ;ÆäËû²¿·Ö~¶ÔÓÚÎÒÃÇÍêȫûÓÃµÄ .ResourceRva       dd 0h    ;×ÊÔ´±íÐéÄâÆ«ÒÆ[·Ç¹Ø¼üÊý¾Ý] .ResourceSize      dd 0h    ;×ÊÔ´±í³¤¶È[·Ç¹Ø¼üÊý¾Ý] .ExceptionRva      dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .ExceptionSize      dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .CertificateRva      dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .CertificateSize    dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .BaseRelocationRva    dd 0h    ;»ùÖ·Öض¨Î»±íÐéÄâÆ«ÒÆ[·Ç¹Ø¼üÊý¾Ý] .BaseRelocationSize    dd 0h    ;»ùÖ·Öض¨Î»±í³¤¶È[·Ç¹Ø¼üÊý¾Ý] .DebugRva        dd 0h    ;µ÷ÊÔÐÅÏ¢ÐéÄâÆ«ÒÆ[·Ç¹Ø¼üÊý¾Ý] .DebugSize        dd 0h    ;µ÷ÊÔÐÅÏ¢³¤¶È[·Ç¹Ø¼üÊý¾Ý] .DescriptionRva      dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .DescriptionSize    dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .MachineRva        dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .MachineSize      dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .TLSRva          dd 0h    ;Ï̴߳¦ÀíÊý¾Ý[¹Ø¼üÊý¾Ý] .TLSSize        dd 0h    ;Ï̴߳¦ÀíÊý¾Ý³¤¶È[¹Ø¼üÊý¾Ý] .LoadConfigRva      dd 0h    ;ûÍæ¹ýÕⶫ¶«[¹Ø¼üÊý¾Ý] .LoadConfigSize      dd 0h    ;ûÍæ¹ýÕⶫ¶«[¹Ø¼üÊý¾Ý] .BoundImportRva      dd 0h    ;°ó¶¨µ¼Èë±íÊý¾Ý[¹Ø¼üÊý¾Ý] .BoundImportSize    dd 0h    ;°ó¶¨µ¼Èë±íÊý¾Ý³¤¶È[¹Ø¼üÊý¾Ý] .IATRva          dd 0h    ;ûÍæ¹ýÕⶫ¶«[¹Ø¼üÊý¾Ý] .IATSize        dd 0h    ;ûÍæ¹ýÕⶫ¶«[¹Ø¼üÊý¾Ý] .DelayImportDescriptor1  dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .DelayImportDescriptor2  dd 0h    ;ûÍæ¹ýÕⶫ¶«[·Ç¹Ø¼üÊý¾Ý] .COMRuntimeHeader1    dd 0h    ;COM+ Ê±¼äÁ¬½Ó¿âÐéÄâÆ«ÒƵØÖ·[·Ç¹Ø¼üÊý¾Ý] .COMRuntimeHeader2    dd 0h    ;COM+ Ê±¼äÁ¬½Ó¿â³¤¶È[·Ç¹Ø¼üÊý¾Ý] .Reserved1        dd 0h    ;Õⶫ¶«¾ÍÕæµÄûÌý˵¹ýÁË[·Ç¹Ø¼üÊý¾Ý] .Reserved2        dd 0h    ;Õⶫ¶«¾ÍÕæµÄûÌý˵¹ýÁË[·Ç¹Ø¼üÊý¾Ý] ;ÒÔÉÏÄË~~PE½á¹¹Í·²¿ÐÅÏ¢~Çë°´ÕÕ˵Ã÷½øÐÐÐÞ¸Ä---ллÎÒ×Ô¼º sections: .SectionName            db ".Anskya",0 .VirtualSize            dd CODE_BASE  ;ÐéÄâÌå»ý .VirtualAddress         dd CODE_BASE  ;ÐéÄâµØÖ· .SizeOfRawData          dd code_end-code;Êý¾ÝÌå»ý .PointerToRawData       dd code      ;Êý¾ÝÆ«ÒÆ .PointerToRelocations   dd 0 .PointerToLinenumbers   dd 0 .NumberOfRelocations    dw 0 .NumberOfLinenumbers    dw 0 .Characteristics        dd 0E0000060h  ;¶ÎÊôÐÔ...²»ÓÃ˵ÁË°É align 200h, DB 0            ;¶ÔÆë0x200 code:   pushad   sub eax,eax   push eax              ;0   push 00400105h            ;°Ñ½ÚÃû³ÆѹÈë¶ÑÕ»   push 00400002h            ;°ÑMZºóÃæµÄ¸öÈËÐÅϢѹÈë¶ÑÕ»   push eax              ;MB_OK   call [MessageBoxA]          ;µ÷Óõ¼Èë±íµØÖ·   popad   ret    align 16, DB 0 ;ÒÔϵ¼Èë±í²¿·Ö....½ö½öΪÁËÑÝʾ¾ÍûÓÐдµ¼³ö±í²¿·Ö...¾ßÌå²Î¼û<<Èí¼þ¼ÓÃܼ¼ÊõÄÚÄ»>> import  dd 0     dd 0     dd -1     dd dll001+RVADIFF         dd api001+RVADIFF          times 5 dd 0          ;¿Õ´¦4*5¸ö00µÄ¿Õλ      dll001   db 'USER32.DLL',0               ;µ¼ÈëDLLÃû³Æ api001  dd api101+RVADIFF        ;¼ÆËãµ¼Èë±íµÄÄÚ´æµØÖ·     dd 0      api101  dw 0     db 'MessageBoxA',0        ;µ¼È뺯Êý      MessageBoxA  equ api001+reloc+4*0    ;º¯ÊýµØÖ·ÉùÃ÷...ÈçÓжàÓàµÄº¯ÊýÇëapi00N+reloc+4*N code_end:



Ïà¹Ø´úÂë¼û¸½¼þ£º nasm.rar

  • ±ê Ì⣺ Re: ¡¾Ô­´´¡¿±àд×Ô¶¨ÒåPE½á¹¹µÄ³ÌÐò(ÈçºÎÊÖдһ¸öPE...)
  • ×÷ Õߣºdwing
  • ʱ ¼ä£º2006-07-02 01:23

204 Bytes HelloWorld MessageBox.
http://www.pouet.net/prod.php?which=18893

00000000h: 4D 5A 33 C0 50 68 7C 10 40 00 EB 5E 50 45 00 00 ; MZ3ÀPh|.@.ë^PE..
00000010h: 4C 01 01 00 4D 65 73 73 61 67 65 42 6F 78 41 00 ; L...MessageBoxA.
00000020h: 80 00 03 01 0B 01 48 65 6C 6C 6F 20 57 6F 72 6C ; €.....Hello Worl
00000030h: 64 21 21 00 02 10 00 00 3C 42 79 3E 0C 00 00 00 ; d!!.....<By>....
00000040h: 00 00 40 00 00 10 00 00 00 02 00 00 75 73 65 72 ; ..@.........user
00000050h: 33 32 00 44 04 00 00 00 00 00 00 00 00 20 00 00 ; 32.D......... ..
00000060h: 00 10 00 00 77 69 6E 67 02 00 EB 50 00 00 10 00 ; ....wing..ëP....
00000070h: 00 10 00 00 00 00 10 00 00 10 00 00 52 4F 58 21 ; ............ROX!
00000080h: 04 00 00 00 00 00 00 00 00 00 00 00 84 10 00 00 ; ............?..
00000090h: 4C 10 00 00 9C 10 00 00 00 00 00 00 12 10 00 00 ; L...?..........
000000a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 ; ................
000000b0h: 00 10 00 00 CB 00 00 00 01 00 00 00 68 26 10 40 ; ....?......h&.@
000000c0h: 00 50 FF 15 9C 10 40 00 C3 00 00 E0             ; .Pÿ.?@.?.


¸½¼þÏÂÔØ£ºhello204.zip