世界上最小的win9x可执行程序只用513字节

; ********************************************************************************
; *      The Small portable executable Format Program Information                *
; ********************************************************************************
; *   Author:njhhack      e-mail:njhhack@21cn.com     homepage:hotsky.363.net    *
; *   Created Date:2001.5.6                                                      *
; *   Develop Tools Obtained from  Copyright (C) 1987,1996 Borland International *
; *   Turbo Assembler Version 4.1        : Tasm /m spe                           *
; *   Turbo Link Version 7.1.30.1        : Tlink /3 /t spe, spe.exe              *
; ********************************************************************************

;    +-------------------+
;    | DOS-stub          |         50h
;    +-------------------+
;    | file-header       |--+      18h     
;    +-------------------+  |
;    | optional header   |  |      60h-----------+
;    +-------------------+  +---Total =1c0h      |---Total 0e0h
;    | data directories  |  |      80h-----------+
;    +-------------------+  |
;    | section headers   |--+      28h----->Total 0b8h
;    +-------------------+
;    | section 1         |         .code Section
;    +-------------------+
;    | section 2         |
;    +-------------------+
;    | ...               |
;    +-------------------+
;    | section n         |
;    +-------------------+

;*****************************************************
;                  DOS Stub
;*****************************************************
                            .286p
DosHeader                   SEGMENT                 ;
                            BeginProgram:
DosSignature                db 'MZ'            ;
LastSectorLength            dw 1               ;
FileSize                    dw 2               ;this size include head section,the unit is 512 bytes                
RelocateTableNums           dw 0               ;
HeadSize                    dw 2               ;this size unit is 16 bytes
MinMem                      dw 0               ;
MaxMem                      dw 0ffffh          ;
OffsetSS                    dw 0               ;
OffsetSP                    dw 0b8h            ;
FileCheckSum                dw 0               ;
OffsetIP                    dw 0               ;
OffsetCS                    dw 0               ;
FistRelocateAddress         dw 3eh             ;noused in pe
OverloayNums                dw 0               ;
                            org 20h            ;
;*****************************************************
;                  DOS Proc
;*****************************************************
                            mov dx,offset DOS_MESSAGE+100h-20h          ;
                            mov ah,9           ;
                            int 21h            ;
                            mov ax,4c01h       ;
                            int 21h            ;
DOS_MESSAGE                 db  'Run Win2000.',0dh,0ah,07,'$'       ;
                            org 3ch            ;pe sig
PeHeadAddress               db 50h             ;
                            org 50h            ;
DosHeader                   ENDS
;*****************************************************
;                   File Header
;********************************************************
                            .586p
FileHeader                  SEGMENT            ;
WinSignature                dd 4550h           ;PE Format
Machine                     dw 14ch            ;Intel 80386
NumberOfSections            dw 1               ;.code Section
TimeDateStamp               dd 0352068f1h      ;
PointerToSymbolTable        dd 0               ;unused
NumberOfSymbols             dd 0               ;unused
SizeOfOptionalHeader        dw 0e0h            ;constant=optinal header+data Directory
Characteristics             dw 010fh           ;executable on 32-bit-machine
;********************************************************
;                    Optional Header
;********************************************************
Magic                       dw 010bh           ;constant
MajorLinkerVersion          db 5               ;I'm version 0.0 :-)
MinorLinkerVersion          db 2               ;
SizeOfCode                  dd 1000h           ;32 bytes of code;100h
SizeOfInitializedData       dd 0               ;yet to find out;0
SizeOfUninitializedData     dd 0               ;we don't have a BSS;0
AddressOfEntryPoint         dd 1000h           ;yet to find out;1010h
BaseOfCode                  dd 1000h           ;yet to find out;1000h
BaseOfData                  dd 2000h           ;yet to find out;200h
ImageBase                   dd 400000h         ;1 MB, chosen arbitrarily;400000h
SectionAlignment            dd 1000h           ;32-bytes-alignment;100h
;
FileAlignment               dd 20h;200h            ;32-bytes-alignment;200h
;
MajorOperatingSystemVersion dw 4               ;NT 4.0
MinorOperatingSystemVersion dw 0               ;
MajorImageVersion           dw 1               ;version 1.2
MinorImageVersion           dw 2               ;
MajorSubsystemVersion       dw 4               ;Win32 4.0
MinorSubsystemVersion       dw 0               ;
Win32VersionValue           dd 0               ;unused?
;
SizeOfImage                 dd 2000h           ;yet to find out;200h
SizeOfHeaders               dd 200h            ;yet to find out;200h
CheckSum                    dd 0               ;not used for non-drivers
Subsystem                   dw 2               ;Win32 console
DllCharacteristics          dw 0               ;unused (not a DLL)
SizeOfStackReserve          dd 100000h         ;1 MB stack
SizeOfStackCommit           dd 1000h           ;4 KB to start with
SizeOfHeapReserve           dd 100000h         ;1 MB heap
SizeOfHeapCommit            dd 1000h           ;4 KB to start with
LoaderFlags                 dd 0               ;unknown
NumberOfRvaAndSizes         dd 10h             ;constant
;*****************************************************
;                     Image Data Directories,
;***********************************************************************
                                               ;Address        Size
