• Probleme
  • Access Violation mit ASuite und Probleme mit dem "Ausführen Als" unter Windows 7 X64

  • [gelöscht]

  • Bearbeitet
Hallo Kai ...

du hörst es bestimmt oft, aber SURun ist echt ein nettes Stück Software.

Nun zu meinen Problemen
Ich nutze Windows 7 X64 -> daher auch die aktuelle Beta 1209b7a

Dazu Asuite 1.52 (bzw. Liberkey Suite) als Programmstarter für eine Menge portabler Software - die ich ungerne fest im System installiere ... so unter anderem CCleaner.


Jetzt gibt es diverse Szenarien.


1. Option "Starte ausführen als - durch SURun ersetzen" ist deaktiviert.

Es sind keine "Programmeinstellungen gesetzt".

SURun hat bei Programmstart keinen Einfluss ... es wird lediglich im Kontextmenü des Explorers eine Option "Starte als Administrator" angezeigt bei der SURun den Programmstart per Admin steuert.


2. Option "Starte ausführen als - durch SURun ersetzen" ist deaktiviert.
Starte ich jetzt CCleaner einmal als "Admin" und übernehme eine Regel für das Programm so funktioniert es auch aus dem Explorer heraus.

Starte ich die Software jetzt aus ASuite als Programmstarter so gibt mir Windows eine "Access Violation" Fehlermeldung heraus (siehe Screenshot)




Das ist der aktuell halbwegs funktionierende Modus. Nur diese Access Violation ist halt unglücklich.


2. Option "Starte ausführen als - durch SURun ersetzen" ist aktiviert.
Es gibt keine Regel für CCleaner in SURun

CCleaner (portable) über die Explorer aufrufen (Doppelklick)- Es erscheint eine Fehlermeldung, dass der Datei keine Anwendung zugeordnet ist.



CCleaner über die Explorer aufrufen (Rechtsklick "Ausführen Als")- Es erscheint ein SURun Fenster zur Auswahl des Benutzers - Danach eine Fehlermeldung "der Datei sei keine Anwendung zugeordnet"



CCleaner über die Explorer aufrufen (Rechtsklick "Starte als Administrator") - Es erscheint ein SURun Fenster - danach funktioniert die Anwendung. ?!?


3. Option "Starte ausführen als - durch SURun ersetzen" ist aktiviert.
Es gibt die Regel für CCleaner in SURun

CCleaner per Doppelklick gestartet funktioniert einwandfrei.
CCleaner per ""Ausführen als" gestartet - Fehlermeldung keine Anwendung zugeordnet"
CCleaner durch Asuite heraus gestartet - Access Violation Fehler.


4. Starte ich jetzt Ein anderes Programm aus Asuite heraus - bei dem Administrative Rechte benötigt werden - so gibt es diese Fehlermeldung



Der Portablizer .. wird von manchen Programmen benötigt um Schreibvorgänge in die Windows Registry abzufangen und in den Programmordner umzuleiten ... Es wird vor dem Programm gestartet

Als Folge dessen werden alle weiteren Programm aus Asuite (Liberkey) heraus mit Admin - Rechten gestartet - sofern Sie das Portablizier verwenden.

Programme die den Portablizier nicht verwenden können nicht mehr gestartet werden.


Unterm Strich steht leider die Erkenntnis: SURuns Option mit dem "Ausführen als" kann in dieser Form in der Kombination mit ASuite bzw. Liberkey nicht genutzt werden.

SURuns ohne "Ausführen als" funktioniert nur mit unglücklicher Fehlermeldung in Verbindung mit einem Alternativen Programmstarter ... ASuite

mfg spotting
Nachdem ich das getestet habe, mehr... aber zunächst:
* Funktioniert das ohne GPF mit SuRun 1209ß7 (ohne "a")?
* Sind beide Programmfilter an?
* Wenn nur "Programmstarts der Windows Benutzeroberfläche filtern" an ist, funktioniert es dann?
* Wenn der Portablizer in der Ausnahmen-Liste steht, geht das ohne GPF?
  • [gelöscht]

  • Bearbeitet
Alter Schwede - bekommst du einen Elektrischen Schlag wenn jmd. hier etwas schreibt?


OK ... die Situation ist etwas schwierig.


1. ...
2. Beide Programmfilter sind an
3. Nein
4. Nein

soviel zur Version 1209b7a

dann ein "Downgrade von SURun zur Beta 7 ohne "a"

jetzt habe ich ein Problem.

