Empty IAT entry
Craig Edwards
craig@haenterprises.com.au
Wed Jun 23 09:36:00 GMT 2004
I am compiling a very simple C program using cygwin gcc 3.3.1 and ld
2.15.90, but for some reason the Data Directory in the .exe doesn't seem
to be populated correctly. objdump reports:
<snip>
Entry b 00000000 00000000 Bound Import Directory
Entry c 00000000 00000000 Import Address Table Directory
Entry d 00000000 00000000 Delay Import Directory
There is an import table in .idata at 0x100000c0
The Import Tables (interpreted .idata section contents)
vma: Hint Time Forward DLL First
Table Stamp Chain Name Thunk
000000c0 000000ec 00000000 00000000 00000104 000000f8
DLL Name: xboxkrnl.exe
vma: Hint/Ord Member-Name Bound-To
80000031 49 <none>
</snip>
I would have expected an IAT entry like:
Entry c 000000f8 00000008 Import Address Table Directory
and in fact, the application doesn't run unless I manually edit (in hex)
the file to put 000000f8/00000008 values in the IAT. Is there something I
am missing? Is the IAT entry optional? Are there flags that can control
the generation of the IAT? Any advice would be appreciated.
Oh, if I am on the wrong mailing list, please advise... thanks a lot.
P.S. To further complicate things, the resultant .exe is actually executed
on an XBOX, so maybe the XBOX NT kernel has a special requirement that
this value be populated.
--
Craig Edwards
More information about the Binutils
mailing list