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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15
21  Programación / Programación Visual Basic / Re: [ SRC ] Actualizador de Aplicaciones en: 19 Junio 2012, 01:02 am
Tengo una duda, cuantos son los archivos que es capaz de comprmir y actualizar sin que el programa colapse?.

Y si por ejemplo el servidor donde estan alojadas las updates se cae, o se cae la conexión, el programa dará un mensaje de error o se quedará pegado?

Quiero aclarar que son solo preguntar mas no criticas ni nada por el estilo.

Saludos, muy buen aporte :)

Hasta donde probe es capaz de comprimir o descargar mas de 2mil archivos sin colapsar..., en caso de que el servidor donde estan los updates no este disponible el programa muestra en el estado que no se ha podido conectar al servidor.

HOLA!!!

Consulta como analiza si son los archivos o estan actualizados?

Hace un hash del archivo en la pc y lo compara con el hash de el de internet, si es asi deberia bajar el de internet para calcular su hash y eso no seria practico...

Osea, yo tengo en mi pc programa V1 y en el server tengo Programa V2...

Suponiendo que los dos se llamen a.exe como va a saber tu actualizador si el subido a internet es actualizado o no?

Y suponiendo que le coloques nombres distintos y el user haya puesto un acceso directo a nuestro exe, al bajarse el exe 2 el user clickea el acceso directo al exe 1 y va al exe 2 o al 1?

Son las dudas que me surgen sin probar ni descargar el soft...

Espero aclaraciones XD

GRACIAS POR LEER!!!

Fijate el programa funciona de la siguiente Manera: Nosotros ( el programador de la aplicacion ) nos encargamos de realizar todos los cambios que queramos en nuestro programa, una vez nosotros terminamos, queremos que todos nuestros clientes tengan la version que acabamos de programar.

Para esto nosotros ejecutamos el Actualizador.exe con el parametro "GenerateUpdateList", y nos generara el archivo "UpdateList.zip" que no es mas que un archivo de texto comprimido que contiene todos los hash MD5, Tamaño y Rutas de cada uno de los archivos de nuestra aplicacion. Una vez generado el archivo debemos subirlo junto con todos los archivos actualizados de nuestra aplicacion al host de almacenamiento, despues de esto los archivos actualizados estan en el host.

Ahora nuestros clientes solo deben ejecutar el archivo Actualizador.exe (o simplemente podemos programar nuestra aplicacion para que llame al actualizador automaticamente), para que se les actualize su aplicacion con la que nosotros acabamos de subir al host. ¿Como lo hace?, simple, el actualizador descarga el archivo UpdateList.Zip, en este se encuentran todos los hash MD5 de los archivos actualizados de modo que no tengo que bajarlos todos para luego sacarle el hash, una vez descargado el programa compara los hash de cada archivo almacenado en la pc cliente con el hash almacenado en el servidor de actualizaciones (UpdateList.Zip) y si encuentra que uno de los hash son diferentes o simplemente en el servidor de actualizaciones hay archivos que no hay en la maquina cliente entonces los descarga. De este modo cuando el actualizador.exe termina, la aplicacion esta actualizada a la misma que nosotros subimos al host.

En cuanto al caso1: Aunque 2 aplicaciones se llamen igual, para que su hash sea igual deben tener el mismo contenido, si alguno de ellos es modificado en lo mas minimo su hash cambia, por lo tanto si en el host hay un archivo con un hash diferente al de la pc cliente, lo descarga automatico.

En cuanto al caso2: No es lo ideal cambiar el nombre de la app principal, aunque en el caso de que se haga el acceso directo del usuario seguiria apuntando a la aplicacion vieja...

La mejor forma a mi parecer es que el Actualizador descargue un XML con los que se deseean actualizar

Código
  1. <UPDATES>
  2.  
  3. <File nombre="a.exe">
  4. <MD5>Aqui MD5 de a</MD5>
  5. </File>
  6.  
  7. <File nombre="b.exe">
  8. <MD5>Aqui MD5 de b</MD5>
  9. </File>
  10.  
  11. </UPDATES>

Y pues ya el programa descarga ese archivo del servidor y lee los nodos y ya lee el atributo nombre y compara su md5 con el que esta en la carpeta del programa y si es diferente actualiza y sino pues lee el siguiente nodo.

A mi parecer seria lo mas sencillo y eficiente.

----

EDIT

Descargue el src y me dice que falta el modulo "Mod_ini.bas"

