tcbw.net

In for the long haul

User Tools

Site Tools


ta:thirdparty_addons:ta_consistency_checker

TA Consistency Checker

This program searches for TA installation folders and tries to identify the exact state by comparing the files in the folders against checksums generated from well defined reference installations. The main purpose of the program is to check out whether the files currently residing in a particular TA folder are consistent with a given version. For example, the program may be helpful to track down the reason why CDE's 3.1c patch installer refuses to apply the patch.

Processing order

The check process is split into three parts:

  1. Load the MD5 reference set definitions from the modinfo sub folder. Every time you click on the Run Check button the sets are re-loaded from the disk which allows to change/add sets between check runs without re-starting the application.
  2. Search for potential TA installation folders. A folder is considered a potential TA folder if a file named totala.exe can be found in it. The backup folders created by the installers of TA:CC and TA:BT and folders with the system attribute set are excluded from the search process.
  3. Check the files in each potential TA folder found against the MD5 set definitions. The folders are processed in the order they have been found. The processing order of the MD5 sets is determined by their size: a set with more file fingerprints is considered to be more precise than one sporting less entries, thus it's checked against a folder before all sets with less entries.
    In normal processing mode a check of a potential TA folder stops as soon as the first set in the processing order fits the files in the folder completely. See the options explanation below to learn how to change this behavior. The check of a folder ends in any case once all available sets have been exhausted.
    Once a check for a particular potential TA folder is finished an entry with the folder name will appear in the 'Installations found' list box. Selecting such an entry will update the 'Description' and 'Report' windows below, showing the detailed check results for this folder. You can select entries immediately after they appear, the program will continue to check the remaining folders in the background.
    If you enable the option to continue checking against the remaining sets even after a folder fit the first set in the processing order then multiple entries of the same folder may appear in the 'Installations found' list box, one for each alternative set that fit the folder as well. The report for these entries is shared between them meaning that they will all show the same report that gets constantly updated with each alternative set that fit the folder too.

Interactive options

On the GUI of the program you have to options to influence the check process:

  • If an installation fit a set then check it against the remaining sets as well
    This may help if the check result comes up with an unexpected version. Sets may be defined ambiguous in way that one set is a super set of another. The program tries to avoid this kind of ambiguity by processing the larger sets before the smaller ones though. So a real ambiguity issue should only exist for the rare case that two set definitions with the same number of files but different file names fit both the contents of a single TA folder.
    If you enable the option described below this option becomes mandatory and gets automatically enabled.
  • File missing in set passes check
    This may help if a folder couldn't be identified at all. In normal check mode any file of a set that can't be found in a potential TA folder is a reason to consider the check against this set having failed. With this option enabled a file that is actually part of a set but was not found in a TA folder is considered existing with a MD5 checksum fitting the set definition. The effect of this option is that each set definition gets reduced to the files actually existing in the folder currently being checked. Since enabling this option increases the probability for ambiguities between set definitions considerable the option described above gets enabled with it mandatory.

Adding custom file sets

You can add your own MD5 fingerprint sets (for example generated from your own TA MOD files) by storing a new MD5 set definition text file into the modinfo sub folder. The file structure is as follows:

modid=<n> 
modname=<MOD name displayed in GUI>
modcomment=<MOD comment displayed in GUI>
<filepath 1>+<MD5 fingerprint file1>
<filepath 2>+<MD5 fingerprint file2>

...

<filepath n>+<MD5 fingerprint filen>
  • The modid value <n> must be unique across all definition files in the modinfo folder.
  • You can tell the GUI where to wrap the comment string by placing the line wrap tag <br> at any position in the <MOD comment displayed in GUI> value.
  • The modcomment line is followed by one or more lines with filepath/MD5 fingerprint pairs. The + character serves as field separator.
  • <filepath > can be a stand alone file name, a relative file path or an absolute file path.

It would be a quite tedious task to generate the MD5 fingerprints for a new file set definition one by one, especially when you had to traverse a folder structure as well. An easy way to create MD5 fingerprints for all files in a folder structure is provided by the tool md5setcheck.exe. Run md5setcheck.exe in a Windows cmd.exe shell window without any parameters to make it output its call syntax help info, it should be self explanatory.

Installation

TAConsistencyChecker is a Windows GUI application that comes without an installer. You need to copy all files required to run it manually to your computer:

  1. Download the ZIP archive containing the taconsistencychecker files.
  2. The zip archive is a self extracting one so after having it downloaded just click on the ZIP archive file to start the unpack process. I recommend to unpack the files into a dedicated sub folder (the ZIP self extractor suggests C:\tatools\TAConsistencyChecker).

To run TAConsistencyChecker open a Windows File Explorer, navigate to the extraction folder and double click on the taconsistencychecker.exe file.

Note that the MODLOCATOR.DLL must reside in the same folder as TAConsistencyChecker.exe otherwise the program will refuse to run. Also TAConsistencyChecker.exe assumes that the MD5 reference set files are to be found in a sub folder named modinfo. So if you decide to move the DLL and EXE files then move the modinfo sub folder to the new location as well.

Call syntax

taconsistencychecker

Since the program is supposed to run interactively it doesn't sport any command line parameters right now.

Program exit codes

Because the program is an interactive GUI application it doesn't return any meaningful exit codes yet.

Version overview

The GUI front end TAConsistencyChecker.exe and MODLOATOR.DLL are two independent software modules, therefore the version list isn't ordered by versions but build dates.

If you have no access to a MD5 checksum computing tool you can download md5.exe. The md5.exe sources are also available.

2012-06-13

Binary MODLOCATOR.DLL
Version 3,0,0,0
MD5 fingerprint c316b1218fd671a36f2d9096a27a1f8a
  • Project transition to Microsoft Visual Studio 2010 C++.
  • Binary is now linked against static versions of Microsoft's CRT.
  • When searching for totala.exe files any folder (and its sub folders) that can't be accessed for whatever reason is now silently excluded from the search.

2004-09-10

Binary MODLOCATOR.DLL
Version 2,0,0,2
MD5 fingerprint 2dc51f3851ef16d46b70b9d46dfa3137
  • Encountering a folders the Windows account the MODLOCATOR.DLL code is executed under has no access rights to no longer causes the front end program TAConsistencyChecker.exe to abort. A thank you goes to Abimilech who found this bug and was so kind to test the updated DLL version also.

2004-04-16

Binary MODLOCATOR.DLL
Version 2,0,0,0
MD5 fingerprint 2764f12bbd569ebd0e287dd33fe01dba
  • Initial public build.

2004-04-14

Binary TAConsistencyChecker.exe
Version 1,0,0,0
MD5 fingerprint 4dedb96578d489b077d017ad4ec157f6
  • Initial public build.

Source code

The TAConsistencyChecker source code and the MODLOCATOR source code is available for download.

ta/thirdparty_addons/ta_consistency_checker.txt · Last modified: UTC 2014-10-07 00:50 by tcbw