ghidra/Ghidra/Features/Base/data/symbols
ghidra1 cf32f48605 GT-3235 Correct parsing of *.ord MS ordinal symbol map files 2019-12-19 11:01:13 -05:00
..
win32 Candidate release of source code. 2019-03-26 13:46:51 -04:00
win64 Candidate release of source code. 2019-03-26 13:46:51 -04:00
README.txt GT-3235 Correct parsing of *.ord MS ordinal symbol map files 2019-12-19 11:01:13 -05:00

README.txt

The use of library symbol table information is currently limited to Windows
x86 (32-bit and 64-bit).  Currently, the use of these library symbol files are 
best suited for library names which incorporate an API version (e.g., mfc100.dll)
since the .exports and .ord files will utilize this same name for identification.

When the PE loader detects a library dependency (i.e., DLL) and the library is 
not loaded, the subdirectories win32 or win64 will be searched for a corresponding
.exports or .ord file to provide ordinal-to-symbol name mappings.  User generated
.exports and .ord files may also be stored/read from the user's 'symbols' resource
directory contained within the user's version-specific .ghidra directory (e.g., 
%HOMEPATH%/.ghidra/.ghidra-9.0/symbols/win64).

The .exports files can be generated from a loaded library program and can also 
provide function stack purge and function comment information. The Ghidra script 
'CreateExportFileForDLL' may be used to generate a .exports file for the current 
program which will be stored within the user's 'symbols' resource directory 
mentioned above.

Many library functions are referenced through the use of ordinals and may be 
missing real symbol names.  In such cases it may be desirable to rely on ordinal
to symbol name map .ord files which may be generated with the following command:

  DUMPBIN /EXPORTS <DLL-FILEPATH>
  
The DUMPBIN utility is provided with Microsoft Visual Studio.  The resulting output
should be stored within a .ord file using the DLL name (e.g., mfc100.ord).