El actualizador hace mas o menos eso que acabas de plantear pero con un archivo plano.

Ya acomode el link con todos los modulos...

Saludos!
22  Programación / Programación Visual Basic / [ SRC ] Actualizador de Aplicaciones en: 18 Junio 2012, 03:55 am
Bueno dado que se cayo el servidor donde antes estaba subido este codigo, lo resubi y lo mejore un poco.

Actualizador de Aplicaciones:



La aplicacion es muy sencilla y funciona de la siguiente manera: cuando se ejecuta la aplicacion esta descarga del servidor de actualizaciones el archivo "UpdateList.zip", que es el archivo que contiene la lista de archivos actualizados de la aplicacion, luego lo carga en memoria y empieza a comparar los archivos actualizados con los archivos que estan en la carpeta local de la aplicacion, si existen archivos nuevos o archivos mas actualizados la aplicacion los descarga.

Para generar el archivo UpdateList.zip la aplicacion (Actualizador.exe) debe estar en la carpeta local que tiene la aplicacion actualizada y ejecutar el actualizador con el parametro "GenerateUpdateList". Esto generara el archivo updatelist.zip y tambien comprimira todos los archivos que hayan sido especificados en el archivo config.ini.

Ojo: El Actualizador no esta programado para actualzarse a si mismo.

Ejemplo de Uso:

Mi aplicacion se llama MiPrograma.Exe y depende de los archivos Ejemplo1.txt y Ejemplo2.txt, y los tengo almacenados en una carpeta llamado MiPrograma.

El primer paso es incluir todos los archivos del actualizador que son 4 ( Actualizador.exe, Unzip32.dll, Zip32.dll y Config.ini) en la carpeta principal "MiPrograma".

El segundo paso es especificar la URL del host donde estaran al macenados los archivos actualizados, para eso abrimos el archivo Config.ini y cambiamos el valor "UpdateServer" por el host donde tendremos nuestros archivos y quedaria algo asi "UpdateServer=http://ejemplo.com/ejemplo".

Ahora especificamos las extensiones de archivos que queremos que sean comprimidos, se recomienda que los .exe y .dll sean comprimidos ya que algunos servidores no dejan bajar este tipo de archivo por seguridad. Para cambiar las extensiones abrimos el archivo Config.ini y modificamos el valor "ZipThisFileTypes" y colocamos las extensiones que queramos, por defecto queda asi: "ZipThisFileTypes=.exe,.dll", cada extension separada con una coma e incluyendo el punto.

Una vez hecho esto ya se puede generar el archivo UpdateList.zip, para esto ejecutamos la aplicacion con el comando "GenerateUpdateList", esto generara el archivo updatelist.zip y tambien comprimira todos los archivos que especificamos en la lista de extensiones. Ahora debemos subir todos los archivos de la carpeta MiPrograma al host donde almacenaremos los archivos ( url especificada en el archivo config.ini ) exceptuando solo aquellos archivos que fueron comprimidos ( subir solo el comprimido y no el original, por ejemplo si se comprimio MiPrograma.exe a MiPrograma.zip subimos el .zip y no el .exe).

Con esto ya la aplicacion estara lista para actualizar a todos los clientes que ya tengan una version vieja de la aplicacion.

Para comprobarlo borra o cambia cualquiera de los archivos que estan en la carpeta "MiPrograma" y ejecuta el actualizador, por ejemplo si borramos MiPrograma.exe y ejecutamos el actualizador veremos que se descagara MiPrograma.exe nuevamente ya que al no existir en la carpeta local pero si en el servidor de actualizaciones, la aplicacion lo descarga.

Descarga Exe + Codigo Fuente:

http://www.mediafire.com/?pgdp4q3ufpyda77

Bueno se aceptan recomendaciones, mejoras, sugerencias, dudas XD

Suerte y espero que les sirva de algo :P

23  Programación / Programación Visual Basic / Re: Aplicación Actualizable en: 17 Junio 2012, 22:34 pm
Ok, buscare el codigo, lo mejorare un poco y hay lo subo.
24  Programación / Programación Visual Basic / Re: ayuda estoy haciendo un encriptador en: 17 Junio 2012, 20:29 pm
Fijate angels, los hash son irreversibles hasta donde yo se... de modo que de un hash no puedes sacar info que sea util... la unica forma seria generar cadenas hasta encontrar un hash determinado, cosa que puede llevar mucho tiempo... ademas si cifra el hash y por casualidad el usuario no modifica la cadena si no el hash cifrado caeriamos en lo mismo porque el programa no sabria si fue modificado o no.

