[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
+
|