Seite 2 von 3

Verfasst: 22.02.2007 23:25
von roherter
Fertige Dateien
Im Internet haben sich mit dem Startschuss von Windows XP zahlreiche Webseite entwickelt, die sich mit nichts Anderem als der Modifikation des Betriebssystems befassen. Eine dieser Seiten ist auch Themexp.org, auf der es aktuell ungefähr 500 fertige Logonscreens für Windows XP gibt. Es hat sich eingebürgert, dass immer gleich die komplette logonui.exe in gepackter Form zum Download angeboten wird, da man so den neuen Logonscreen mit Hilfe der zuvor beschriebenen Software austauschen kann. Weiterhin kann man von den fertigen Logonscreens einiges lernen, um so den eigenen Logonscreen weiter zu verbessern.
Das steht auch in dem link - du must nur die logongui.exe anbieten

Verfasst: 22.02.2007 23:32
von TomS
Ich hab dir doch den Schlüssel genannt.

Es ist weder erlaubt die logonui.exe zu veränder (eigentlich) noch sie weiter zu geben.
Die Datei ist Teil von WinXP und steht damit 100% unter dem Copyright von MS. Darauf sollte bei der Installation von StyleXP/oder in der Hilfe eigentlich hingewiesen werden.

Verfasst: 22.02.2007 23:36
von Tsuki-Namida
@roherter

ja schon aber sie haben auch eine installation gemacht für das loggon skin
ich war eben auf der seite und habe eins runtergeladen und habe nach geschaut....

@TomS
ich hatte ein legales tool dafür ;)

Verfasst: 22.02.2007 23:36
von roherter
Wenn es nicht erlaubt wäre würde es diese Logonscreens nicht zum Download geben.
Da wäre Microsoft wohl schon gegen vorgegangen. :o

Verfasst: 22.02.2007 23:44
von TomS
Die Dateien, die man da runterlädt sind keine modifizierten logonui.exe
Das sind Zipdateien. Die werden von StyleXP geöffnet und dann sonstwo reinkopiert, und meinetwegen isses die logonui.exe

Naja. Ich hab meinen ohne code injection in MS-Software geändert. Und euch auch gesagt, wie's geht.

btw: Weißt du schon, wie du die logonui.exe ersetzen willst, während das system läuft?

Verfasst: 22.02.2007 23:51
von roherter
btw: Weißt du schon, wie du die logonui.exe ersetzen willst, während das system läuft?
Soweit ich weiß ist das nicht möglich der rechner muß neugestartet werden und dann wird sie ersetzt denke ich mal.

Verfasst: 22.02.2007 23:56
von Tsuki-Namida
ja aber wenn syle xp das loggon skin setzt muss der rechner auch nicht neu gestartet werden.... im gegenteil man kann sich aus dem system ausloggen und man hat sofort das bild was man sich gesetzt hat...

Verfasst: 23.02.2007 00:17
von TomS
Es muss nicht neugestartet werden.
Hab da nen wunderschönen vbs-code

Code: Alles auswählen

Set MyShell = Wscript.CreateObject("Wscript.Shell")
Set MyFiles = WScript.CreateObject("Scripting.FileSystemObject")
Set c = MyShell.Environment("PROCESS")
	windir = c("windir")
Set arg=wscript.arguments
On Error Resume Next

'Dateipfad/Namen aus dem Argument des Scripts auslesen
Dateipfad = arg(0)
Dateiname = Myfiles.GetFileName(DateiPfad)

'Überprüfen, ob bereits eine Datei in dieser Session entsperrt wurde
check = MyShell.Regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\pcwUnlockFile")

If check = 1 Then
	'Wenn ja, werden die Einstellungen in der Registry zurückgesetzt
	'Auslesen der Backup-Werte
	Backup1 = MyShell.Regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SourceBak")
	Backup2 = MyShell.Regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\ServiceBak")
	'Quellpfad der Setup-Dateien zurücksetzen
	MyShell.Regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SourcePath", Backup1, "REG_SZ" 
	'Quellpfad der Service-Pack-Dateien zurücksetzen
	MyShell.Regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\ServicePackSourcePath", Backup2, "REG_SZ"
	'Löschen der Backup-Einträge
	MyShell.Regdelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SourceBak" 
	MyShell.Regdelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\ServiceBak"
	'Löschen des Check-Wertes
	MyShell.Regdelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\pcwUnlockFile"
	'Löschen des Autostart-Eintrags
	MyShell.Regdelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\pcwUnlockFile"
