[Wisp-cvs] wisp/users/dig make-pe-exe.py,1.60,1.61 pe.py,1.1,1.2
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-05-16 14:13:07
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv8863 Modified Files: make-pe-exe.py pe.py Log Message: moved make_pe_aout_header to pe.py Index: make-pe-exe.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/make-pe-exe.py,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- make-pe-exe.py 16 May 2003 14:09:56 -0000 1.60 +++ make-pe-exe.py 16 May 2003 14:13:04 -0000 1.61 @@ -74,87 +74,6 @@ t[::4] = '#%s/flags' % name return t -def make_pe_aout_header (): - h = Linkie('<') - h.align(4) - # #aout/magic = 0x10B - h[::2] = '#aout/magic' - h[::1] = '#aout/linker-version-major', '#aout/linker-version-minor' - h[::4] = '#aout/text-size', '#aout/data-size', '#aout/bss-size' - h[::4] = '&_start #rva', '&.text #rva', - h[::4] = '&.data #rva' # not present in PE32+ (?) - # #aout/image-base must be multiple of 64ki - h[::4] = '#aout/image-base' - h[::4] = '#aout/memory-align' - # #aout/file-align must be a power of 2 in range of [512 ... 64Ki] - h[::4] = '#aout/file-align' - h[::2] = '#aout/os-version-major' - h[::2] = '#aout/os-version-minor' - h[::2] = '#aout/image-version-major' - h[::2] = '#aout/image-version-minor' - h[::2] = '#aout/subsys-version-major' - h[::2] = '#aout/subsys-version-minor' - h[::4] = 0 - # &aout/image-end must be a multiple of #aout/memory-align - h.emit_tetra_sum(['&aout/image-end', '#rva']) - # !aout/header-end must be a multiple of #aout/file-align - h.emit_tetra_sum(['!aout/header-end']) - h.emit_tetra(0) # checksum - h.emit_wyde_sum(['#aout/subsys']) - # Known values for #aout/subsys - # 0x0000 - unknown - # 0x0001 - native - # 0x0002 - Windows GUI - # 0x0003 - Windows character - # 0x0005 - OS/2 character - # 0x0007 - POSIX character - # 0x0009 - Windows CE GUI - h.emit_wyde_sum(['#aout/dll-flags']) - # Known flags for #aout/dll-flags - # 0x0001 - per-process library initialization - # 0x0002 - per-process library termination - # 0x0004 - per-thread library initialization - # 0x0008 - per-thread library termination - # All others must be zero. - h.emit_tetra_sum(['#aout/stack-reserve-size']) - h.emit_tetra_sum(['#aout/stack-commit-size']) - h.emit_tetra_sum(['#aout/heap-reserve-size']) - h.emit_tetra_sum(['#aout/heap-commit-size']) - h.emit_tetra(0) # loader flags - obsolete - h.emit_tetra_sum(['#aout/dict-entry-count']) - h.emit_tetra_sum(['&export-table', '#rva']) - h.emit_tetra_sum(['#export-table/size']) - h.emit_tetra_sum(['&.imports', '#rva']) - h.emit_tetra_sum(['#.imports/memsz']) - h.emit_tetra_sum(['&resource-table', '#rva']) - h.emit_tetra_sum(['#resource-table/size']) - h.emit_tetra_sum(['&exception-table', '#rva']) - h.emit_tetra_sum(['#exception-table/size']) - h.emit_tetra_sum(['!certificate-table']) - h.emit_tetra_sum(['#certificate-table/size']) - h.emit_tetra_sum(['&base-relocation-table', '#rva']) - h.emit_tetra_sum(['#base-relocation-table/size']) - h.emit_tetra_sum(['&debug-data', '#rva']) - h.emit_tetra_sum(['#debug-data/size']) - h.emit_tetra_sum(['&architecture-specific', '#rva']) - h.emit_tetra_sum(['#architecture-specific/size']) - h.emit_tetra_sum(['&global-pointer', '#rva']) - h.emit_tetra(0) - h.emit_tetra_sum(['&thread-local-storage', '#rva']) - h.emit_tetra_sum(['#thread-local-storage/size']) - h.emit_tetra_sum(['&load-config-table', '#rva']) - h.emit_tetra_sum(['#load-config-table/size']) - h.emit_tetra_sum(['&bound-import-table', '#rva']) - h.emit_tetra_sum(['#bound-import-table/size']) - h.emit_tetra_sum(['&import-address-table', '#rva']) - h.emit_tetra_sum(['#import-address-table/size']) - h.emit_tetra_sum(['&delay-import-descriptor', '#rva']) - h.emit_tetra_sum(['#delay-import-descriptor/size']) - h.emit_tetra_sum(['&COM+-runtime-header', '#rva']) - h.emit_tetra_sum(['#COM+-runtime-header/size']) - h.emit_tetra(0); h.emit_tetra(0) # reserved - return h - text = Linkie('<') # ia32 text.place_symbol('&_start') text[::1] = 0x68; text[::4] = -11 # push -11 Index: pe.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/pe.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- pe.py 16 May 2003 14:09:55 -0000 1.1 +++ pe.py 16 May 2003 14:13:04 -0000 1.2 @@ -50,3 +50,84 @@ b.place_symbol('#mz/blocks-in-file', (b.filesz() + 0x1FF) / 0x200) return b +def make_pe_aout_header (): + h = Linkie('<') + h.align(4) + # #aout/magic = 0x10B + h[::2] = '#aout/magic' + h[::1] = '#aout/linker-version-major', '#aout/linker-version-minor' + h[::4] = '#aout/text-size', '#aout/data-size', '#aout/bss-size' + h[::4] = '&_start #rva', '&.text #rva', + h[::4] = '&.data #rva' # not present in PE32+ (?) + # #aout/image-base must be multiple of 64ki + h[::4] = '#aout/image-base' + h[::4] = '#aout/memory-align' + # #aout/file-align must be a power of 2 in range of [512 ... 64Ki] + h[::4] = '#aout/file-align' + h[::2] = '#aout/os-version-major' + h[::2] = '#aout/os-version-minor' + h[::2] = '#aout/image-version-major' + h[::2] = '#aout/image-version-minor' + h[::2] = '#aout/subsys-version-major' + h[::2] = '#aout/subsys-version-minor' + h[::4] = 0 + # &aout/image-end must be a multiple of #aout/memory-align + h.emit_tetra_sum(['&aout/image-end', '#rva']) + # !aout/header-end must be a multiple of #aout/file-align + h.emit_tetra_sum(['!aout/header-end']) + h.emit_tetra(0) # checksum + h.emit_wyde_sum(['#aout/subsys']) + # Known values for #aout/subsys + # 0x0000 - unknown + # 0x0001 - native + # 0x0002 - Windows GUI + # 0x0003 - Windows character + # 0x0005 - OS/2 character + # 0x0007 - POSIX character + # 0x0009 - Windows CE GUI + h.emit_wyde_sum(['#aout/dll-flags']) + # Known flags for #aout/dll-flags + # 0x0001 - per-process library initialization + # 0x0002 - per-process library termination + # 0x0004 - per-thread library initialization + # 0x0008 - per-thread library termination + # All others must be zero. + h.emit_tetra_sum(['#aout/stack-reserve-size']) + h.emit_tetra_sum(['#aout/stack-commit-size']) + h.emit_tetra_sum(['#aout/heap-reserve-size']) + h.emit_tetra_sum(['#aout/heap-commit-size']) + h.emit_tetra(0) # loader flags - obsolete + h.emit_tetra_sum(['#aout/dict-entry-count']) + h.emit_tetra_sum(['&export-table', '#rva']) + h.emit_tetra_sum(['#export-table/size']) + h.emit_tetra_sum(['&.imports', '#rva']) + h.emit_tetra_sum(['#.imports/memsz']) + h.emit_tetra_sum(['&resource-table', '#rva']) + h.emit_tetra_sum(['#resource-table/size']) + h.emit_tetra_sum(['&exception-table', '#rva']) + h.emit_tetra_sum(['#exception-table/size']) + h.emit_tetra_sum(['!certificate-table']) + h.emit_tetra_sum(['#certificate-table/size']) + h.emit_tetra_sum(['&base-relocation-table', '#rva']) + h.emit_tetra_sum(['#base-relocation-table/size']) + h.emit_tetra_sum(['&debug-data', '#rva']) + h.emit_tetra_sum(['#debug-data/size']) + h.emit_tetra_sum(['&architecture-specific', '#rva']) + h.emit_tetra_sum(['#architecture-specific/size']) + h.emit_tetra_sum(['&global-pointer', '#rva']) + h.emit_tetra(0) + h.emit_tetra_sum(['&thread-local-storage', '#rva']) + h.emit_tetra_sum(['#thread-local-storage/size']) + h.emit_tetra_sum(['&load-config-table', '#rva']) + h.emit_tetra_sum(['#load-config-table/size']) + h.emit_tetra_sum(['&bound-import-table', '#rva']) + h.emit_tetra_sum(['#bound-import-table/size']) + h.emit_tetra_sum(['&import-address-table', '#rva']) + h.emit_tetra_sum(['#import-address-table/size']) + h.emit_tetra_sum(['&delay-import-descriptor', '#rva']) + h.emit_tetra_sum(['#delay-import-descriptor/size']) + h.emit_tetra_sum(['&COM+-runtime-header', '#rva']) + h.emit_tetra_sum(['#COM+-runtime-header/size']) + h.emit_tetra(0); h.emit_tetra(0) # reserved + return h + |