der Portablizer startet gar nicht mehr.

Liberkey neu installiert -

der Portablizer startet gar nicht. Mist.

... jetzt gibt es eine reine Deinstallation von SURun sowie eine reine Deinstallation von Liberkey ... bevor ich erst mit Liberkey die Funktionalität prüfe. ...

Besteht die Möglichkeit, dass SURun Einstellungen einer vorherigen Installation übernimmt und damit ein ändern der Einstellungen nicht mehr erlaubt?


nun, was möchte ich erreichen -

Liberkey als Schaltzentrale für Portable programme ... jedoch nur dann mit UAC - Abfrage wenn das zu startende Programm wie z.B. CCleaner das auch benötigt. Das bedeuted, dass nicht der Portablizer die Rechte bekommt sondern dass Programm dass durch den Portablizer aufgerufen wird ...


Es gibt nacher nochmal ein Update.
  • [gelöscht]

  • Bearbeitet
Zwischenstatus.

1. Liberkey gelöscht.
2. SURun deinstalliert - Option bei "Einstellungen beibehalten" nicht gewählt.

Computer neu gestartet

2. Liberkey Setup (Extraktionsdatei) neu gestartet, diverse Programmupdates geladen.
Portablizer funktioniert nicht.

Ich kann keines der Liberkey Programme ausführen - unabhängig ob Admin - Rechte benötigt werden oder nicht.

3. Liberkey Ordner umbenannt (ist ja schließlich eine Portable Anwendung)
> Funktioniert wieder.

Die UAC Abfrage von Seiten Windows kommt wenn sie kommen muss ... also hab ich jetzt wieder den Stand vor der ersten SURun installation.

Daher erneut die Frage - bleiben SURun Einstellungen im System nach einer Deinstallation?
Kann es sein, dass der Portablizer im Filter gelandet ist ... und jetzt aus eben diesem Verzeichnis nicht mehr gestartet werden kann?

gruß spotting ...
  • [gelöscht]

  • Bearbeitet
So, jetzt das letzte Update ...

SURun 1209b7 (ohne "a") installiert.

Testreihe 1.

-> Keine Einstellungen geändert.
(beide Programmfilter sind an, "Ausführen Als" ... ist nicht ausgewählt)


1. CCleaner über die Windows Shell (Doppelklick) gestartet - SURun schaltet sich NICHT ein.

2. CCleaner über die Windows Shell (Rechtsklick - starte als Administrator) gestartet - SURun verwaltet die Einstellung. Regel gespeichert.

3. CCleaner über die Windows Shell (Rechtsklick - starte als Administrator) gestartet - SURun verwaltet die Einstellung. Regel gespeichert.

4. CCleaner über die Windows Shell (Rechtsklick - starte als Administrator) gestartet - SURun greift auf die Regel zurück, CCleaner wird blind gestartet.

5. CCleaner über Asuite (Liberkey) gestartet - Windows UAC - Abfrage kommt.

6. CCleaner über den Portablizer durch ASuite gestartet - Windows UAC - Abfrage kommt.


Testreihe B

(beide Programmfilter sind aus, "Ausführen Als" ... ist nicht ausgewählt)

Exakt das gleiche Verhalten. wie in Testreihe A ... getestet mit Defraggler

Ich habe so den Verdacht, als würden diese Optionen bei mir keine Auswirkung zeigen.

Testreihe C
(beide Programmfilter sind an, "Ausführen Als" ... ist ausgewählt)

Kein Programm kann mehr gestartet werden (Doppelklick). Es erscheint immer diese Fehlermeldung:


Ein Rechtsklick auf das Programm - Starte als Admin - funktioniert.

Testreihe D

(Programmfilter Windows Shell an - Andere Programme ist aus. "Ausführen Als" ... ist ausgewählt)

Jetzt wird es interessant.

Defragler kann mit Adminrechten (rechtsklick starte als admin) einwandfrei starten.
Auch ein Doppelklick funktioniert - wenn auch dann ein Windows UAC Fenster erscheint anstelle des SURun Fensters.
Defraggler über ASuite funktioniert auch mit der Windows UAC

CCleaner gibt per Doppelklick eine bekannte Fehlermeldung aus.
Rechtsklick - starte als Admin hingegen funktioniert.
CCleaner über die ASuite Oberfläche gestartet funktioniert nicht.


Testreihe E
Windows Shell - Filter deaktiviert ... der andere ist an - "Ausführen als" ist nicht ausgewählt.
Exakt das gleiche Verhalten wie zuvor in Testreihe D ...


