R
Robert Simpson
I have a custom-built binary that recently starting throwing fits on the
Compact Framework. The same binary built the same way for the desktop runs
fine, but when I built it for CF it fails to load. If I remove the strong
name from the CF binary, it loads just fine.
This binary is non-standard in that it wasn't entirely created by Visual
Studio. The .NET assembly manifest and IL code is not in the same place
inside the DLL as would normally appear in a pure CSC-created assembly, but
all the PE headers, COR20 headers and metadata are correct for the binary.
After building the binary, SN -v verifies the signature, and PEVerify /MD
/IL indicates the assembly is valid. If built for the desktop, the desktop
DLL works perfectly.
The capper is that previous versions of the CF binary ran just fine, built
using the same methods and strong named. It's only been recently when more
code was added that the binary suddenly stopped loading on the CF. The
binary is approximately 400kb
Here's are two netcf_loader logs, the first with the strong name (fails to
load) and the second log without the strong name (successfully loaded)
========================================
Process [\Program Files\testce\testce.exe]
ProcessID [0x3771a0fe]
Date [2006/10/10] (yyyy/mm/dd)
Time [19:27:31] (hh:mm:ss)
NETCF [2.0.5238.00]
Platform [Windows CE v4.21.1088 (PocketPC) WinCE4ARMV4 release V2 ARMV4
IJITv2]
========================================
GAC: Updating GAC [0x0]
GAC: Checking .gac files inside [\Windows\]
GAC: Found [System.SR.2.0.ENU.gac] .gac file.
GAC: Found [Microsoft .NET CF 2.0.GAC] .gac file.
GAC: Done with the file system check. Checking the registry.
GAC: Found [System.SR.2.0.ENU.gac] registry entry.
GAC: Found [Microsoft .NET CF 2.0.GAC] registry entry.
GAC: Done with the registry check. Let's compare.
GAC: Entry [Microsoft .NET CF 2.0.GAC] is up to date.
GAC: Entry [System.SR.2.0.ENU.gac] is up to date.
GAC: GAC is up to date.
Compatibility mode [2.0.0.0]
Loading module [\Windows\GAC_mscorlib_v2_0_0_0_cneutral_1.dll]
Loaded [mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_mscorlib_v2_0_0_0_cneutral_1.dll]
Loading module [\Program Files\testce\testce.exe]
Policy file not present. [\Program Files\testce\testce.exe.config]
Loading module [\Windows\GAC_System.Data_v2_0_0_0_cneutral_1.dll]
Loaded [System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Data_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System_v2_0_0_0_cneutral_1.dll]
Loaded [System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll]
Loaded [System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System.Drawing_v2_0_0_0_cneutral_1.dll]
Loaded [System.Drawing, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Drawing_v2_0_0_0_cneutral_1.dll]
Loading module [\Program Files\testce\System.Data.SQLite.dll]
Missing Assembly [System.Data.SQLite, Version=1.0.36.0, Culture=neutral,
PublicKeyToken=1FDB50B1B62B4C84].
Failed to load [System.Data.SQLite, Version=1.0.36.0, Culture=neutral,
PublicKeyToken=1FDB50B1B62B4C84]
==================(end)=================
And without a strong name:
========================================
Process [\Program Files\testce\testce.exe]
ProcessID [0x576e0002]
Date [2006/10/10] (yyyy/mm/dd)
Time [19:29:10] (hh:mm:ss)
NETCF [2.0.5238.00]
Platform [Windows CE v4.21.1088 (PocketPC) WinCE4ARMV4 release V2 ARMV4
IJITv2]
========================================
GAC: Updating GAC [0x0]
GAC: Checking .gac files inside [\Windows\]
GAC: Found [System.SR.2.0.ENU.gac] .gac file.
GAC: Found [Microsoft .NET CF 2.0.GAC] .gac file.
GAC: Done with the file system check. Checking the registry.
GAC: Found [System.SR.2.0.ENU.gac] registry entry.
GAC: Found [Microsoft .NET CF 2.0.GAC] registry entry.
GAC: Done with the registry check. Let's compare.
GAC: Entry [Microsoft .NET CF 2.0.GAC] is up to date.
GAC: Entry [System.SR.2.0.ENU.gac] is up to date.
GAC: GAC is up to date.
Compatibility mode [2.0.0.0]
Loading module [\Windows\GAC_mscorlib_v2_0_0_0_cneutral_1.dll]
Loaded [mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_mscorlib_v2_0_0_0_cneutral_1.dll]
Loading module [\Program Files\testce\testce.exe]
Policy file not present. [\Program Files\testce\testce.exe.config]
Loading module [\Windows\GAC_System.Data_v2_0_0_0_cneutral_1.dll]
Loaded [System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Data_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System_v2_0_0_0_cneutral_1.dll]
Loaded [System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll]
Loaded [System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System.Drawing_v2_0_0_0_cneutral_1.dll]
Loaded [System.Drawing, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Drawing_v2_0_0_0_cneutral_1.dll]
Loading module [\Program Files\testce\System.Data.SQLite.dll]
Failed to load [System.Data.SQLite, Version=1.0.36.0, Culture=neutral,
PublicKeyToken=null] from GAC
Loaded [System.Data.SQLite, Version=1.0.36.0, Culture=neutral,
PublicKeyToken=null] from [\Program Files\testce\System.Data.SQLite.dll]
Loading module [\Windows\GAC_System.Xml_v2_0_0_0_cneutral_1.dll]
Loaded [System.Xml, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Xml_v2_0_0_0_cneutral_1.dll]
==================(end)=================
Finally, here's a DUMPBIN /HEADERS /CLRHEADER for the CF binary:
Microsoft (R) COFF/PE Dumper Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file system.data.sqlite.dll
PE signature found
File Type: DLL
FILE HEADER VALUES
14C machine (x86)
7 number of sections
452C1878 time date stamp Tue Oct 10 15:02:32 2006
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
2102 characteristics
Executable
32 bit word machine
DLL
OPTIONAL HEADER VALUES
10B magic # (PE32)
8.00 linker version
3B200 size of code
28E00 size of initialized data
0 size of uninitialized data
3B034 entry point (1003B034)
1000 base of code
3D000 base of data
10000000 image base (10000000 to 10068FFF)
1000 section alignment
200 file alignment
4.00 operating system version
0.00 image version
4.10 subsystem version
0 Win32 version
69000 size of image
400 size of headers
72A8A checksum
3 subsystem (Windows CUI)
0 DLL characteristics
100000 size of stack reserve
1000 size of stack commit
100000 size of heap reserve
1000 size of heap commit
0 loader flags
10 number of directories
437C0 [ 19FC] RVA [size] of Export Directory
43620 [ 28] RVA [size] of Import Directory
66000 [ 39C] RVA [size] of Resource Directory
47000 [ 1CD0] RVA [size] of Exception Directory
0 [ 0] RVA [size] of Certificates Directory
67000 [ 1374] RVA [size] of Base Relocation Directory
0 [ 0] RVA [size] of Debug Directory
0 [ 0] RVA [size] of Architecture Directory
0 [ 0] RVA [size] of Global Pointer Directory
0 [ 0] RVA [size] of Thread Storage Directory
0 [ 0] RVA [size] of Load Configuration Directory
0 [ 0] RVA [size] of Bound Import Directory
46000 [ 168] RVA [size] of Import Address Table Directory
0 [ 0] RVA [size] of Delay Import Directory
49004 [ 48] RVA [size] of COM Descriptor Directory
0 [ 0] RVA [size] of Reserved Directory
SECTION HEADER #1
.text name
3B09C virtual size
1000 virtual address (10001000 to 1003C09B)
3B200 size of raw data
400 file pointer to raw data (00000400 to 0003B5FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
60000020 flags
Code
Execute Read
SECTION HEADER #2
.rdata name
81BC virtual size
3D000 virtual address (1003D000 to 100451BB)
8200 size of raw data
3B600 file pointer to raw data (0003B600 to 000437FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
40000040 flags
Initialized Data
Read Only
SECTION HEADER #3
.data name
324 virtual size
46000 virtual address (10046000 to 10046323)
200 size of raw data
43800 file pointer to raw data (00043800 to 000439FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
C0000040 flags
Initialized Data
Read Write
SECTION HEADER #4
.pdata name
1CD0 virtual size
47000 virtual address (10047000 to 10048CCF)
1E00 size of raw data
43A00 file pointer to raw data (00043A00 to 000457FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
40000040 flags
Initialized Data
Read Only
SECTION HEADER #5
.clr name
1CC6C virtual size
49000 virtual address (10049000 to 10065C6B)
1CE00 size of raw data
45800 file pointer to raw data (00045800 to 000625FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
60000020 flags
Code
Execute Read
clr Header:
48 cb
2.05 runtime version
58F70 [ CCFC] RVA [size] of MetaData Directory
18 flags
3BE98 entry point (1003BE98)
514FC [ 7A72] RVA [size] of Resources Directory
4904C [ 80] RVA [size] of StrongNameSignature Directory
0 [ 0] RVA [size] of CodeManagerTable Directory
0 [ 0] RVA [size] of VTableFixups Directory
0 [ 0] RVA [size] of ExportAddressTableJumps Directory
0 [ 0] RVA [size] of ManagedNativeHeader Directory
SECTION HEADER #6
.rsrc name
39C virtual size
66000 virtual address (10066000 to 1006639B)
400 size of raw data
62600 file pointer to raw data (00062600 to 000629FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
40000040 flags
Initialized Data
Read Only
SECTION HEADER #7
.reloc name
1696 virtual size
67000 virtual address (10067000 to 10068695)
1800 size of raw data
62A00 file pointer to raw data (00062A00 to 000641FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
42000040 flags
Initialized Data
Discardable
Read Only
Summary
1D000 .clr
1000 .data
2000 .pdata
9000 .rdata
2000 .reloc
1000 .rsrc
3C000 .text
Robert Simpson
Programmer at Large
Compact Framework. The same binary built the same way for the desktop runs
fine, but when I built it for CF it fails to load. If I remove the strong
name from the CF binary, it loads just fine.
This binary is non-standard in that it wasn't entirely created by Visual
Studio. The .NET assembly manifest and IL code is not in the same place
inside the DLL as would normally appear in a pure CSC-created assembly, but
all the PE headers, COR20 headers and metadata are correct for the binary.
After building the binary, SN -v verifies the signature, and PEVerify /MD
/IL indicates the assembly is valid. If built for the desktop, the desktop
DLL works perfectly.
The capper is that previous versions of the CF binary ran just fine, built
using the same methods and strong named. It's only been recently when more
code was added that the binary suddenly stopped loading on the CF. The
binary is approximately 400kb
Here's are two netcf_loader logs, the first with the strong name (fails to
load) and the second log without the strong name (successfully loaded)
========================================
Process [\Program Files\testce\testce.exe]
ProcessID [0x3771a0fe]
Date [2006/10/10] (yyyy/mm/dd)
Time [19:27:31] (hh:mm:ss)
NETCF [2.0.5238.00]
Platform [Windows CE v4.21.1088 (PocketPC) WinCE4ARMV4 release V2 ARMV4
IJITv2]
========================================
GAC: Updating GAC [0x0]
GAC: Checking .gac files inside [\Windows\]
GAC: Found [System.SR.2.0.ENU.gac] .gac file.
GAC: Found [Microsoft .NET CF 2.0.GAC] .gac file.
GAC: Done with the file system check. Checking the registry.
GAC: Found [System.SR.2.0.ENU.gac] registry entry.
GAC: Found [Microsoft .NET CF 2.0.GAC] registry entry.
GAC: Done with the registry check. Let's compare.
GAC: Entry [Microsoft .NET CF 2.0.GAC] is up to date.
GAC: Entry [System.SR.2.0.ENU.gac] is up to date.
GAC: GAC is up to date.
Compatibility mode [2.0.0.0]
Loading module [\Windows\GAC_mscorlib_v2_0_0_0_cneutral_1.dll]
Loaded [mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_mscorlib_v2_0_0_0_cneutral_1.dll]
Loading module [\Program Files\testce\testce.exe]
Policy file not present. [\Program Files\testce\testce.exe.config]
Loading module [\Windows\GAC_System.Data_v2_0_0_0_cneutral_1.dll]
Loaded [System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Data_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System_v2_0_0_0_cneutral_1.dll]
Loaded [System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll]
Loaded [System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System.Drawing_v2_0_0_0_cneutral_1.dll]
Loaded [System.Drawing, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Drawing_v2_0_0_0_cneutral_1.dll]
Loading module [\Program Files\testce\System.Data.SQLite.dll]
Missing Assembly [System.Data.SQLite, Version=1.0.36.0, Culture=neutral,
PublicKeyToken=1FDB50B1B62B4C84].
Failed to load [System.Data.SQLite, Version=1.0.36.0, Culture=neutral,
PublicKeyToken=1FDB50B1B62B4C84]
==================(end)=================
And without a strong name:
========================================
Process [\Program Files\testce\testce.exe]
ProcessID [0x576e0002]
Date [2006/10/10] (yyyy/mm/dd)
Time [19:29:10] (hh:mm:ss)
NETCF [2.0.5238.00]
Platform [Windows CE v4.21.1088 (PocketPC) WinCE4ARMV4 release V2 ARMV4
IJITv2]
========================================
GAC: Updating GAC [0x0]
GAC: Checking .gac files inside [\Windows\]
GAC: Found [System.SR.2.0.ENU.gac] .gac file.
GAC: Found [Microsoft .NET CF 2.0.GAC] .gac file.
GAC: Done with the file system check. Checking the registry.
GAC: Found [System.SR.2.0.ENU.gac] registry entry.
GAC: Found [Microsoft .NET CF 2.0.GAC] registry entry.
GAC: Done with the registry check. Let's compare.
GAC: Entry [Microsoft .NET CF 2.0.GAC] is up to date.
GAC: Entry [System.SR.2.0.ENU.gac] is up to date.
GAC: GAC is up to date.
Compatibility mode [2.0.0.0]
Loading module [\Windows\GAC_mscorlib_v2_0_0_0_cneutral_1.dll]
Loaded [mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_mscorlib_v2_0_0_0_cneutral_1.dll]
Loading module [\Program Files\testce\testce.exe]
Policy file not present. [\Program Files\testce\testce.exe.config]
Loading module [\Windows\GAC_System.Data_v2_0_0_0_cneutral_1.dll]
Loaded [System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Data_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System_v2_0_0_0_cneutral_1.dll]
Loaded [System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll]
Loaded [System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll]
Loading module [\Windows\GAC_System.Drawing_v2_0_0_0_cneutral_1.dll]
Loaded [System.Drawing, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Drawing_v2_0_0_0_cneutral_1.dll]
Loading module [\Program Files\testce\System.Data.SQLite.dll]
Failed to load [System.Data.SQLite, Version=1.0.36.0, Culture=neutral,
PublicKeyToken=null] from GAC
Loaded [System.Data.SQLite, Version=1.0.36.0, Culture=neutral,
PublicKeyToken=null] from [\Program Files\testce\System.Data.SQLite.dll]
Loading module [\Windows\GAC_System.Xml_v2_0_0_0_cneutral_1.dll]
Loaded [System.Xml, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969DB8053D3322AC] from
[\Windows\GAC_System.Xml_v2_0_0_0_cneutral_1.dll]
==================(end)=================
Finally, here's a DUMPBIN /HEADERS /CLRHEADER for the CF binary:
Microsoft (R) COFF/PE Dumper Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file system.data.sqlite.dll
PE signature found
File Type: DLL
FILE HEADER VALUES
14C machine (x86)
7 number of sections
452C1878 time date stamp Tue Oct 10 15:02:32 2006
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
2102 characteristics
Executable
32 bit word machine
DLL
OPTIONAL HEADER VALUES
10B magic # (PE32)
8.00 linker version
3B200 size of code
28E00 size of initialized data
0 size of uninitialized data
3B034 entry point (1003B034)
1000 base of code
3D000 base of data
10000000 image base (10000000 to 10068FFF)
1000 section alignment
200 file alignment
4.00 operating system version
0.00 image version
4.10 subsystem version
0 Win32 version
69000 size of image
400 size of headers
72A8A checksum
3 subsystem (Windows CUI)
0 DLL characteristics
100000 size of stack reserve
1000 size of stack commit
100000 size of heap reserve
1000 size of heap commit
0 loader flags
10 number of directories
437C0 [ 19FC] RVA [size] of Export Directory
43620 [ 28] RVA [size] of Import Directory
66000 [ 39C] RVA [size] of Resource Directory
47000 [ 1CD0] RVA [size] of Exception Directory
0 [ 0] RVA [size] of Certificates Directory
67000 [ 1374] RVA [size] of Base Relocation Directory
0 [ 0] RVA [size] of Debug Directory
0 [ 0] RVA [size] of Architecture Directory
0 [ 0] RVA [size] of Global Pointer Directory
0 [ 0] RVA [size] of Thread Storage Directory
0 [ 0] RVA [size] of Load Configuration Directory
0 [ 0] RVA [size] of Bound Import Directory
46000 [ 168] RVA [size] of Import Address Table Directory
0 [ 0] RVA [size] of Delay Import Directory
49004 [ 48] RVA [size] of COM Descriptor Directory
0 [ 0] RVA [size] of Reserved Directory
SECTION HEADER #1
.text name
3B09C virtual size
1000 virtual address (10001000 to 1003C09B)
3B200 size of raw data
400 file pointer to raw data (00000400 to 0003B5FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
60000020 flags
Code
Execute Read
SECTION HEADER #2
.rdata name
81BC virtual size
3D000 virtual address (1003D000 to 100451BB)
8200 size of raw data
3B600 file pointer to raw data (0003B600 to 000437FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
40000040 flags
Initialized Data
Read Only
SECTION HEADER #3
.data name
324 virtual size
46000 virtual address (10046000 to 10046323)
200 size of raw data
43800 file pointer to raw data (00043800 to 000439FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
C0000040 flags
Initialized Data
Read Write
SECTION HEADER #4
.pdata name
1CD0 virtual size
47000 virtual address (10047000 to 10048CCF)
1E00 size of raw data
43A00 file pointer to raw data (00043A00 to 000457FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
40000040 flags
Initialized Data
Read Only
SECTION HEADER #5
.clr name
1CC6C virtual size
49000 virtual address (10049000 to 10065C6B)
1CE00 size of raw data
45800 file pointer to raw data (00045800 to 000625FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
60000020 flags
Code
Execute Read
clr Header:
48 cb
2.05 runtime version
58F70 [ CCFC] RVA [size] of MetaData Directory
18 flags
3BE98 entry point (1003BE98)
514FC [ 7A72] RVA [size] of Resources Directory
4904C [ 80] RVA [size] of StrongNameSignature Directory
0 [ 0] RVA [size] of CodeManagerTable Directory
0 [ 0] RVA [size] of VTableFixups Directory
0 [ 0] RVA [size] of ExportAddressTableJumps Directory
0 [ 0] RVA [size] of ManagedNativeHeader Directory
SECTION HEADER #6
.rsrc name
39C virtual size
66000 virtual address (10066000 to 1006639B)
400 size of raw data
62600 file pointer to raw data (00062600 to 000629FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
40000040 flags
Initialized Data
Read Only
SECTION HEADER #7
.reloc name
1696 virtual size
67000 virtual address (10067000 to 10068695)
1800 size of raw data
62A00 file pointer to raw data (00062A00 to 000641FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
42000040 flags
Initialized Data
Discardable
Read Only
Summary
1D000 .clr
1000 .data
2000 .pdata
9000 .rdata
2000 .reloc
1000 .rsrc
3C000 .text
Robert Simpson
Programmer at Large