Page 1 of 1

XAMPP Utilities deconstructed

PostPosted: 08. July 2010 13:11
by BigWetDog
As Oswald announced earlier today here: viewtopic.php?f=16&t=38880&start=15#p162588,
XAMPP for windows has suffered something of a setback. As I understand it since Carsten Wiedmann wouldn't release the source, Kay Vogelgesang faces the unenviable task of basically re-engineering all of the modifications that Heir Wiedmann made.
Some of you may have seem my post on the Tomcat custom JRE issue. In it I did a little process tracing to find out what was going on. Recall I discovered that the path to the JRE had been hard coded in xampp_cli.exe. In a similar thread I found that xampp-control.exe reads a configuration file so that, for example if you are running Apache on a port other than 80, the XCP admin button will open your browser to localhost:xx where xx is the port you've specified.
I'm starting this topic to document my further reverse engineering efforts with the intent that it will be of some use to Kay Vogelgesang. Please, anyone else who has an interest in digging into the internal of the xampp utilities, please feel free to add to, clarify or debate my findings.
My environment for this is Windows Vista (32-bit). The XAMPP suite is on a 16 GB thumb drive, and so I do not have any of the services installed. Initially I'll be using sysinternals tools such as Process Monitor and Process Explorer and later a decompiler.

Re: XAMPP Utilities deconstructed

PostPosted: 08. July 2010 14:02
by BigWetDog
Staring xampp-control.exe reveals that it attempts to load several files in the following order:

1. xampp-control.exe.Local: no information on what this file might be as it doesn't exist in my installation.

2. \xampp.ini: this file has changed to include the new modules added since Kay's last release. See my posts here viewtopic.php?f=16&t=38496#p160648 for more on this file.

3. \php\php.ini: read operation

4. \install\xampp_version.txt: read operation (not sure why this file is needed) I found no reference to it in Kay's original

5. \FileZillaFTP\FileZilla Server.xml: read operation. I suspect this is to determine if the module is present to enable the appropriate buttons

6. \MercuryMail\mercury.ini: same as 5

7. \tomcat\conf\server.xml: same as 5

8. \Secur32.dll: ??

9. \uxtheme.dll: ??

Re: XAMPP Utilities deconstructed

PostPosted: 08. July 2010 14:36
by BigWetDog
Clicking the Start button for Apache launches the following sequence:

1. xampp_cli.exe start apache
2. "C:\xampp\apache\bin\httpd.exe" -f "C:\xampp\apache\conf\httpd.conf" -E "C:\xampp\apache\logs\error.log"