ich bin verwirrt.
Ich habe getestet:

RunAs:
Kurz: Das Ersetzen von "Ausführen als..." durch SuRuns "/RunAs" funktioniert nicht in Win7. Egal wie.
Lang: Zu jeder Datei steht in der Registry, was zu tun ist, wenn man "was" machen will. "was" kann "print", "open" uswusf. aber auch "runas" sein. Unter Windows ab Vista hat Explorer das "was" "runas" selbst behandelt. Um "Ausführen als..." ersetzen zu können, muss SuRun also den "runas" Key in der Registry löschen und einen eigenen erstellen, der den Kontext-Menü-Eintrag "Ausführen als..." bekommt ("RunAsSuRun"). Unter Windows 7 scheint das allerdings nicht zu funktionieren. Ich habe eben auch von Hand den originalen "runas"-Key verändert und dasselbe Ergebnis bekommen. UAC und SuRun starten sich scheinbar wechselseitig, bis man auf NEIN/Abbrechen klickt.
Also: RunAs lässt unter Windows 7 sich bisher nicht durch SuRun ersetzen.

Automagie
Nun kann man ja mit aktivem Programmfilter das Ausführen von Programmen abfangen und diese automatisch administrativ starten. Das habe ich mal für ccleaner gemacht.

SuRun startet seitdem ccleaner brav administrativ und danach kommt das GPF:
* Setzt man den automagischen start auf den portabke loader "<LiberKey>\Apps\CCleaner\CCleanerLKL.exe", bekommt man das GPF in ASuite
* Setzt man den automagischen start auf das programm selbst "<LiberKey>\Apps\CCleaner\App\CCleaner\CCleaner.exe", crasht Portabilizer

Ich vermute, dass liegt daran, dass SuRun den Token des gestarteten Prozesses gegen Zugriffe des eingeschränkten Benutzers schützt. Dadurch bekommt entweder ASuite auf den ccleaner-Loader oder Portabilizer auf ccleaner keinen Zugriff und crasht.

[indent]Normaler Weise hat ein Programm, das ein anderes startet, Vollzugriff auf dessen Token, SuRun gibt aber einen Token zurück, auf den man nur SYNCHRONIZE Zugriff hat. Damit kann der Aufrufer keine feindlichen Threads in das administrative Programm injizieren oder dessen Speicher verändern.[/indent]
  • [gelöscht]

  • Bearbeitet
DANKE

Aber ... Warum funktioniert bei mir in der Windows Shell (Also aus der Explorer.exe heraus) der Doppelklick auf die "CCleaner.exe" nicht mit SuRun?

Dass ich den Start - und die Weitergabe über Liberkey / Asuite nicht anwenden werden kann habe ich mir schon gedacht. Aber die einfache Ausführung der Exe Datei aus der Shell heraus sollte doch möglich sein.

Oder verstehe ich SuRun in dieser Hinsicht nicht richtig?
Doch, doch... hier geht das auch einwandfrei.

Seit Windows Vista funktioniert SuRun eigentlich nur vernünftig, wenn man beide Hooks an macht.
Dann musst Du "<LiberKey>\Apps\CCleaner\App\CCleaner\CCleaner.exe" als immer automatisch mit gehobenen Rechten starten in Deine Programmliste aufnehmen (oder "Starte als Administrator...", beide Häckchen setzen).

Dann geht das hier automatisch unter Win7x64.
  • [gelöscht]

  • Bearbeitet
Also mal der Reihe nach ...

Auf der einen Seite steht das Ausführen von Programmen aus ASuite. - Problematisch, solange SURun Asuite nicht als "Starter" erkennt.

Auf der zweiten Seite steht das Ausführen von Programmen aus ASuite - die wiederum ihrerseits Programme starten ... also über den Portablizer. Da gibt es ein Problem



Auf der dritten Seite steht das Ausführen von Programmen aus dem Windows Explorer heraus.

bleiben wir erstmal nur bei Punkt 3.

Doppelklick direkt auf die Exe - Datei ruft dieses Fenster auf


(nur als Beispiel - bei mir ist es die CCleaner.exe ... Firefox würde keine Rechte von mir bekommen)


Rechtsklick auf die Exe (Starte als Administrator) ruft dieses Fenster auf.



Aktiviere ich beide Optionen in diesem Dialog sollte ich dieses Fenster doch nicht mehr wieder sehen.


Klicke ich jetzt erneut auf das Programm Rechtsklick auf die Exe (Starte als Administrator) wird das Programm direkt mit Admin - Rechten gestartet.

Das funktioniert. Und jetzt

Doppelklick direkt auf die Exe - Datei ruft trotzdem wieder dieses Fenster auf



Kann es sein, dass dies nicht funktioniert weil ich die Explorer.exe im Windows Verzeichnis angepasst habe (habe den Startup Orb verändert)?

gruß und ein schönes WE
spotting

PS - dein Support ist super.
Falls das Programm per manifest so markiert ist, dass es gehobene Rechte braucht, kann es sein, das UAC vor SuRun dran kommt, also fragt, bevor SuRun eingreifen kann.

Hast Du "Versuche zu erkennen, ob unbekannte Programme administrative Rechte benötigen." aktiviert?
  • [gelöscht]

  • Bearbeitet
UPDATE

großes UPDATE

folgendes ist passiert.

Bluescreen b3 Win32K.Sys

Ursache ... Schätzungsweise beim Test eines Audio Players, der wurde gerade gestartet.
---

tja - manchmal ist es auch ganz gut den bsod zu sehen - war in 3 Monaten Windows 7 jetzt das dritte mal ... so oft kam das in den letzten drei Jahren mit XP nicht.
---

Nach dem Neustart funktioniert es jetzt bei mir so wie bei dir.

Doppelklick auf die CCleaner.Exe - Programm startet direkt mit Admin Rechten.

Und nicht nur das - Doppelklick auf die CCleanerLKL.EXE (also die Ausführung zuerst mit Portablizer) - wenn der Portablizer als Filter eingetragen ist funktioniert auch.

ABER

Ein starten der CCleaner.exe aus ASuite heraus (manuell die Exe Datei per Drag and Drop aus dem Explorer in Asuite eingeführt) führt zu dem im Startpost angegebenen Access Violation.

Ein starten der CCleanerLKL.exe aus Asuite heraus lasst den Portablizer abstürzen.

Es scheint also ein Problem mit dem Startaufruf durch Asuite zu geben.
spotting wrote: Ein starten der CCleaner.exe aus ASuite heraus (manuell die Exe Datei per Drag and Drop aus dem Explorer in Asuite eingeführt) führt zu dem im Startpost angegebenen Access Violation.

Ein starten der CCleanerLKL.exe aus Asuite heraus lasst den Portablizer abstürzen.

Es scheint also ein Problem mit dem Startaufruf durch Asuite zu geben.
So, jetzt haben wir das gleiche Bild.

Ich habe das eben noch mit ASuite 1.52 direkt unter XP x32 und Win7 x32 probiert: Kein Absturz.
In XPx64 und Vista x64 schmiert ASuite allerdings ab.

ASuite ist ein x32 Programm.

Da scheint etwas mit dem Abfangen von ShellExecute/CreateProcess im 32Bit Subsystem in x64 nicht zu stimmen...

Muss mal suchen, was. Aber nicht mehr heute.
Nach weiterem Suchen: Das Ganze hat nichst mit ASuite zu tun!

Ich habe ein kleines x32 Programm geschrieben, dass per ShellExecute eine Anwendung startet, die von SuRun mit gehobenen Rechten gestartet wird und: Crash!

Die Windows Shell crasht.

Weiter bin ich aber noch nicht gekommen, als:
Hast Du ein 32Bit Programm und ein 64Bit Windows und das 32Bit Programm startet ein anderes Programm, das von SuRun hinterrücks mit gehobenen Rechten gestartet wird, dann crasht die Shell im Aufruf von ShellExecuteEx.
  • [gelöscht]

  • Bearbeitet
Also hängt dieses Problem "direkt" mit SuRun zusammen ...

schön zu lesen, dass du da weiter dran arbeitest. Ich werde auch weiter hier rein sehen und würde dir helfen, wenn ich könnte. Musst nur sagen, was ich machen kann.
13 Tage später
SuRun kann ShellExecute offenbar nicht sicher abfangen.
Dadurch wird SuRun erst aktiv, wenn die Shell aus ShellExecute heraus "CreateProcess" aufruft.
Das schmiert aber unter Wow32 ab, weil Windows x64 mit dem "Umbiegen" nicht zurechtkommt.
Ich werde versuchen, statt den IAT-Hook inline Hooks (wie z.B. MS Detours) zu verwenden.
Das kann allerdings noch dauern. (Hab wenig Freizeit im Moment)
Eine Antwort schreiben…
Impressum, Datenschutz