En mi ejemplo propuse esto: Cadena de Ejemplo ( Hola Mundo )

Primero se genera el CRC32 de la cadena original = 22436ED2
Luego se codifica la cadena con el algoritmo que sea, en este ejemplo ROT13 = Ubyn Zhaqb
Luego el resultado final sera la cadena cifrada + CRC32 de la cadena original = Ubyn Zhaqb22436ED2

Cuando se quiera descifrar y ver si se modifico el archivo simplemente hay que comprobar que el CRC32 de la cadena decifrada sea igual que el plasmado en el archivo, y en caso de que se modifique el CRC32 en si, esta condicion siempre sera false. Pongamos un ejemplo donde no se modifico el archivo:

Primero se decifra la cadena, sin tomar en cuenta los ultimos 8 digitos que son el hash de la cadena original : Ubyn Zhaqb = Hola Mundo
Luego se genera el CRC32 de la cadena decifrada : Hola Mundo = 22436ED2
Ahora comparamos ambos hash y si son iguales el archivo no fue modificado : 22436ED2 = 22436ED2 = True

Ahora un ejemplo donde si fue modificado :

Supongamos que modifique el archivo de esta forma : Uwyn Zhjqb22436ED2
Primero se decifra la cadena, sin tomar en cuenta los ultimos 8 digitos que son el hash de la cadena original : Uwyn Zhjqb = Hjla Muwdo
Luego se genera el CRC32 de la cadena decifrada : Hjla Muwdo = 7B23B362
Ahora comparamos ambos hash y si son iguales el archivo no fue modificado : 22436ED2 = 7B23B362 = False ( por lo tanto fue modificado )

Igualmente sucedera si modificamos el hash, al momento de comprarar dara false, a menos que de antemano sepamos el hash de la cadena (modificada) decodificada y lo plasmemos en el archivo cosa que veo dificil si se usa un buen cifrado.
25  Programación / Programación Visual Basic / Re: ayuda estoy haciendo un encriptador en: 17 Junio 2012, 05:16 am
La solucion mas simple creo que es la que propone engelx, pero con CRC32 creo que es suficiente... Antes de cifrar primero genera el CRC32 del texto original, luego cifra la cadena y por ultimo une la cadena cifrada junto con el CRC32 (8 digitos), luego cuando decodifique la cadena solo tiene que decodificar toda la cadena menos los 8 digitos del CRC32, y generar otro CRC32 para la cadena decoficada, si coincide el CRC32 de la cadena decodificada con el CRC32 Original es porque no se modifico.
26  Programación / Programación Visual Basic / Re: SOS Leer Serie Procesador en: 29 Abril 2012, 06:57 am
Yo intente eso de leer el ID del procesador, creo que con WMI es la peor forma, algunas veces me devolvia nulo y otras tambien me devolvia Seriales repetidos en pcs diferentes, tambien probe el serial del disco, funciona pero algunos devuelven ID nulo no se porq :S, hasta ahora no he encontrado otra forma de obtener un identificador unico para cada pc :S
27  Programación / Programación Visual Basic / Re: Tengo una duda con DataArrival del Winsock en: 30 Enero 2012, 03:39 am
Si, si podras.
28  Programación / Programación Visual Basic / Re: Tengo una duda con DataArrival del Winsock en: 29 Enero 2012, 18:09 pm
Mira yo haria lo siguiente, he podido ver que cada linea de chat se separa con un <br />, entonces sabiendo esto primero reemplazo los <br /> con saltos de linea y luego limpio todo el codigo html. Con eso ya tienes todas las lineas del chat.

Aqui tienes una funcion que hizo Psyke para limpiar el html: http://foro.elhacker.net/programacion_visual_basic/srcfuncion_cleanhtmlcode_by_psyke1-t295866.0.html
29  Programación / Programación Visual Basic / Re: ¿Cuál es el alto y ancho de una ventana maximizada? en: 21 Diciembre 2011, 22:16 pm
eso depende de la resolucion de panatlla donde vallas a trabajar....
30  Programación / Programación Visual Basic / Re: Tamaño de un UDT en: 2 Noviembre 2011, 02:51 am
El array nunca lo libero, necesito que este activo durante toda la aplicacion ya que hay tengo unos datos que se leen durante casi toda la ejecucion del programa y leerlos cada vez del disco duro umm no creo que sea buena ida xD...
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines