Open dscharrer opened 11 years ago
I don't think we need an interpreter for the scripts. I see innoextract more as a reverse engineering tool than a cross platform Inno Setup. Getting all the data and information out of an installer package is necessary for getting the program to work. Actually creating the registry keys and shortcuts can easily be done by hand or with a hacked together shell script.
Therefore I suggest to focus more on reliably decompiling the scripts than a working interpreter. Just adding an option to extract the bytecode could bring us closer to the objective, because it allows people (like me) to work on it, without having to dive into the innoextract codebase.
I'm using InnoExtractor, a payware GUI for InnoUnp. One of the features it offers is automatic disassembly of the code . I think, it uses one of the disassemblers offered by InnoUnp. However, none of those disassemblers (and not even InnoExtractor itself, which is why I assume they're using one of those) are able to disassemble Inno Setup 6 code. IFPSTools (MIT License), however, works. Hopefully, this will help. These little things, mentioned in the OP, are the only things keeping me (and, I'm sure, other people as well) from moving to innoextract completely.
For one, there are also different kinds of entries that should be extracted:
Besides, there have been requests to access/use the embedded scripts (stored as compiled bytecode).
First, we might want a rudimentary interpreter for the scripts. This is needed because scripts can be used to compute filenames. But I don't have any intention of simulating a complete windows environment (at that point you may as well use Wine), so there will always be some limitations.
Further, the scripts may contain information useful to other tools calling innoextract. One approach would be to decompile the scripts like innounp does.