Ide00Export                 dd 0,0             ;IMAGE_DIRECTORY_ENTRY_EXPORT (0)
Ide01Import                 dd 0,0             ;IMAGE_DIRECTORY_ENTRY_IMPORT (1)
Ide02Resource               dd 0,0             ;IMAGE_DIRECTORY_ENTRY_RESOURCE (2)
Ide03Exception              dd 0,0             ;IMAGE_DIRECTORY_ENTRY_EXCEPTION (3)
Ide04Security               dd 0,0             ;IMAGE_DIRECTORY_ENTRY_SECURITY (4)
Ide05BaseReloc              dd 0,0             ;IMAGE_DIRECTORY_ENTRY_BASERELOC (5)
Ide06Debug                  dd 0,0             ;IMAGE_DIRECTORY_ENTRY_DEBUG (6)
Ide07Copyright              dd 0,0             ;IMAGE_DIRECTORY_ENTRY_COPYRIGHT (7)
Ide08Globalptr              dd 0,0             ;IMAGE_DIRECTORY_ENTRY_GLOBALPTR (8)
Ide09Tls                    dd 0,0             ;IMAGE_DIRECTORY_ENTRY_TLS (9)
Ide10LoadConfig             dd 0,0             ;IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG (10)
Ide11BoundImport            dd 0,0             ;IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (11)
Ide12Iat                    dd 0,0             ;IMAGE_DIRECTORY_ENTRY_IAT (12)
Ide13                       dd 0,0             ;13
Ide14                       dd 0,0             ;14
Ide15                       dd 0,0             ;15
;**********************************************************************
;                    Section Header
;**********************************************************************************
SectionName                 db  '.code',0,0,0  ;".code",8 bytes
VirtualSize                 dd  1000h          ;unused
VirtualAddress              dd  1000h          ;yet to find out
SizeOfRawData               dd  1000h          ;size of code
PointerToRawData            dd  200h           ;yet to find out
PointerToRelocations        dd  0              ;unused
PointerToLinenumbers        dd  0              ;unused
NumberOfRelocations         dw  0              ;unused
NumberOfLinenumbers         dw  0              ;unused
Characteristics2            dd  60000020h      ;code, executable, readable
;-----------------padding nulls-----------------------------------------
                            dd PESize       ;
VersionCopyright            db 'WIN32.PE 1.0'  ;
                            org 1b0h           ; 
FileHeader                  ENDS

;**********************************************************************************
;                    .code Section     
;**********************************************************************************
CodeSection                 SEGMENT            ;1
                            ret                ;
PESize                      =      $           ;
CodeSection                 ENDS
                            END BeginProgram

;*****************************************************************************
;*           njhhack 2001.5.6 Copyrigth(C) 2001-2004 Allrights Reserved.     *
;*        this PE File is Only 513 bytes,but it's a raw program,it's fun!
;*****************************************************************************

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值