Else	
	'Wenn nein, wird die Datei entsperrt
	'Überprüfen, ob die Datei existiert
	If Dateipfad = "" Then
		Fehler = MsgBox("Bitte geben Sie die zu entsperrende Datei inklusive Pfad als Argument beim Aufruf des Scripts an.", 48, "Fehler")
		wscript.quit
	ElseIf not (myfiles.FileExists(Dateipfad)) Then
		Fehler = MsgBox("Die angegebene Datei kann nicht gefunden werden.", 48, "Fehler")
		wscript.quit
	End If
	'Auslesen der Quell-Pfade
	Quelle1 = MyShell.Regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SourcePath")
	Quelle2 = MyShell.Regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\ServicePackSourcePath")
	'Backup des Quellpfades der Setup-Dateien anlegen
	MyShell.Regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SourceBak", Quelle1, "REG_SZ"
	'Backup des Quellpfades der Service-Pack-Dateien anlegen 
	MyShell.Regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\ServiceBak", Quelle2, "REG_SZ"
	'Löschen der Quell-Einträge
	MyShell.Regdelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SourcePath" 
	MyShell.Regdelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\ServicePackSourcePath"
	'Anlegen des Check-Wertes
	MyShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\pcwUnlockFile", 1, "REG_SZ"
	'Pfad des Dllcache-Ordners ermitteln
	Dllcache = MyShell.Regread("Hkey_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\SFCDllCacheDir")
	'Falls leer den Standard-Ordner wählen
	If Dllcache = "" Then Dllcache = windir & "\System32\dllcache"
	If Mid(Dllcache, Len(Dllcache), 1) = "\" Then Dllcache = Mid(Dllcache, 1, Len(Dllcache)-1)
	'Löschen der Backup-Datei aus dem Dllcache-Ordner
	loeschen = MyShell.Run("cmd /c del " & Chr(34) & dllcache & "\" & Dateiname & Chr(34), 0, True)
	'Umbenennen der geschützten Datei
	umbenennen = MyShell.Run("cmd /c ren " & Chr(34) & Dateipfad & Chr(34) & " " & Dateiname & "_Backup", 0, True)
	Err.Clear
	'Versuch, die geschützte Datei zum Schreiben zu öffnen (damit der SFC-Dialog aufpoppt)
	Set Schreibvers = MyFiles.OpenTextFile(Dateipfad & "_Backup", 8, False)
	Schreibvers.Close
	Err.Clear
	'Warten bis Windows sich beschwert
	ZwStopp = MsgBox("Warten Sie, bis Windows Sie auffordert, die Setup-CD einzulegen." & chr(13) & "Klicken Sie dann auf  'A B B R E C H E N'." & chr(13) & "Im nachfolgenden Dialog auf  'J A' ." & chr(13) & "Erscheint kein Dialog innerhalb der nächsten Minute, klicken Sie hier auf OK.", 64, "Bitte warten...")
	'Zurückkopieren der umgenannten Datei in den ursprünglichen Dateinamen
	kopieren = Myfiles.CopyFile(Dateipfad & "_Backup", Dateipfad, True)
	'Autorun-Eintrag setzen
	MyShell.Regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\pcwUnlockFile", wscript.ScriptFullName, "REG_SZ"
	'Warten falls die Datei erneut im Dllcache erscheint, maximal 10 Sekunden
	n=0
	Do
		if (myfiles.FileExists(dllcache & "\" & Dateiname)) Then Exit Do
		Wscript.Sleep(1000)
		n=n+1
	loop until n=10
	'Schlussdialog
	Fertig = MsgBox("Jetzt kann die Datei " & Dateipfad & " bearbeitet werden." & chr(13) & "Danach starten Sie den Rechner neu.", 64, "Fertig")
	'Gegebenenfalls erneutes Löschen der Backup-Datei aus dem Dllcache
	loeschen = MyShell.Run("cmd /c del " & Chr(34) & dllcache & "\" & Dateiname & Chr(34), 0, True)
	MyShell.Run("Explorer /select, " & DateiPfad)
End if
		
Versucht mal zu übersetzen, oder verwendet diese Userlib.

Also wenn man dieses Script mid Parameter pfad zu logonui.exe auf ruft, kann man die exe löschen, überschreiben etc.
Könnt nur passieren, dass dabei der Dialog auftaucht "irgendwas versucht auf eine systemdatei zuzugreifen oder hat es vielleicht schon, legen sie die winxp-setup cd ein um die Datei zu reparieren ..."

Das kann man zwar dank dem script einfach abbrechen, allerdings nervts.

Verfasst: 23.02.2007 12:43
von Tsuki-Namida
okay... übersetzen kann ich noch nicht.... und als lib machen kann ichs erst recht nicht... wäre super wenn mir da jemand hlfen könnte...

Verfasst: 23.02.2007 16:43
von TomS
Nein. Nicht als Lib machen.
Es gibt da ne Lib auf purearea.net, mit der man vbs codes ausführen kann. Also, wenn man quasi grad nicht weiß, wie man sowas mit pb machen könnte, schreibt man einfach in vbs weiter.

Die Lib heißt "MSScriptControl"

Hab sie aber noch nicht ausprobiert.