RegSvr32 failed – Invalid access to memory location

Und auf einmal war sie da – Die Meldung ‘LoadLibrary .dll failed’ die nie zuvor gesehen war.

regsvr32

Das Analysieren mit dem Dependency Walker jedoch zeigt keinerlei Probleme mit dieser Datei, denn es handelt sich um eine Sicherheitserweiterung des Betriebssystemes. Die Data Execution Prevention (DEP) ist für diesen Umstand verantwortlich. DEP wurde gegen Viren und andere sicherheitsrelevanten Funktionen entwickelt. Unter anderem wird DEP die Registration von 16-bit COM Objekten verhindern.

In der Repaketierung kann dieses Problem behoben werden, indem die Self-Registration über die Registry-Tabelle durchgeführt wird.
Um die DLL oder OCX Datei wieder registrieren zu können, muss DEP konfiguriert werden. Die Konfiguration zu DEP findet man unter ‘System Properties’ – ‘Performance’.
Unter ‘Data Execution Prevention’ ist die Option ‘Turn on DEP for all programs and services except those I select:’ anzuwählen und die RegSvr32.exe im System32 Ordner zu wählen.

DataExecution Prevention

Mit dieser Einstellung kann nun die Self-Register Information ausgelesen werden und die entsprechende Registration über die Windows Installer Tabellen erfolgen. Auf diese Weise muss bei den Endanwendern keine DEP Konfiguration durchgeführt werden.

Stefan Hotan
A member of the Ontrex SPA

Post Navigation