Ergebnis 1 bis 7 von 7
  1. #1
    Fortgeschrittener Avatar von Kitti321
    Registriert seit
    30.06.2010
    Beiträge
    33

    Standard Autostart per Registry

    Hallo, ich versuche gerade per C/C++ Programm einen Eintrag in der Registry zu ersellen. Das Grundgerüst habe ich von einem Mitschüler bekommen, jedoch funktioniert das Ganze bei mir nicht. Da die SuFu nichts gefundne hat hab ich beschlossen mal direkt zu fragen was ich falsch gemacht habe:

    Code:
    #include <iostream>
    #include <windows.h>
    #include <string.h>
    
    using namespace std;
    
    int main(void) //int argc,char *argv[]
    {   char reg_path[MAX_PATH]={0};
        BYTE cString[]="Test1";
        int error=0;
        HKEY hKey;
        HKEY hKey_M = HKEY_LOCAL_MACHINE;
        strcpy(reg_path,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
    
        char c;
        int i=-1;
        do
        {
            i++;
            if(reg_path[i]=='\\' || reg_path[i]==0)
            {
                c=reg_path[i];
                reg_path[i]=0;
                if(RegCreateKeyEx(hKey_M,reg_path,0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0)!=ERROR_SUCCESS)
                {
                    error+=1;
                }
                reg_path[i]=c;
            }
        }while(reg_path[i]!=0);
    
        if(RegSetValueEx(hKey,"EintragsName",0,REG_SZ,cString,6+1) !=ERROR_SUCCESS)
        {
            error+=3;
        }
    
        RegCloseKey(hKey);
        system("PAUSE");
        return error;
    }
    Noch sieht der Code ziemlich wild aus, also bitte nicht wundern
    [B]Meine bescheidenen Kenntnisse
    [S]Gratis FUD Crypter


  2. #2
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Klappt alles. Landet in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Run.

    Vielleicht hast du es nicht als Admin ausgeführt.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  3. #3
    Capt'n Crunch Avatar von hackerking
    Registriert seit
    08.11.2008
    Beiträge
    964

    Standard

    Oder HKEY_CURRENT_USER statt HKEY_LOCAL_MACHINE benutzen.
    Dann wird zwar der Eintrag zwar nur für den aktiven User angelegt, aber es klappt auch ohne Admin Rechte.

  4. #4
    Fortgeschrittener Avatar von Kitti321
    Registriert seit
    30.06.2010
    Beiträge
    33

    Standard

    Das Ausführen mit Administrationsrechten habe ich eigentlich auch versucht, funktioniert hat es aber nicht. Der Eintrag in HKEY_CURRENT_USER funktioniert bei mir jetzt (auch ohne Admin-Rechte).

    Danke für die Hilfe!

    So, hier nochmal das ganze in aufgeräumter Form für alle die das auch noch brauchen:
    Code:
    #include <windows.h>
    #include <string.h>
    #include <stdio.h>
    
    using namespace std;
    
    int main(int agvc, char *argv[])
    {
        char reg_path[MAX_PATH]={0};
        char name[100];
        BYTE cString[100];
        int error=0;
        HKEY hKey;
        HKEY hKey_M = HKEY_CURRENT_USER;
        strcpy(reg_path,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
        if(argv[1])strcpy(name,argv[1]);
        if(argv[2])strcpy((char*)cString,argv[2]);
    
        char c;
        int i=-1;
        do
        {
            i++;
            if(reg_path[i]=='\\' || reg_path[i]==0)
            {
                c=reg_path[i];
                reg_path[i]=0;
                if(RegCreateKeyEx(hKey_M,reg_path,0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0)!=ERROR_SUCCESS)
                {
                    error+=1;
                }
                reg_path[i]=c;
            }
        }while(reg_path[i]!=0);
    
        if(RegSetValueEx(hKey,name,0,REG_SZ,cString,strlen((const char*)cString)+1) !=ERROR_SUCCESS)
        {
            error+=1;
        }
    
        RegCloseKey(hKey);
        return error;
    }
    Übergeben werden Eintragsname und Pfad (jeweils mit \\). Ich hoffe es hilft irgendjemandem
    Geändert von Kitti321 (15.12.2010 um 11:17 Uhr) Grund: Automerged Doublepost
    [B]Meine bescheidenen Kenntnisse
    [S]Gratis FUD Crypter


  5. #5
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard

    trotzdem brauchst du dafür ab vista ne bestltigung vom user das ein autostart erzeugt werden darf.
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

  6. #6
    Fortgeschrittener Avatar von Kitti321
    Registriert seit
    30.06.2010
    Beiträge
    33

    Standard

    Ich verwende Windows 7 und es funktioniert ohne Administratorrechte oder nerviges OK-drücken. Hast du ev. was umgestellt? Bei Win7 kann man die Sicherheitsstufe erhöhen, vll. geht das unter Vista auch.
    [B]Meine bescheidenen Kenntnisse
    [S]Gratis FUD Crypter


  7. #7
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard

    mhhh war der meingung das ich früher dafür immer mein ok geben musste und es deshalb immer wieder unter runonce gelegt hab. Sry
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

Ähnliche Themen

  1. [S] USB-Autostart
    Von r4iden im Forum Suche Tutorials
    Antworten: 7
    Letzter Beitrag: 13.06.2009, 11:56
  2. autostart
    Von Kargi im Forum Delphi
    Antworten: 2
    Letzter Beitrag: 07.06.2007, 13:45

Stichworte

Berechtigungen

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