Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Installation scheint keine Hash-Codes zu prüfen


9 replies to this topic

ts1

ts1
  • Full Members
  • 81 posts

Posted 26 April 2010 - 08:10

Hallo,

wir haben eine IS 2010 Installation mit Network Image Uncompressed und aktiviertem Generate File Hash Values.
Nun begab es sich bei einem Kunden, daß die CD defekt war, bei jedem kopieren (auch manuell per Explorer) wurde eine Datei anders installiert/kopiert. Es handelte sich sogar um eine Schlüsseldatei.
Dummerweise scheint InstallShield das nicht zu merken und scheitert dann beim Update-Versuch mit binären Differenzen.
Haben wir noch etwas vergessen einzustellen?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 27 April 2010 - 18:13

Ich glaube, standardmäßig wird bei der Installation keine CRC Check durchgeführt. Lies mal das Thema "CRC Checking During an Installation" in the MSI Hilfe.

ts1

ts1
  • Full Members
  • 81 posts

Posted 28 April 2010 - 08:53

Ah, Danke!

Edit:
Attribute der File-Tabelle gesetzt, Property gesetzt.
Klappt leider noch nicht.

Anscheinend muß man selbst die CRC erzeugen. Doku: "The installer checks the original CRC stamped into the file"
Und wie bekommen wir die CRC-Werte in die Dateien selbst (die sich damit auch wieder verändern würde)?
Üblich ist doch nur, die CRC in eine separate Liste zu speichern.

Edited by ts1, 28 April 2010 - 14:45.


Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 29 April 2010 - 08:07

Du schreibst ja, dass bei jedem kopieren/installieren die Datein anders kopiert/instaliert wird. Was bedeutet das genau.

QUOTE
wir haben eine IS 2010 Installation mit Network Image Uncompressed und aktiviertem Generate File Hash Values.
Nun begab es sich bei einem Kunden, daß die CD defekt war, bei jedem kopieren (auch manuell per Explorer) wurde eine Datei anders installiert/kopiert. Es handelte sich sogar um eine Schlüsseldatei.
Dummerweise scheint InstallShield das nicht zu merken und scheitert dann beim Update-Versuch mit binären Differenzen.
Haben wir noch etwas vergessen einzustellen


Hat die betroffene Datei denn eine Versionsnummer? Falls das der Fall ist werden die Hash Werte nicht beachtet/verwendet (...for every unversioned file in your build...)

Wenn nach dem Kopieren/Installieten keine identische Kopie auf dem Computer liegt, ist ja auch der Hash Wert dieser Datei anders.
Ergo wird bei der erneuten Installation diese Datei wieder installiert, weil ja der Hash Wert ein anderer ist.

Soweit ich das noch in Erinnerung habe, wird der Hash-Wert ja sowieso erst ausgewertet wenn der Windows-Installer "beschlossen" hat diese Datei zu kopieren. Dann wird an Hand des Hash Wertes geprüft ob die Datei von der Original abweicht (..Windows Installer uses file hashing as a means to detect and eliminate unnecessary file copying..)

ts1

ts1
  • Full Members
  • 81 posts

Posted 29 April 2010 - 08:25

Es handelte sich u.a. um eine versionierte Dll.
Die nachträgliche Erkennung, daß die installierte Datei irgendwie nicht passt, hat auch funktioniert.

Ich hätte nie damit gerechnet, daß der Laufwerks-Controller evtl. Beschädigungen nicht bemerkt, aber wir konnten das Phänomen durch Netviewer-Session nicht nur bei einem Kunden feststellen.
Virus würden wir auch mal ausschliessen, weil wir die Dateien natürlich durch diverse Scanner gejagt haben.
Eine ganze Charge von gepressten CDs scheint recht merkwürdig zu sein.
(Für den Download benutzen wir nur einzige selbstextrahierende Exe, die durch Signatur geschützt ist.)

Mein Wunsch ist es nun, daß Installshield schon beim Installieren Datenfehler erkennt. Ähnlich DOS-Copy mit Verify.
Irgendwas in der Richtung scheint ja schon vorbereitet zu sein. Ich weiß nur noch nicht, wo und wie die CRCs gespeichert werden sollen, damit InstallShield darauf zugreift.

Edited by ts1, 29 April 2010 - 08:26.


Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 30 April 2010 - 07:37

QUOTE
Mein Wunsch ist es nun, daß Installshield schon beim Installieren Datenfehler erkennt. Ähnlich DOS-Copy mit Verify.
Irgendwas in der Richtung scheint ja schon vorbereitet zu sein. Ich weiß nur noch nicht, wo und wie die CRCs gespeichert werden sollen, damit InstallShield darauf zugreift


Meine Erfahrung bei unkomprimierten Setups ist, dass man die unkomprimierten Dateien einfach austauschen kann und das den Windows-Installer "nicht interessiert".

Laut Installshield-Hhilfe werden die Hash Werte bei Dateien mit Versionsnummer nicht berücktsichtigt!

Und bei Dateien ohne Versionsnummer wedern die Hashwerte erst überprüft wenn der Windowsinstaller schon festgestellt hat das die datei kopiert werden muss (..Windows Installer uses file hashing as a means to detect and eliminate unnecessary file copying..) .

Ich gehe davon aus, dass die Hashwerte aus der Tabelle mit den Hashwertern der auf dem System vorhandenen Datei verglichen werden. Insofern sollte dein Wunsch nicht erfüllbar sein...oder weiß wer eine Lösung?



ts1

ts1
  • Full Members
  • 81 posts

Posted 30 April 2010 - 14:00

Bisheriges Ergebnis:

- hat mit Hashwerten nichts zu tun.

- das Attribut (siehe Stefan Krügers Hinweis) darf nur für Dateien gesetzt werden, die einen portable executable header haben. Also für .dll und .exe, nicht für .txt etc., das gäbe "falsche Fehler" bei der Installation.
Dummerweise muß man dafür den direct editor bemühen, die GUI gibt das nicht her.

- ein Linker (z.B. von Visual Studio) schreibt normalerweise automatisch (!) eine Checksumme in den header.
Leider nicht bei jeder extern gelieferten Datei, da muß man das Attribut ggf. wieder löschen.

Jetzt noch msiexec richtig aufrufen, schon klappt's.
Dummerweise aber eben nur für den Bruchteil der Dateien mit pe-header.

Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 03 May 2010 - 13:28

Ups. da habe ich wohl was verwechselt bzw. durcheinander geworfen.
Ich hoffe doch, dass hat dich nicht zu sehr verwirrt wink.gif





ts1

ts1
  • Full Members
  • 81 posts

Posted 03 May 2010 - 14:35

Ich war doch anfangs selber auf dem Holzweg und erwähnte noch, dass Generate File Hash Values aktiviert sei.
Schade, daß es IS nicht darüber macht, das wäre eine Verifikations-Möglichkeit für alle Arten von Dateien.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 May 2010 - 15:35

Das liegt aber nicht in der Macht von InstallShield, denn die eigentliche Installation wird ja von der Windows Installer Engine ausgeführt.