Autor
|
Tema: Proyecto "Registry Stealth" (Leído 7,026 veces)
|
Manibal_man
Desconectado
Mensajes: 528
|
Buenas gente... A alguien se le ocurre como hacer en vb para crear un programa que "vele" x el registro?, es decir, que proteja las entradas Run, Run-, RunOnce, etc.... que quede residente y que avise cuando un prog quiere escribir algo alli...
la verdad no se me ocurre como hacerlo... pero vi que el bitdefender lo trae y me gustó la idea
Saludos!
|
|
|
En línea
|
:: I was born ready motha fucka ::
|
|
|
Xpeed
Desconectado
Mensajes: 472
Res Publica Non Dominetur
|
pues aki te cito un texto que creo que te puede ayudar en el momento de crear tu aplicacion .... no es especificamente que proteja las entradas que mencionas pero puede que te ayude Algunas veces puede que sea necesario bloquear el registro de Windows para impedir que otros usuarios accedan a él y puedan modificar configuraciones. Esta opción es un poco complicada ya que al hacerlo tampoco nos dejará acceder al registro, pero no hay que preocuparse porque primero veremos como hacer para bloquear el registro y luego como haremos para desbloquearlo. Para deshabilitar el registro de Windows: Hacemos clic en el botón Inicio y luego en Ejecutar Escribimos la palabra Regedit y pulsamos el botón Aceptar Ahora en el registro de Windows buscamos la clave HKEY_CURRENT_USER/Software Microsoft/Windows/CurrentVersion/Policies/System. En la ventana de la derecha creamos un nuevo valor DWORD y le damos el nombre DisableRegistryTools Hacemos doble clic sobre él y le damos el valor "1" para deshabilitar las funciones de edición del registro. Una vez realizada esta operación ya nadie podrá acceder al registro de Windows, hasta que no lo volvamos a activar Para habilitar el registro de Windows: Abrimos el bloc de notas y escribimos lo siguiente:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\system] "DisableRegistryTools"=dword:00000000
Ahora guardamos el bloc de Notas con el nombre unlock.reg y a partir de ahora cuando queramos habilitar el registro de Windows, después de haberlo deshabilitado solo tendremos que hacer doble clic sobre el archivo que acabamos de crear unlock.reg. Así de esta forma mi consejo es que primero crees el archivo unlock.reg y luego deshabilites el registro.
un saludo
|
|
« Última modificación: 23 Julio 2005, 21:00 pm por $P€€D »
|
En línea
|
|
|
|
Manibal_man
Desconectado
Mensajes: 528
|
bueno, gracias... el tema es que lo que mas me interesa es saber como "interceptar" el pedido de "agregado de clave" para frenarlo, avisar, y despues dejarlo agregarse o no...
espero que alguien me pueda dar una mano... porque la verdad estoy medio en bolas... igual sigo buscando, si encuentro algo lo posteo
saludos!
|
|
|
En línea
|
:: I was born ready motha fucka ::
|
|
|
Manibal_man
Desconectado
Mensajes: 528
|
Bueno, creo que me voy acercando, estuve buscando en el MSDN, y encontre una api "advapi32.dll" que con la funcion "RegNotifyChangeKeyValue Lib" podria llegar a servir, el tema es que no se si con esta funcion puedo encontrar modificaciones hechas x otro programa, o solo con otra funcion de la API... se entiende? se supone que la funcion hace esto: The RegNotifyChangeKeyValue function notifies the caller about changes to the attributes or contents of a specified registry key.
Esta buenisimo, pero cuando la clave a agregar es creada x otro prog tambien?
confundido... :S
Saludos
|
|
|
En línea
|
:: I was born ready motha fucka ::
|
|
|
|
Manibal_man
Desconectado
Mensajes: 528
|
okkkkkkkkkkkkas, ya lo hice en C++, veremos como queda en visual.
chas gracias
Saludos
|
|
|
En línea
|
:: I was born ready motha fucka ::
|
|
|
Manibal_man
Desconectado
Mensajes: 528
|
Otra pregunta, tengo que abrirla primero con RegOpenKey?
|
|
|
En línea
|
:: I was born ready motha fucka ::
|
|
|
|
Manibal_man
Desconectado
Mensajes: 528
|
Pero no se como llamar a las funciones en vb ... como defino los structs en vb? sisi.. me da verguenza preguntar esto.. Saludos!
|
|
|
En línea
|
:: I was born ready motha fucka ::
|
|
|
Slasher-K
Desconectado
Mensajes: 1.477
|
Las estructuras se crean con la palabra clave Type, pero en este caso no necesitas usar ninguna. Te dejo el código de ejemplo ya que es muy útil y no se había visto antes en el foro. ' 'Coded by Slasher '
Option Explicit
Public Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (ByVal lpEventAttributes As Long, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long
Public Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long
Public Declare Function RegNotifyChangeKeyValue Lib "advapi32.dll" (ByVal hKey As Long, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long, ByVal hEvent As Long, ByVal fAsynchronus As Long) As Long
Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Const HKEY_CLASSES_ROOT = &H80000000 Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const KEY_NOTIFY = &H10
Public Const REG_OPENED_EXISTING_KEY = &H2 Public Const REG_NOTIFY_CHANGE_NAME = &H1 Public Const REG_NOTIFY_CHANGE_LAST_SET = &H4
Public Const DEFKEY = "Software\" 'Clave que se quiere monitorear.
Public Cancel As Boolean
Sub RegMon()
Dim hEvent& Dim hKey& Dim r&
NewTest: 'Crea un evento para responder a las modificaciones del registro. ' hEvent = CreateEvent(0&, True, 0, vbNullString) 'Abre la clave. ' r = RegCreateKeyEx(HKEY_CLASSES_ROOT, DEFKEY, 0, vbNullString, 0, _ KEY_NOTIFY, 0, hKey, REG_OPENED_EXISTING_KEY) 'Inicia el monitoreo de la clave. ' r = RegNotifyChangeKeyValue(hKey, True, _ REG_NOTIFY_CHANGE_NAME Or _ REG_NOTIFY_CHANGE_LAST_SET, _ hEvent, True) Do While WaitForSingleObject(hEvent, 10) 'Espera que se modifique, agregue, o elimine 'algún valor de la clave. ' If Cancel Then 'Cancelar la espera. ' Exit Sub End If DoEvents Loop 'Si se modifica la clave... ' If Not Cancel Then Stop End If r = RegCloseKey(hKey) r = CloseHandle(hEvent) GoTo NewTest 'Vuelve a comenzar el monitoreo.
End Sub
El código se ejecutará hasta que se establezca la variable global Cancel a True. Saludos.
|
|
|
En línea
|
A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
|
|
|
|
|