The previous post about getting cabs out of exe's got me thinking. I'm already working for a while to build tools to get ALL the information out of CE applications, regardless of how they are packaged.
In case of setup.exes there are mostly 3 cases:
1. The .exe can be opened as a zip archive, in this case the contents can be extracted and usually cabs are in there
2. The .exe is an installshield installer, in this case, unshield can be used to extract the cabs
3. The .exe is some proprietary installer, this is where it gets harder.
For automating extracting the .exes, my thinking was as follows:
We have a VirtualBox VM, with a minimal Windows XP install. Installed are ActiveSync and an FTP server, both are started. There's also a snapshot which always puts the entire machine in the same initial state.
The workflow for extracting the data from my application would be.
1. The app starts the VM if not already started.
2. The VM is set to the initial state via snapshot restore.
3. The .exe file is uploaded via FTP
4. The .exe file is executed and through sending simulated keystrokes via remote commands, hopefully gets to a point where the files are extracted.
5. As soon as files are extracted, the application downloads them via FTP from the ActiveSync directory.
Please let me know what you think of this approach, I'm open to better ideas
My code so far is here, it's a bit of a mess, but I'm making good progress:
https://github.com/karpour/windows-ce-repo