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 - Mad Antrax

#431
Bueno, tal y como prometí, os presento mi proyecto de Actualizador de Aplicaciones

El programa es muy básico pero cumple correctamente su función sin necesidad de complicar al usuario ni al programador. La herramienta está tan bien programada que no es necesario ni que accedáis al source del Smart Updater para implementar su función en tu aplicación.

Dada la propia naturaleza de Smart Updater, se puede utilizar como WebInstaller (es decir, un programa que descarga e instala desde 0 tu aplicación en un PC), así como para mantener siempre actualizados los ficheros del programa en cualquier equipo. Veamos como funciona:


Smart Updater solo necesita un fichero de configuración para que pueda encontrar el listado actualizado de los ficheros de tu programa, ese listado se llama updater.lst y estará colgado en la carpeta FTP/WEB junto a la copia de tu programa actualizado, para que se entienda os voy a poner un ejemplo práctico:

http://cactus-software.elhacker.net/EJEMPLO.zip

Descarga éste ejemplo de Smart Updater ya compilado, descomprime smart_updater.exe y smart.cfg en una misma carpeta. El contenido del smart.cfg es mi aplicación de ejemplo que será instalada/actualizada en tu PC:

Contenido del smart.cfg
http://cactus-software.elhacker.net/MyApp/

El contenido de cactus-software.elhacker.net/MyApp/ es el siguiente:

Se puede ver distintos ficheros y carpetas de ejemplo, además del mencionado updater.lst. Smart Updater buscará el fichero updater.lst y descargará/actualizará todos los ficheros que aparezcan listados.

Bueno, ahora ejecuta el fichero Smart_Updater.exe y pulsa el botón UPDATE, verás como la aplicación descarga el updater.lst, comprueba los ficheros locales y los ficheros del listado y si no coinciden lo descargan. Fácil, verdad?

Para generar un fichero updater.lst válido sobre cualquier carpeta o aplicación, solo tienes que descargar el siguiente programa: http://cactus-software.elhacker.net/Smart_Updater_Maker.zip

El programa es sencillo, lo ejecutas y seleccionas la carpeta de tu aplicación. El programa generará un updater.lst con el contenido de la carpeta (y subcarpetas) que has seleccionado. El fichero updater.lst se almacena al lado del Smart Updater Maker.exe, dicho fichero lo tienes que subir a tu FTP/WEB junto a la aplicación, tal y como se puede ver en la foto anterior de mi ejemplo.

El source de la aplicación también lo publico, pero no es necesario para añadirlo a una aplicación existente: http://cactus-software.elhacker.net/SmartUpdater_Engine.zip

======================================

Si alguien tiene dudas o preguntas... que pregunte!! No es fácil explicar el funcionamiento de éste programa de forma escrita, así que si hay dudas me avisáis :)
#432
Bueno, ya lo tengo terminado. Voy a crear un nuevo hilo para publicar mi código. Dejaré colgado aquí el link para que lo veas
#433
Que bueno! No se me había ocurrido explotar esa funcionalidad :P
#434
Cita de: noele1995 en 15 Octubre 2013, 11:47 AM
Estoy desarrollando un troyano en c++ el servidor y c++/qt el cliente. Me gustaria saber que funciones os parecen importantes y os gusta que tengan los troyanos. Por ahora estoy o ya he desarrollado las que a mi me parecen mas importantes: una buena shell, un keylogger y un gestor de archivos. Que funciones creeis que deberia añadrle y deberian tener todo troyano?

Pues es sencillo, descargate los siguientes troyanos:


  • SubSeven 2.3.1
  • Poison Ivy
  • Bifrost

Revisa y toma nota de TODAS y cada una de las funciones de esos 3 troyanos, copia sus funciones e implementalas en tu troyano.
#435
Cita de: rapbyone en 15 Octubre 2013, 02:43 AM
:huh: no me dijiste que cobrabas :( pequeño detalle, lo siento amigo, pero no tengo los medios para pagarte, disculpa las molestias

jajjaa, era broma hombre!! Has picado de lleno.

Yo no cobro por programar. A la tarde cuando llegue a casa termino el programa y lo subo ok? No te preocupes.
#436
Cita de: rapbyone en 15 Octubre 2013, 00:37 AM
Excelente amigo, muchas gracias :D

Bueno, por hoy ya he terminado, te explico hasta donde he llegado:

Tengo finalizado el programa para generar automáticamente el updater.lst, básicamente tú le indicas la carpeta donde tienes instalado el programa actualizado y te genera un fichero con el siguiente contenido:

vb6.jpg
151089
$7764735F
whatsnew.txt
51
$54FF24BD
windowslogo.png
151053
$A07BF49A
fotos\executable.jpg
94423
$F7F46B42
fotos\foto_linux.jpeg
81570
$A2963B48
hola\virusfoto.jpg
114480
$3B9600A0


No tienes que editarlo a mano, ya que el programa te lo calcula automáticamente, aparece el fichero y su ruta, tamaño y el CRC32, con esas 3 datos ya funciona correctamente el updater.

Y luego, el programa (actualizador principal) funciona d ela siguiente manera; se descarga el updater.lst y lee el fichero de 3 en 3 líneas, en cada lectura obtiene el fichero, tamaño y CRC, los compara con el fichero local y si uno de los 3 datos no es correcto, descarga la copia del fichero en remoto (el fichero actualizado). Si el fichero está dentro de una carpeta, también crea la carpeta y actualiza los ficheros de su interior.

** Por el momento el programa trabaja con los ficheros de la raíz y un 1º nivel de sub-carpeta, mañana cuando vuelva del trabajo hago un bucle recursivo para que pueda ir desde el nivel 2 de sub-carpeta hasta el nivel N (infinito).

El programa acepta el parámetro /auto para que auto-actualice y si descarga el fichero whatsnew.txt lo ejecuta y lo muestra al usuario para que vea los cambios actualizados.

El programa sirve como WebInstaller o Actualizador, puede actualizar incluso si la aplicación principal está en ejecución. Cosas que me faltan terminar?

- Nivel N-Subcarpeta (mañana lo termino)
- Posibilidad de auto-actualizar el propio instalador. (No se hasta que punto es interesante implementar la opción...)

El código es "bonito", corto y sencillo. Como a mi me gustan, es el siguiente:

Código (vb) [Seleccionar]
Function StartUpdate()
    Dim RootPath As String
    Dim WhatsNew As Boolean
   
    Set Files = CreateObject("Scripting.FileSystemObject")
    WhatsNew = False
    m_CRC.Algorithm = 1
   
    Open App.Path & "\smart.cfg" For Input As #1
        Line Input #1, RootPath
    Close #1
    DoEvents
   
    If DownloadFile(RootPath & "updater.lst", "updater.lst") = False Then
        MsgBox "Error al descargar el fichero de actualización"
    Else
        Open App.Path & "\updater.lst" For Input As #1
            Do While Not EOF(1)
                Line Input #1, Archivo
                Line Input #1, Bytes
                Line Input #1, CRC
                Label1.Caption = Archivo & " (" & Bytes & ") = " & CRC
                If Files.FileExists(App.Path & "\" & Archivo) Then
                    If FileLen(App.Path & "\" & Archivo) = Bytes Then
                        CRC2 = "$" & Hex(m_CRC.CalculateFile(App.Path & "\" & Archivo))
                        If CRC <> CRC2 Then
                            Call DownloadFile(RootPath & Archivo, Archivo)
                            If Archivo = "whatsnew.txt" Then WhatsNew = True
                        End If
                    Else
                        Call DownloadFile(RootPath & Archivo, Archivo)
                        If Archivo = "whatsnew.txt" Then WhatsNew = True
                    End If
                Else
                    Call DownloadFile(RootPath & Archivo, Archivo)
                    If Archivo = "whatsnew.txt" Then WhatsNew = True
                End If
                DoEvents
            Loop
        Close #1
        DoEvents
        Kill App.Path & "\updater.lst"
        If WhatsNew = True Then ShellExecuteA 0&, "Open", App.Path & "\whatsnew.txt", vbNullString, vbNullString, 1
    End If
End Function

Function DownloadFile(ByVal URL As String, ByVal Target As String) As Boolean
    On Error GoTo dError
   
    Set oHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    Set oStream = CreateObject("ADODB.Stream")
   
    URL = Replace(URL, "\", "/")
    oHTTP.Open "GET", URL, False
    oHTTP.Send

    If (oHTTP.Status = 200) Then
        oStream.Open
        oStream.Type = 1
        oStream.Write oHTTP.ResponseBody
        If InStr(Target, "\") > 0 And Target <> "updater.lst" Then
            Call MkDir(Split(Target, "\")(0))
        End If
        oStream.SaveToFile App.Path & "\" & Target, 2
        oStream.Close
        DownloadFile = True
        Exit Function
    End If
dError:
    DownloadFile = False
End Function


Por cierto, como has pensado en pagarme el trabajo que estoy haciendo? Yo no programo gratis... te mando un MP informando de mis precios por horas.

Saludos y hasta mañana! :D
#437
Cita de: rapbyone en 14 Octubre 2013, 17:25 PM
jajaj lo siento amigo  ;D es que es para un proyecto muy importante, la idea es que pueda actualizar archivos y carpetas, ya tengo mi programa, pero seria muy útil que al  abrir el programa, le avisara al usuario que hay una nueva versión y que actualizara los archivos.

Muchas gracias amigo,  ;-)

Bueno ya lo tengo terminado (ahora solo falta el diseño, ventanas, control de errores, mensajes al usuario, etc.... Pero la "base" ya está funcionando perfectamente. Además, dada la naturaleza del propio updater, también sirve como Web-Installer; es decir, que el propio actualizador se podría utilizar como instalador del programa. El funcionamiento es muy sencillo:

El programador genera una lista que incluye el nombre de los ficheros de su APP, su tamaño en bytes y su hash CRC32. Dicha lista se almacena en la web/ftp. El updater descarga esa lista y efectua 3 comparaciones:

Si existe el fichero del listado en el equipo -> Si no existe lo descarga
Si el fichero en local tiene los mismos bytes que el fichero remoto -> Si no coincide lo descarga
Si el fichero en local tiene un CRC32 distinto al fichero remoto -> si no coincide lo descarga.

Además permite auto-actualizar el modulo principal de tu APP, incluso si está en ejecución. Y si añadimos un fichero llamado whatsnew.txt, lo descarga y lo ejecuta para que el user vea los cambios de tus actualizaciones. Tambien el programa permite el parámetro /auto, para lanzar la auto-actualización de golpe

Bueno, lo dicho, voy a terminar de trabajar el diseño y abre un hilo nuevo :)
#438
Cita de: simorg en 14 Octubre 2013, 20:13 PM
Hola, lamento no poder ayudarte más, por que no recuerdo que programa usé en alguna ocasión para hacer eso, hay un programa que clona lo que deberia haber detras de algo, o sea quita la letra y dibuja el fondo que supuestamente está detras, pero no recuerdo que programa era.

Esperemos que alguien más que lea esto te pueda indicar cual es. Sorry. ;D


Salu2.

Hay varios programas, pero el mejor de todos es el Photoshop con la herramienta "Content Aware".

Se podría mirar de hacer con GIMP o Paint.Net (éste último muy bueno, gratis y ligero).

EDIT -> http://www.dpreview.com/articles/1064681564/content-aware-fill-in-gimp-resynthesizer-heal-selection-walkthrough Aqui enseñan Content Aware para GIMP
#439
Cita de: rapbyone en 14 Octubre 2013, 15:09 PM
Una ayuda por favor amigos  :P o alguien conoce algún otro actualizador??

Visto lo visto, la cantidad de dudas que está generando éste hilo.... me veo obligado a participar de alguna forma.

Entre hoy y mañana programaré un sistema de actualizaciones más sencillo y fácil de utilizar, ok? Solo necesito algo 1 día para programarlo y prometo que será el sistema más útil y sencillo que jamás encontraréis :P
#440
Foro Libre / Re: Cuántos tenéis novia?
14 Octubre 2013, 00:27 AM
No te preocupes, tarde o temprano, encontrarás a alguien. Intenta no pensar en ese tipo de cosas, cuando dejas de buscar algo es cuando lo encuentras.

Ser un poco extrovertido suele ayudar, pero a la larga una buena chica se fijará si la haces reír y divertir. Yo cuando tenía vuestra edad estaba en la misma situación (nunca me salía novia xD). Pero al final encontré a una buena chica y ya llevamos 3 años y medio juntos.

No te preocupes, de verdad, nadie se queda solo. No te has dado cuenta la cantidad de feos, gordos, estúpidos y retrasados que tienen novia? Si ellos lo consiguen... cualquiera también. Solo es cuestión de esperar y no desesperar.