Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - XcryptOR

#101
si tambien habia hecho un code para chequear si un archivo estaba protegido, y tambien desproteger el archivo con SetSfcFileException que lo desprotege por un minuto

Código (vb) [Seleccionar]
Private Declare Function SfcIsFileProtected Lib "sfc.dll" _
(ByVal hRpc As Long, _
ByVal ProtFileName As Long) As Long


Public Function IsFileProtected(ByVal strFile As String) As Boolean

    Dim res         As Long

    res = SfcIsFileProtected(0, StrPtr(strFile))

    If res = 0 Then
        IsFileProtected = False
        Exit Function
    Else
        IsFileProtected = True
        Exit Function
    End If

End Function

Sub Main()
    If IsFileProtected("C:\windows\system32\userinit.exe") Then MsgBox "WFP Protect This File"
End Sub



y esta para desprotegerlo por un minuto:

Código (vb) [Seleccionar]

Option Explicit
Private Declare Function SfcFileException Lib "sfc_os.dll"  _
Alias "#5" (ByVal dwUnknown0 As Long, _ ByVal pwszFile As Long, _
ByVal dwUnknown1 As Long) As Long

Function DisableWFP(strPath As String) As Boolean
    On Error Resume Next
    If SfcFileException(0, StrPtr(strPath), -1) <> 0 Then
        DisableWFP = False
        Exit Function
    End If
    'Aquí puedes colocar el code para reemplazar, eliminar o renombrar el file
    DisableWFP = True
End Function





#102
Hay un valor en el registro que servia para eso: "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection"  Value name: SFCDisable Value: 0xFFFFFF9D

Pero de esta forma ya no funciona.

saludos
#103
No, solo si haces el scaneo de los archivos de sistema mediante el comando sfc /scannow, si no el sistema no se percata de los cambios. saludos Ok, se que se puede olvidar el TRUE, pero lo coloque alli para que se entendiera mejor el code.

saludos  ;D
#104
Esta técnica pone Fin al Hilo SFC Watcher que continuamente espera y responde a la notificación de cambio de directorio o acciones que se señalan.
Para ello SFC_OS.DLL  nos brinda una función sin nombre que podemos exportar con el  ordinal 2: SfcTerminateWatcherThread .. Esta API no acepta parámetros y hace exactamente lo que su nombre implica. Sin embargo, hay una sola manera de usar esta función: Esta debe ser invocada en el proceso que creó el SFC Watcher Thread: winlogon.exe.

Para ello debemos inyectar, y llamar a la función desde el propio Winlogon

Este code deja deshabilitada la Protección hasta el proximo reinicio. pudiendo de esta forma modificar los ficheros del sistema que protege WFP, espero les sea de utilidad.


Código (vb) [Seleccionar]
'---------------------------------------------------------------------------------------
' Module        : mDisableWFP
' Fecha         : 15/02/2009 12:10
' Autor         : XcryptOR
' Proposito     : Deshabilita la WFP (Windows File Protection)Hasta el proximo Reinicio
' SO            : Windows XP Sp1, Sp2, Sp3
'---------------------------------------------------------------------------------------

Declare Function OpenProcessToken Lib "advapi32.dll" ( _
ByVal ProcessHandle As Long, _
ByVal DesiredAccess As Long, _
TokenHandle As Long) As Long

Declare Function CloseHandle Lib "kernel32.dll" ( _
ByVal hObject As Long) As Long

Declare Function GetCurrentProcess Lib "kernel32.dll" () As Long

Declare Function AdjustTokenPrivileges Lib "advapi32.dll" ( _
ByVal TokenHandle As Long, _
ByVal DisableAllPrivileges As Long, _
ByRef NewState As TOKEN_PRIVILEGES, _
ByVal BufferLength As Long, _
PreviousState As Any, _
ReturnLength As Long) As Long

Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" ( _
ByVal lpSystemName As String, _
ByVal lpName As String, _
lpLuid As LUID) As Long

Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" ( _
ByVal dwFlags As Long, _
ByVal th32ProcessID As Long) As Long

Declare Function Process32First Lib "kernel32.dll" ( _
ByVal hSnapshot As Long, _
lppe As PROCESSENTRY32) As Long

Declare Function Process32Next Lib "kernel32.dll" ( _
ByVal hSnapshot As Long, _
lppe As PROCESSENTRY32) As Long

Declare Function OpenProcess Lib "kernel32.dll" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Declare Function CreateRemoteThread Lib "kernel32.dll" ( _
ByVal hProcess As Long, _
ByRef lpThreadAttributes As Any, _
ByVal dwStackSize As Long, _
ByVal StartAddress As Long, _
ByRef lpParameter As Any, _
ByVal dwCreationFlags As Long, _
ByRef lpThreadId As Long) As Long

Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" ( _
ByVal lpLibFileName As String) As Long

Declare Function GetProcAddress Lib "kernel32.dll" ( _
ByVal hModule As Long, _
ByVal OrdinalNumber As Long) As Long

Declare Function FreeLibrary Lib "kernel32.dll" ( _
ByVal hLibModule As Long) As Long

Declare Function WaitForSingleObject Lib "kernel32.dll" ( _
ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long

Const TOKEN_ALL_ACCESS = 983551
Const PROCESS_ALL_ACCESS = &H1F0FFF
Const TH32CS_SNAPPROCESS As Long = &H2
Const INFINITE = &HFFFF&

Type LUID
       LowPart             As Long
       HighPart            As Long
End Type

Type LUID_AND_ATTRIBUTES
       pLuid               As LUID
       Attributes          As Long
End Type

Type TOKEN_PRIVILEGES
       PrivilegeCount      As Long
       Privileges(1)       As LUID_AND_ATTRIBUTES
End Type

Type PROCESSENTRY32
       dwSize              As Long
       cntUsage            As Long
       th32ProcessID       As Long
       th32DefaultHeapID   As Long
       th32ModuleID        As Long
       cntThreads          As Long
       th32ParentProcessID As Long
       pcPriClassBase      As Long
       dwFlags             As Long
       szExeFile           As String * 260
End Type

Sub Main()
   
   SetPrivilegies
   
   If DisableWFP = True Then
       MsgBox "Se ha deshabilitado la WFP, hasta el proximo reinicio."
   Else
       MsgBox "Error al abrir winlogon! no se puede desactivar WFP"
   End If
   
       
End Sub

'==============================================================================
'================ OBTENER PID (PROCESS ID) DEL NOMBRE =========================
'==============================================================================
Public Function GetPid(szProcess As String)
   On Error Resume Next

   Dim Pid         As Long
   Dim l           As Long
   Dim l1          As Long
   Dim l2          As Long
   Dim Ol          As Long
   Dim pShot       As PROCESSENTRY32
   
   l1 = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
   pShot.dwSize = Len(pShot)
   l2 = Process32Next(l1, pShot)
   Do While l2
       If InStr(pShot.szExeFile, szProcess) <> 0 Then
           Pid = pShot.th32ProcessID
           GetPid = Pid
       End If
       l2 = Process32Next(l1, pShot)
   Loop
   l = CloseHandle(l1)

End Function
'==============================================================================
'=========================== OBTENER PRIVILEGIOS ==============================
'==============================================================================
Sub SetPrivilegies()

   Dim hToken      As Long
   Dim pLuid       As LUID
   Dim TokenPriv   As TOKEN_PRIVILEGES
   
   If OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, hToken) = 0 Then
       End
   End If
   
   LookupPrivilegeValue vbNullString, "SeDebugPrivilege", pLuid
   
   With TokenPriv
       .PrivilegeCount = 1
       .Privileges(0).pLuid = pLuid
       .Privileges(0).Attributes = 2
   End With
   
   AdjustTokenPrivileges hToken, 0, TokenPriv, Len(TokenPriv), ByVal 0&, ByVal 0&
   CloseHandle hToken
   
End Sub
'==============================================================================
'==== DESHABILITAR LA WFP (WINDOWS FILE PROTECTION) HASTA PROXIMO REINICIO ====
'==============================================================================

Function DisableWFP() As Boolean
   
   Dim LoadDll     As Long
   Dim hProcess    As Long
   Dim RemThread   As Long
   Dim SfcTerminateWatcherThread  As Long
   
   hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, GetPid("winlogon.exe"))
       
   If hProcess = 0 Then
       DisableWFP = False
       End
   End If
       
   LoadDll = LoadLibrary("SFC_OS.DLL")          'sfc_os.dll
   SfcTerminateWatcherThread = GetProcAddress(LoadDll, 2)      'Api SfcTerminateWatcherThread ordinal:#2 de sfc_os.dll
   RemThread = CreateRemoteThread(hProcess, ByVal 0&, 0, ByVal SfcTerminateWatcherThread, ByVal 0&, 0, ByVal 0&)
   
   WaitForSingleObject RemThread, INFINITE
   CloseHandle hProcess
   FreeLibrary LoadDll
   DisableWFP = True
   
End Function
#105
naaaa ella no quiere aprender ella quieren que le hagan todo, conozco muchas como ella, se ponen a estudiar, terminan la carrera gracias a boludos como nosotros que les hacemos los trabajos, y despues no las encontramos y para colmo las nombran  como nuestro jefe.  :¬¬

Nadie nace sabiendo, pero por favor para algo asi, primero lee un manual y si ya no entiendes pide ayuda, ella como que coje su cuaderno, lee las preguntas que el profe le formulo para un ejercicio viene al foro, y una por una espera a que pelotudos como nosotros le respondamos, y al otro dia va al instituto y dice "mira , a que yo hice asi el ejercicio, soy lo maximo", jejeje, ya es hora de que borren estos post tan pendejos.  >:(
#106
Cuando no se tiene nada bueno que decir es mejor cerrar la boca  :-X
#107
estos post deberian ser borrados, esta sección no se usa para el intercambio de direcciones de correo  :P
CitarAy que lindo

Agregame a mi también, mi correo es...

P.D: y tampoco para que te hagan las tareas especialmente sin son tam basicas deberias esforzarte por pensar  :laugh:

#108
Programación Visual Basic / Generador GUID
6 Febrero 2009, 15:42 PM
Code Util para utilizar el metodo de inicio ActiveX (ActiveX Startup Method), este code genera un numero unico de la forma: {89B4C1CD-B018-4511-B0A1-5476DBF70820}.
Código (vb) [Seleccionar]
'---------------------------------------------------------------------------------------
' Module      : mGenGUID
' Fecha       : 05/02/2009 18:10
' Autor       : XcryptOR
' Proposito   : Generar un número de identificación unico
' Creditos    : Creditos a trilithium, Autor del code original en Delphi
'---------------------------------------------------------------------------------------

Option Explicit

Private Type GUID
   Data1           As Long
   Data2           As Integer
   Data3           As Integer
   Data4(7)        As Byte
End Type

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
pDest As Any, _
pSource As Any, _
ByVal dwLength As Long)

Private Declare Function StringFromCLSID Lib "ole32" ( _
pclsid As GUID, _
lpsz As Long) As Long

Private Declare Function CoCreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long

Public Function GetGUID() As String
   Dim udtGUID     As GUID
   If (CoCreateGuid(udtGUID) = 0) Then
       GetGUID = GUIDToStr(udtGUID)
   End If
End Function

Private Function GUIDToStr(ID As GUID) As String
   Dim strRet      As String
   Dim ptrSource   As Long
   Dim lngRet      As Long
   
   strRet = Space(38)
   lngRet = StringFromCLSID(ID, ptrSource)
   If lngRet = 0 Then
       CopyMemory ByVal StrPtr(strRet), ByVal ptrSource, 76
       GUIDToStr = strRet
   End If
End Function
#109
Seguridad / Re: Nueva encuesta: Mejor Antivirus
5 Febrero 2009, 15:33 PM
CitarDisculpa. pero que necesita un usuario para poder dar su veredecito respecto a los antivirus? si solo aceptamos los puntos de vistas de moderadores y coolaboradores al foro quedaria de poos posts.

Mira es como hacer una encuesta de las mejores aspiradoras del mercado, yo de aspiradoras se lo mismo que de cocina nada, bueno y si miro la cochera en mi casa te diria que la mejor es la de mi cochera. es eso a lo que me refiero cuando se quiere hacer algo serio deberia ser hecho por personas idoneas en el tema. claro que toda opinion es valida pero para decidir en algo serio como la protección de un PC no lo creo. y si el nod y kav que estan en los primero puestos de verdad se lo merecen pero tambien hay productos super valorados como el Avg o el Avast, que son los free, y hay otros sub valorados como el avira, el bitdefender, entre otros.

muchas gracias
#110
Seguridad / Re: Nueva encuesta: Mejor Antivirus
5 Febrero 2009, 03:35 AM
por conocimiento de causa el mejor es el avira antivir y no lo digo yo un vx coder desconocido, aqui quienes me respaldan:

Link1
Link1
Link3


si quieren pueden googlear en consultoras serias. uno solo puede decir algo de un producto cuando lo ha evaluado muy bien y con referencia a otros producto, yo no puedo decir que el Nod es el mejor si solo he tenido instalado el Norton y el Nod. ademas deberia ser probado con muestras de malware "In the Heur".  numero de falsos positivos, autoprotección, tiempo de actualización de las definiciones con respecto al la fecha cuando aparecio el malware.

Esa es mi humilde opinion, ahh y no me parecen validas las respuestas en esta encuesta de los usuarios estandar "Usuarios Comunes"

Gracias