Here you'll find the sixth release of the Trek.exe IDB:
I used IDA Pro Freeware 5.0 (http://www.hex-rays.com/idapro/idadownfreeware.htm), and the Trek.exe from the Main Multi installer, the one with the no-CD patch.Last updated: 22-May-2012: http://sourceforge.net/projects/botftrekidb/files/
Code: Select all
Trek.exe Size: 1781248 bytes, MD5 sum: 483448abf30f84d19c7a5b59b0536935
What I've done:
- Cleaned up IDA's auto-analysis, fixing almost all problems in the code analysis.
- Cleaned up much of the data section.
- Labelled most functions with prefixes indicating the source code files they belong to. Most functions have names like AI_AIEmpire_407020, indicating it originally came from AI/AIEmpire.c
- Given some functions proper names like System_Pref_ReadPrefs, Game_Borders_Calculate, etc.
- Identified most C library functions that IDA missed, like malloc, fopen, etc. These are marked with L in the functions list.
- Identified many functions related to the 3D subsystem.
- Entered function signatures for most library functions, the MPR library (courtesy of Flocke), MSS32.DLL (Miles' Sound System), the SmartHeap library, all functions from system/memory.c, gdllist.c, hash.c, gheap.c, and others. (These functions are marked with T in the functions list, T meaning Type information).
- Entered numerous data structures, and labelled many global variables.
- Flagged any functions called by library functions as library functions themselves (marked with L in the functions list). You can ignore these functions.
- Flagged many functions as static (marked with S in the functions list). This means they are only called within their own module (i.e. they are private). Note I've only partially completed my labelling of static functions.
- Functions coded in C++ have the letters CPP in their name; most of Trek was coded in C, but some C++ was used.
Where to start
Open up the database with IDA, and click on the Functions tab. You'll see most functions have been categorized.
Some functions have also been properly labelled. You should be able to locate code of interest from there.
Functions marked with L (Library function) or S (Static function) are less interesting than other functions.