Español
Fuente/ Codesnippets

Binär Expediente Registry Schlüssel Unterschlüssel

 

KompilierenMarcaSeparación
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Registry: Schlüssel und alle Unterschlüssel binär in Datei speichern
Hive sichern abspeichern Registry
Def @Regsavekey(3)!ADVAPI32,RegSaveKeyASpeichert eine Schlüsselfolge in einen Hive.
Def @Regopenkeyex(5) !ADVAPI32,RegOpenKeyExALiefert Handle eines Registryschlüssels und öffnet ihn.
Def @Regclosekey(1) !ADVAPI32,RegCloseKeySchließt eine geöffneten Registryschlüssel.
Def @Lookupprivilegename(4)!advapi32,LookupPrivilegeNameAErmittelt aus dem Luid eines Privilegs dessen Namen.
Def @Lookupprivilegevalue(3) !advapi32,LookupPrivilegeValueAErmittelt aus dem Namen eines Privilegs dessen Luid.
Def @Openprocesstoken(3) !advapi32,OpenProcessTokenÖffnet Einstellprozess.
Def @Adjusttokenprivileges(6) !advapi32,AdjustTokenPrivilegesStellt Privilegien ein.
Def @Getcurrentprocess(0) !kernel32,GetCurrentProcessErmittel das Handle des aktiven Prozesses.
Declare Fehler&,Schlüssel$,Handle#,Handle&,Button&,Savefile$,Io%
Declare Newstate#,Luid1#,Luid2#,Privileg1#,Token&,Token#,Zahl2&,Zahl1&
Declare Buffer#,Oldvalue#,Out#,Größe#,System$
Der Folgende Codeanteil ist nur unter NT-basierten nötig
Dim Token#,4
Dim Newstate#,16
Dim Luid1#,8
Dim Privileg1#,256
Dim Buffer#,4
Dim Out#,256
Dim Größe#,4
Dim Oldvalue#,256
Clear Out#,Oldvalue#,Größe#,Buffer#,Privileg1#,Luid1#,Token#,System$
Long Newstate#,0=1Nur ein Privileg soll geändert werden
Long Newstate#,12=$00000002Das Privileg soll eingeschaltet werden
Let Fehler&=@Openprocesstoken(@Getcurrentprocess(),$0020 | $0008,Token#)Es wird ein Process mit dem Handle Token gestartet, der Privilegien für mein Programm einstellen soll.
Addstring Fehlercode OpenProcessToken: +@Str$(Fehler&)Wenns geklappt hat, dann 1.
Let Token&=@Long(Token#,0)Das Handle des Einstellprozesses wird ausgelesen.
String Privileg1#,0=SeBackupPrivilegePrivileg für RegSaveKey
Let Fehler&=@Lookupprivilegevalue(@Addr(System$),Privileg1#,Luid1#)Wenn ich es richtig vestanden habe, wird hier aus dem Privilegnamen eine Art lokales Handle für dieses Privileg ermittelt.
Addstring Fehlercode LookupPrivilegeValue: +@Str$(Fehler&)Wenns geklappt hat, dann 1.
Byte Newstate#,4=@Byte(Luid1#,0)
Byte Newstate#,5=@Byte(Luid1#,1)
Byte Newstate#,6=@Byte(Luid1#,2)
Byte Newstate#,7=@Byte(Luid1#,3)
Byte Newstate#,8=@Byte(Luid1#,4)
Byte Newstate#,9=@Byte(Luid1#,5)
Byte Newstate#,10=@Byte(Luid1#,6)
Byte Newstate#,11=@Byte(Luid1#,7)
Clear Buffer#
Let Zahl1&=256
Let Zahl2&=0
Let Fehler&=@Adjusttokenprivileges(Token&,Zahl2&,Newstate#,Zahl1&,Oldvalue#,Buffer#)Das Privileg wird aktiviert.
Addstring Fehlercode AdjustTokenPrivileges: +@Str$(Fehler&)Wenns geklappt hat, dann 1.
Addstring SIZE: +@Str$(@Long(Buffer#,0))
Long Größe#,0=256
@Lookupprivilegename(@Addr(System$),Luid1#,Out#,Größe#)Aus dem ersten Luid wird wieder der Privilegname ermittelt.
Addstring PRIVILEG: +@String$(Out#,0)Nur Rückmeldung, ob es geklappt hat.
Dispose Luid1#
Dispose Privileg1#
Dispose Token#
Dispose Newstate#
Dispose Out#
Dispose Größe#
Ab hier wird abgespeichert
Let Schlüssel$=
Let Savefile$=C:REGHIVE
Dim Handle#,4
Let Fehler&=@Regopenkeyex($80000001,@Addr(Schlüssel$),0,$F003f,Handle#)...hole das Handle des Hive...
Addstring Errorcode Handle des Hive holen: +@Str$(Fehler&)
Let Handle&=@Long(Handle#,0)..Handle für Startpunkt des Hives wird ausgelesen....
Let Fehler&=@Regsavekey(Handle&,@Addr(Savefile$),0)...speichere den Hive unter C:REGHIVE...
Addstring Errorcode Hive abspeichern: +@Str$(Fehler&)
Let Fehler&=@Regclosekey(Handle&)...mach die Kiste zu..
Addstring Errorcode Schlüssel schließen: +@Str$(Fehler&)
Dispose Handle#
Windowtitle Abspeichern des Registryschlüssels Current_User in binärer Form
Windowstyle 31
Window 0,0-640,440
Let Button&=@Createbutton(%Hwnd,Gespeicherten Hive löschen?,20,300,250,30)
@Editbox(API-Rückmeldungen,1)
Chdir C:\

If Findfirst$(REGHIVE)=

    Enablewindow Button&,0

Endif

While 0=0

    Waitinput

    If @Getfocus(Button&)

        Let Io%=%Ioresult
        Assign #1,C:\REGHIVE
        Setfattr #1,$20
        Erase #1
        Chdir C:\

        If Findfirst$(REGHIVE)=

            @Messagebox(Hive wurde gelöscht!,Hinweis,64)
            Enablewindow Button&,0

        Endif

    Endif

Wend

 
16.07.2007  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

2.648 Views

Untitledvor 0 min.
Georg Teles26.03.2023
Andre Rohland31.01.2018
E.T.25.02.2013
Julian Schmidt30.06.2011

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie