"Type Library (TLB) Data Dumper (without WinAPI) version 1.0" conforms to
"The Unofficial TypeLib Data Format Specification". The original version is now
outdated and obsolete and should be ignored (and preferably deleted from the
forums).
The (67.3 KB) attached file is a zipped folder containing:
Features:
About the "Study Mode" Feature
Notes on the Program:
Notes on the Format:
All the code and text of "TheirCorp's Type Library Dumper" is GPL
licensed by TheirCorp 2008.
PowerBASIC article in Wikipedia
"The Unofficial TypeLib Data Format Specification". The original version is now
outdated and obsolete and should be ignored (and preferably deleted from the
forums).
The (67.3 KB) attached file is a zipped folder containing:
- The compiled EXE
- All source files
- A sample ODL file (Object Definition Language)
- A sample TLB file (TypeLib)
- A sample dump file (plain text)
- "Type Library Dumper" displays detailed information about the
contents of TypeLib data (TypeLib data is what tells an operating
system how to link up COM objects). - It was written to determine the TypeLib format so the format could be
documented, and also to give "bep" (Bin Edit Plus) the ability to decompile
TypeLib data. - It is based largely on studies of code from the ReactOS project at:
The primary source file used was:
..\reactos\dll\win32\oleaut32\typelib.c
Features:
- Extracts TypeLib data from the resource sections of PE format
files (EXE, DLL, OCX, OCA...) and also from TLB files, of course. - Automatic handling of files based on internal format regardless
of file extensions - Drag-and-drop operation (puts the file's path into the textbox)
- Commandline operation
- It can open EXE's even while they're running
- A "Study Mode" to help learn more details of the TypeLib format
(see below).
About the "Study Mode" Feature
- Study Mode can be enabled with the "%Study" equate.
- It provides for logging occurrences of any type of content encountered
- It alerts the user of the first item of interest it finds with
a messagebox. - Just add code as needed to identify values or flag bits that you want
to research. Place the code between "#If %Def(%Study)" and "#EndIf"
statements. Example:
#If %Def(%Study)
Note "3 Array(s) found"
#EndIf - You can also set a minimum alert priority with the "%Priority" equate.
It will only respond to log messages prefixed with a digit equal or above
that priority. For example, in:
Note "4(FuncRec.FKCCIC And &H040000) <> 0"
...the prefix "4" is the message's priority level. - It marks the output file with whatever is assigned to the "$StudyMark"
equate to help locate any discovered items. The default value is "@@@: ".
Notes on the Program:
- The code retains many names and comments from the ReactOS code
it was derived from which may be misleading. - Information about a few parts of the format was unavailable when
this was written, resulting in some missing details. - Arrows ( ==> ) are used to indicate what offset values point to.
- Almost all values are in hex format, including those with leading
zeros, and those containing any non-decimal characters (A, B, C, D,
E or F). - A double equals sign ( "==" ) is used to show decimal equivalents
of hex values. - It only dumps the "MSFT" format files for now (no "SLTG")...
- Values of "FFFFFFFF" ( -1 ) are generally invalid, but are often
included in the dumps. - An EXE or DLL file can (but rarely does) contain multiple TypeLib
resources. This program only dumps the first one it finds. - A dump file is about five to ten times the size of the original
TypeLib data.
Notes on the Format:
- Array descriptors only exist for arrays with element counts specified
- Duplicate functions have duplicate names and IDs, plus (invalid)
offsets of -1 for their parameter names. They are (presumably) expected
to be copied from the other (identical) function.
All the code and text of "TheirCorp's Type Library Dumper" is GPL
licensed by TheirCorp 2008.
TheirCorp's SourceForge project includes:- API Helper --- a code generator for the Win32 API
- BinEditPlus --- a decompiler and more
- ComHelper --- a code generator for the COM programming
- "Flex" --- an editor with novel features
- GDI Debug --- catches programming errors that could lead
to resource leaks - Import Monitor --- (an API hook) Intercepts and monitors
calls to imported functions - Intricately Mergeable Templates
- Jellyfish Pro enhancer plugin (adds drag-and-drop and more..)
- TheirEdit --- an editor for PowerBASIC code
- TheirNote --- a KeyNote clone
- TheirSheet --- a spreadsheet
- SrcFrmt --- a source code formatter
- Tooltipper --- a tooltip code generator
PowerBASIC article in Wikipedia
Comment