InnoSetup analysieren bzw. auseinandernehmen


Viele Installationsprogramme sind mit Hilfe von InnoSetup (http://www.jrsoftware.org/) erstellt. Gerade hatte ich das Problem, dass ein Installationsprogramm Schwierigkeiten machte und aufgrund eines schwächelnden Internetdienstes eine Installation nicht möglich war. Um der Sache auf die Spur zu kommen, musste zunächst die Installations-EXE-Datei mittels Innounp (https://sourceforge.net/projects/innounp/) was für Inno-Unpacker steht, entpackt werden.

..\innounp.exe -x -m ..\ProblemSetup.exe

Es werden automatisch Unterverzeichnisse mit den im Setup-Programm enthaltenen Dateien angelegt. Die Verzeichnis-Struktur sieht z. B. so aus:

embedded
{code_Get_InstPath}
{localappdata}
{tmp}
{win}

Dabei enthält das Verzeichnis embedded die Datei CompiledCode.bin welche ein mit RemObject Pascal Script Engine erstellte Datei ist (https://www.remobjects.com/ps.aspx). Möchte man nun verstehen, was in CompiledCode.bin abgeht, kann einem ein kleiner Pascal Script Disassembler mit Namen IFPSTools helfen: https://github.com/Wack0/IFPSTools, er benötigt aber eine PHP-Runtime wie z. B. https://windows.php.net/download#php-7.3. Danach kann man einfach z. B.

.\php.exe .\DisIFPS.php ‚..\embedded\CompiledCode.bin‘ .\diss.txt

aufrufen und man erhält in diss.txt den Code von CompiledCode.bin. Der Code ist zwar etwas gewöhnungsbedürftig zu lesen aber die Struktur und Vorgehensweise kann doch daraus gelesen werden. Wer Pascalscript besser verstehen will, der sollte sich dies hier durchschauen: https://github.com/remobjects/pascalscript.

Eine Alternative zu InnoUnp sei noch genannt: http://constexpr.org/innoextract. Diese Version läuft unter Linux.

Werbeanzeigen

Eine Antwort to “InnoSetup analysieren bzw. auseinandernehmen”

  1. Quirel Says:

    Für VSCode gibt es übrigens InnoSetup Unterstützung: https://github.com/idleberg/vscode-innosetup

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s


%d Bloggern gefällt das: