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 - 43H4FH44H45H4CH49H56H45H

#371
Para hacer un sistema en APS.NET con C# y SQL server 2005-2008, no necesitas mas que saber las generalidades y el uso visual de un proyecto asp.net, son pocas las lineas de codigo que se necesitan.
En technet estan los modos visuales de hacer bases de datos y conexiones sin codigos simplemente arrastrar y acomodar.
#372
Deberias entender que el visual basic 6 es muy diferente a los Vb.NET y aqui no entra para nada.
Esta sección es de programacion = codigos.
Puesto que no lo publicas y siendo algo tan sencillo de hacer y para nada seguro acabo de hacer a la rapida un code que tiene la misma funcion que el tuyo (enc-desc) lo  dejo por si alguien quiere saber como funciona, aunque es demasiado obvio  :laugh:

Private Sub Command1_Click()
Dim pri As Integer
Dim seg As Integer
Dim car As Integer
Dim cadena As String
pri = 0
seg = 1
For i = 0 To Len(Text1.Text) - 1
Text1.SelStart = pri
Text1.SelLength = seg
car = Asc(Text1.SelText)
cadena = cadena & Chr(car + 14)
pri = pri + 1
seg = seg + 1
Next
Text2.Text = cadena
Text1.Text = ""
End Sub

Private Sub Command2_Click()
Dim pri As Integer
Dim seg As Integer
Dim car As Integer
Dim cadena As String
pri = 0
seg = 1
For i = 0 To Len(Text2.Text) - 1
Text2.SelStart = pri
Text2.SelLength = seg
car = Asc(Text2.SelText)
cadena = cadena & Chr(car - 14)
pri = pri + 1
seg = seg + 1
Next
Text1.Text = cadena
Text2.Text = ""
End Sub
#373
Cita de: skapunky en  2 Septiembre 2008, 10:17 AM
Esta interesante, pero una recomendación:

La parte de arriba de los botones "escanear carpeta.." y esos esta muy bien, pero el fondo del programa ese oscuro con el listbox negro...personalmente no me gusta. Te quedaria wapo wapo si también fuera del color así blanco de la segunda imágen. Un saludo.

Cuando haga algunas mejoras en los algoritmos de comparación y busqueda de codigo malicioso probare el cambio de colores (debo mencionar que tengo tendencia a los colores como el negro, azul, etc por ello lo hice de ese modo  ;D).

Cita de: Eazy en  3 Septiembre 2008, 09:57 AM
Anti Bat's Version BETA by 3h43h3h24hh234h23h4h23h4h23579031h rh13bo4h1vb4ouv123uv123voug12v3u12v3ug12v3uo12v3uv12uv3v312ouv321v xD

Al parecer hay personas que todavia no conocen la tabla de conversion hexadecimal  :-\

Gracias a todos por los comentarios  ;D.
#374
.NET (C#, VB.NET, ASP) / Anti Bat's en C#
31 Agosto 2008, 22:47 PM
Anti Bat's Version BETA
SCANNER BAT



MONITOR BAT



Creado en Visual Studio 2008 Team System compatible con cualquier Visual Studio que soporte net framework 3 o superior (ej: express)
Lenguaje c#.net

Bueno aprovechando este domingo antes de irme a echarle las cervezas hice un simple programa para escanear bat's.

Funciones:
- Escanea todos los archivos .bat  de una carpeta solamente o incluyendo los subdirectorios, esto activando o no el checkbox de subdirectorios.
- Escaneo de archivos individuales *.bat
- Eliminación de archivos *.bat que contengan código malicioso de acuerdo al update.txt
- Capacidad de renombrar y mover *.bat a *.bat.txt los cuales son colocados en el escritorio en una carpeta para análisis
- Monitor bat, el cual se encarga de monitorear la creación de bat's en una carpeta o unidad del disco duro (incluye las subcarpetas), si encontrara alguno como sucede cuando se utiliza un joiner o similar, detendrá los procesos cmd para evitar que el *.bat pueda cumplir su función y luego  será copiado a la carpeta de análisis en el escritorio y el origen sera eliminado.
- Creación de log's en "c:\log.txt" para registrar los *.bat eliminados o movidos para análisis.
- Soporta el drag and drop se puede arrastrar al listbox el *.bat que queramos analizar.
- El listbox solo mostrara la ruta de los archivos que contengan código malicioso deacuedo a lo introducido en update.txt
- Capacidad de poder mantenerse actualizado respecto a la aparición de nuevas técnicas .bat mediante el añadido de líneas o combinaciones de comandos o variables maliciosas en el update.txt.

Como funciona?
- Al iniciarse carga del archivo update.txt (que debe estar en el mismo directorio que el ejecutable) todos los strings con los nombres de comandos maliciosos u otros similares que nosotros hayamos introducido en update.txt.
- Al iniciar el escaneo de un directorio solamente o incluyendo sus subdirectorios, lee el contenido de cada bat cargándolo en un string[] para luego comprobar si contiene alguno de los string's definidos en update.txt, si así fuera lo incluye en el listbox1 para ser analizado o eliminado.
- Puede escanear solamente un archivo el cual seguirá el mismo proceso mencionado antes, si queremos podemos arrastrar un archivo .bat a el listbox para analizarlo si no se trata de un .bat el rechazara su escaneo.
- Al ingresar al monitor bat nos preguntara que directorio o unidad deseamos monitorizar en caso de no seleccionar alguna no cargara el formulario del monitor bat.
- En el monitor bat se mostrara un listbox donde nos informara de intentos de creación de archivos bat los cuales serán neutralizados y posteriormente copiados para el  análisis (útil para joiner's como el quick batch compil...).

Dejo el código para su análisis, debo mencionar que no lo revise a fondo por lo cual si hay alguna variable o algo que no encaje favor postear para su corrección.

Este es el modo sencillo de crearlo puesto que se puede reconstruir un bat que tenga ofuscado el code para saber qué es exactamente los que hace dicho .bat.

El update.txt es solo un ejemplo, cada quien que lo use deberá actualizarlo con líneas de bat's o comandos que considere maliciosos.

Para el escaneo de directorios es mejor hacerlo en carpetas definidas y no en una unidad del disco duro, en caso del monitor batch es mejor hacerlo sobre una unidad como la C:\ para un correcto funcionamiento, aunque puede hacerse en un directorio especifico.

En caso de tratarse de un código ofuscado solo basta añadir al update.txt trozos o líneas enteras de variables, comandos, combinaciones o similares de .bat maliciosos para  actualizarlo.

No soy bueno para hacer manuales o códigos comentados, así que las dudas favor postear.  :laugh:

Favor respetar derechos de autor je je!!!!    :¬¬

Enlace de descarga del ejemplo más el update.txt

http://rapidshare.com/files/141631233/Antibat.rar.html

FORM1
Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics ;


namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {       
        string[] update;
        string ranalizar = Environment.GetEnvironmentVariable ("USERPROFILE").ToString () + @"\Escritorio\Analizar";
                         
        public Form1()
        {
            InitializeComponent();                       
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            if (File.Exists(@"update.txt")) update = File.ReadAllLines(@"update.txt");
            else
            {
             MessageBox.Show("No se encuentra update.txt verifique", "Error definiciones de comandos", MessageBoxButtons.OK, MessageBoxIcon.Error);
             Application.ExitThread();
            }                           
                this.toolStrip1.ImageList = this.imageList1;
                this.toolStripButton1.ImageIndex = 0;
                this.toolStripButton2.ImageIndex = 1;
                this.toolStripButton3.ImageIndex = 2;
                this.toolStripButton4.ImageIndex = 3;
                this.toolStripButton5.ImageIndex = 4;           
        }
        // Boton Escanear Carpetas
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            scan();
        }
        // Boton Escanear Archivo
        private void toolStripButton2_Click(object sender, EventArgs e)
        {           
            listBox1.Items.Clear();
            openFileDialog1.Filter = "Archivos Bat's(*.bat)|*.bat";
            openFileDialog1.InitialDirectory = @"C:\";
            openFileDialog1.Title = "Seleccione el archivo bat a escanear";
            openFileDialog1.FileName = "*.bat";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string archivobat = openFileDialog1.FileName;
                scanfile(archivobat);
            }
            else MessageBox.Show("Seleccione un archivo .BAT para escanear", "Error archivo no seleccionado", MessageBoxButtons.OK, MessageBoxIcon.Error );
        }
        // Boton Eliminar
        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            eliminar();
        }
        // Boton Mover
        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            mover();
        }
       
        private void toolStripButton5_Click(object sender, EventArgs e)
        {
            try
            {
                Form2 yo = new Form2();
                yo.ShowDialog();
            }
            catch (Exception er)
            {
                this.Text = er.Message.ToString();
            }
        }
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (listBox1.Items.Count == 0)
            {
                toolStripButton3.Enabled = false;
                toolStripButton4.Enabled = false;
            }
            else
            {
                toolStripButton3.Enabled = true;
                toolStripButton4.Enabled = true;
            }
           
        }       
        private void listBox1_DragDrop(object sender, DragEventArgs e)
        {
            string[] dragfile = (string[])e.Data.GetData(DataFormats.FileDrop);

            foreach (string file in dragfile)
            {
                if (file.ToUpper ().Contains(".BAT"))
                {
                    listBox1.Items.Clear();
                    scanfile(file);
                    toolStripStatusLabel1.Text = "Ultimo archivo escaneado: " + file;
                }
                else MessageBox.Show("Archivo no compatible verifique que sea un .BAT", "Error Archivo no soportado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation );
            }
        }

        private void listBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
                e.Effect = DragDropEffects.All;
        }

        private void scan()
        {
            listBox1.Items.Clear();
            folderBrowserDialog1.ShowDialog();
            if (folderBrowserDialog1.SelectedPath.ToString() != "")
            {   
                analizar(folderBrowserDialog1.SelectedPath);
            }
            else
            {
                MessageBox.Show("Carpeta no valida para el analisis", "Error al Abrir la Carpeta", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void analizar(string ruta)
        {
            try
            {
                DirectoryInfo dInfo1 = new DirectoryInfo(ruta);
                if (checkBox1.Checked == true)
                {
                    FileInfo[] bats = dInfo1.GetFiles("*.BAT", SearchOption.AllDirectories);
                    foreach (FileInfo bat in bats)
                    {
                        toolStripStatusLabel1.Text = "Ultimo archivo escaneado: " + bat.FullName.ToString();
                        File.SetAttributes(bat.FullName.ToString(), FileAttributes.Normal);
                        string[] readbat = File.ReadAllLines(bat.FullName.ToString());
                        foreach (string linebat in readbat)
                        {
                            int cont = 0;
                            foreach (string def in update)
                            {
                                if (linebat.ToUpper().Contains(def.ToUpper ()))
                                {
                                    listBox1.Items.Add(bat.FullName.ToString());
                                    cont = 1;
                                    break;
                                }
                            }
                            if (cont == 1) break;
                        }
                    }
                }
                else
                {
                    FileInfo[] bats = dInfo1.GetFiles("*.BAT", SearchOption.TopDirectoryOnly);
                    foreach (FileInfo bat in bats)
                    {
                        toolStripStatusLabel1.Text = "Ultimo archivo escaneando: " + bat.FullName.ToString();
                        File.SetAttributes(bat.FullName.ToString(), FileAttributes.Normal);
                        string[] readbat = File.ReadAllLines(bat.FullName.ToString());
                        foreach (string linebat in readbat)
                        {
                            int cont = 0;
                            foreach (string def in update)
                            {
                                if (linebat.ToUpper().Contains(def.ToUpper ()))
                                {
                                    listBox1.Items.Add(bat.FullName.ToString());
                                    cont = 1;
                                    break;
                                }
                            }
                            if (cont == 1) break;
                        }
                    }

                }



            }
            catch (Exception err)
            {
                this.Text = err.Message.ToString();
            }
            toolStripButton4.Enabled = true;
        }

        private void eliminar()
        {
            try
            {
                for (int i = 0; i < listBox1.Items.Count; i++)
                    {
                        if (File.Exists(listBox1.Items[i].ToString()))
                        {
                            FileStream stream = new FileStream(@"C:\log.txt", FileMode.Append, FileAccess.Write);
                            StreamWriter writer = new StreamWriter(stream);
                            File.Delete(listBox1.Items[i].ToString());
                            listBox1.Items.Insert(i, listBox1.Items[i].ToString() + " Eliminado");
                            listBox1.Items.Remove(listBox1.Items[i + 1]);
                            writer.WriteLine(listBox1.Items[i].ToString() + "  en  " + DateTime.Now.ToString());
                            writer.Close();
                        }
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message.ToString(), "Verifique error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

         
        }
        private void mover()
        {
            try
            {
                if (!Directory.Exists(ranalizar))
                {
                    Directory.CreateDirectory(ranalizar);
                }


                for (int i = 0; i < listBox1.Items.Count; i++)
                {
                    if (File.Exists(listBox1.Items[i].ToString()))
                    {

                        FileStream stream = new FileStream(@"C:\log.txt", FileMode.Append, FileAccess.Write);
                        StreamWriter writer = new StreamWriter(stream);
                        File.Move(listBox1.Items[i].ToString(), ranalizar + @"\" + listBox1.Items[i].ToString().Substring(listBox1.Items[i].ToString().LastIndexOf(@"\"), ((listBox1.Items[i].ToString().Length)) - (listBox1.Items[i].ToString().LastIndexOf(@"\")))+ ".txt");
                        listBox1.Items.Insert(i, listBox1.Items[i].ToString() + " Movido al Escritorio carpeta Analizar");
                        listBox1.Items.Remove(listBox1.Items[i + 1]);
                        writer.WriteLine(listBox1.Items[i].ToString() + "  en  " + DateTime.Now.ToString());
                        writer.Close();
                    }
                }
            }
            catch (Exception er)
            {
                MessageBox.Show(er.Message.ToString(), "Verifique eliminacion o existencia de archivos", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void scanfile(string file)
        {           
            toolStripStatusLabel1.Text = "Ultimo archivo escaneado: " + file;
            File.SetAttributes(file, FileAttributes.Normal);
            string[] readbat = File.ReadAllLines(file);
            foreach (string linebat in readbat)
            {
                int cont = 0;
                foreach (string def in update)
                {
                    if (linebat.ToUpper().Contains(def.ToUpper ()))
                    {
                        listBox1.Items.Add(file);
                        cont = 1;
                        break;
                    }
                }
                if (cont == 1) break;
            }
        }     
    }
}


FORM2

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;

namespace WindowsFormsApplication4
{
    public partial class Form2 : Form
    {
        string ranalizar = Environment.GetEnvironmentVariable("USERPROFILE").ToString() + @"\Escritorio\Analizar";
        public Form2()
        {
            InitializeComponent();
        }
        private void monitorbatch()
        {
            if (!Directory.Exists(ranalizar)) Directory.CreateDirectory(ranalizar);

            folderBrowserDialog1.ShowDialog();
            if (folderBrowserDialog1.SelectedPath.ToString() == "")
            {
                MessageBox.Show("Carpeta o Unidad no valida para el analisis", "Error al Abrir la Carpeta o Unidad", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
               
            }
            fileSystemWatcher1.Path = folderBrowserDialog1.SelectedPath.ToString();
            label1.Text = "MONITORIZANDO   " + folderBrowserDialog1.SelectedPath.ToString();
            fileSystemWatcher1.Filter = "*.bat";
            try
            {
                fileSystemWatcher1.EnableRaisingEvents = true;
            }
            catch (Exception er)
            {
                MessageBox.Show(er.Message.ToString(), "Error en el monitor bat", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }

        }   
        private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
        {
            try
            {
                FileStream stream = new FileStream(@"C:\log.txt", FileMode.Append, FileAccess.Write);
                StreamWriter writer = new StreamWriter(stream);               
                listBox1.Items.Add(e.FullPath.ToString() + " *****INTENTA INTRODUCIRSE EN EL SISTEMA!!!");
                writer.WriteLine(e.FullPath.ToString() + " *****INTENTA INTRODUCIRSE EN EL SISTEMA!!! en " + DateTime.Now.ToString());
                writer.Close();
               
                if (e.Name.ToString().Contains(".bat"))
                {
                    matar_procesos("cmd");
                    File.SetAttributes(e.FullPath.ToString(), FileAttributes.Normal);

                    if (File.Exists(ranalizar + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt"))
                    {                       
                        File.Delete(ranalizar + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt");
                        File.Copy (e.FullPath.ToString(), ranalizar + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt");
                        File.SetAttributes(ranalizar + @"/" + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt", FileAttributes.Normal);                       
                    }
                    else
                    {                       
                        File.Copy(e.FullPath.ToString(), ranalizar + @"/" + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\")))+ ".txt");
                        File.SetAttributes(ranalizar + @"/" + e.FullPath.ToString().Substring(e.FullPath.ToString().LastIndexOf(@"\"), ((e.FullPath.ToString().Length)) - (e.FullPath.ToString().LastIndexOf(@"\"))) + ".txt", FileAttributes.Normal);
                    }                 
                    listBox1.Items.Add(e.FullPath.ToString() + " *****FUE NEUTRALIZADO");
                    FileStream stream1 = new FileStream(@"C:\log.txt", FileMode.Append, FileAccess.Write);
                    StreamWriter writer1 = new StreamWriter(stream1);                               
                    writer1.WriteLine(e.FullPath.ToString() + " *****FUE NEUTRALIZADO en " + DateTime.Now.ToString());
                    writer1.Close();
                    if(File.Exists (e.FullPath.ToString()))
                    {
                        File.Delete(e.FullPath.ToString());
                    }
                    matar_procesos("cmd");
                    MessageBox.Show("El archivo responsable fue neutralizado y copiado a escritorio - analisis", "Bloqueado Ataque malicioso", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            catch (Exception er)
            {
                this.Text = er.Message.ToString();
            }

        }
        private void matar_procesos(string proceso)
        {
            try
            {
                List<Process> procesos = Process.GetProcesses().ToList();
                for (int i = 0; i<4; i++)
                {
                    foreach (Process proc in procesos)
                    {
                        try
                        {
                            string nombproc = proc.ProcessName;
                            if (nombproc == proceso)
                            {
                                proc.Kill();
                            }
                        }
                        catch (Exception ex)
                        {
                            this.Text = ex.Message.ToString();
                        }
                    }
                }
            }
            catch (Exception er)
            {
                this.Text = er.Message.ToString();
            }
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            monitorbatch();
        }

        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            fileSystemWatcher1.EnableRaisingEvents = false;
        }

       
    }
}
#375
No deberia afectar el S.O. de 64 o 32, puesto que yo tenia V Studio Express 2008 y ahora el V Studio Team System 2008 en XP SP2 de 32, viendo el enlace del error que dejaron podria ser que tus variables de entorno no hayan sido configuradas debidamente puedes comprobarlo y buscar info al respecto, ademas podrias conseguir otro instalador para verificar, tb puedes probar el express del 2008.
Por cierto por curiosidad que procesador y memoria tienes?
#376
Scripting / Re: Crackme in batch
8 Julio 2008, 10:57 AM
2BSDE-FGMI0-0LAN0-PQRS0-UVTX8
5 minutes of work :)
I have no desire to create a keygen
Greetings
#377
Scripting / Re: Crackme in batch
7 Julio 2008, 03:32 AM
Bueno de pasadita :) fueron 2 minutos muy interesantes para ver ambos
passwords :)

carlitos.dll interesante lo de -%UN%+%i%

Y de :: SmartGenius :: son perfectamente claras las muchas variables
que tiene este batch, podrias incrementar o modificar a cada intento el
valor de %y% para hacerlo un poco menos sencillo.



#378
Scripting / CREANDO UN DOWNLOADER EN PYTHON
4 Julio 2008, 05:41 AM
Buenas, buscando información acerca de como manipular text, entry, label's y otros en python me encontre con este code, en el que se muestra como hacerlo, lo dejo por si a alguien tb le sirve.


from Tkinter import *
import os
import urllib
import threading
import time

def logs(b):
    f = open('./downloads/log.txt','aw')
    f.write ("Archivo %s" % b + "descargado %s \n" % time.strftime("a Horas: %H:%M:%S en Fecha: %D"))
    f.close()


def reporthook(blocks_read, block_size, total_size):
    if not blocks_read:
        myapp.lab1["text"] = "conexión Establecida"
        return
    if total_size < 0:
        myapp.lab1["text"] = "Bloques Leidos " % blocks_read
    else:
        amount_read = blocks_read * block_size
        myapp.lab1["text"] = "Faltan: %d Kb para terminar la Descarga" %((total_size/1024) -  (amount_read/1024))
        return
   
class Hilo(threading.Thread ):
    def run ( self ):
        try:
            i = 0
            while i==0:
                c = myapp.text3.get(1.0, 2.0)
                b = c[c.rfind('/',0,len(c))+1:len(c)]
                urllib.urlretrieve("%s" % myapp.text3.get(1.0, 2.0), 'downloads/%s' % b, reporthook=reporthook)
                myapp.lab1["text"] = "ARCHIVO %s DESCARGADO" % b
                logs(b)

                myapp.text3.delete(1.0, 2.0)

                if myapp.text3.search("http://", 1.0, 1.7):
                    myapp.lab1["text"] = "CONTINUANDO DESCARGA"
                    continue;
                else:
                    myapp.lab1["text"] = "NO HAY URLS PARA DESCARGAR"
                    break;
                                     
        except:
           myapp.lab1["text"] = "ERROR VERIFIQUE conexión Y DIRECCION URL"

class Application(Frame):

   
    def limpiar(self):
        myapp.text3.delete(1.0, END)

     
    def download(self):
        if os.path.exists("downloads")==0:
            os.makedirs("downloads")

        Hilo().start()
       
    def salir(self):

        myapp.master.destroy()
        exit()


    def agregar(self):

        myapp.text3.insert(END, myapp.text3.clipboard_get()+"\n")
                     
    def createWidgets(self):

        self.lab0 = Label(self)
        self.lab0["text"] = "INTRODUCE DIRECCION A DESCARGAR"
        self.lab0["fg"]   = "white"
        self.lab0["bg"]   = "black"
        self.lab0["width"]   = 50
        self.lab0["height"]   = 3
        self.lab0.pack({"side": "top"})


        self.lab1 = Label(self)
        self.lab1["text"] = "CONTADOR DESCARGA PREPARADO"
        self.lab1["fg"]   = "white"
        self.lab1["bg"]   = "black"
        self.lab1["width"]   = 80
        self.lab1["height"]   = 3
        self.lab1.pack({"side": "top"})


        self.but1 = Button(self)
        self.but1["text"] = "AGREGAR URL DEL PORTAPAPELES"
        self.but1["fg"]   = "white"
        self.but1["bg"]   = "blue"
        self.but1["width"]   = 30
        self.but1["height"]   = 2
        self.but1["border"]   = 4
        self.but1.grid(row = 10, sticky = E, column = 2, pady = 3)
        self.but1["command"] = self.agregar
        self.but1.pack({"side": "top"})       



        self.text3 = Text(self)
        self.text3["fg"]   = "white"
        self.text3["bg"]   = "black"
        self.text3["width"]   = 80
        self.text3.pack({"side": "top"})


        self.but2 = Button(self)
        self.but2["text"] = "SALIR"
        self.but2["fg"]   = "white"
        self.but2["bg"]   = "blue"
        self.but2["width"]   = 10
        self.but2["height"]   = 3
        self.but2["border"]   = 4
        self.but2.grid(row = 10, sticky = E, column = 2, pady = 3)
        self.but2["command"] = self.salir
        self.but2.pack({"side": "left"})

        self.but3 = Button(self)
        self.but3["text"] = "LIMPIAR LISTA URL'S"
        self.but3["fg"]   = "white"
        self.but3["bg"]   = "blue"
        self.but3["width"]   = 30
        self.but3["height"]   = 3
        self.but3["border"]   = 4
        self.but3.grid(row = 10, sticky = E, column = 2, pady = 3)
        self.but3["command"] = self.limpiar
        self.but3.pack({"side": "left"})

     
        self.but4 = Button(self)
        self.but4["text"] = "INICIAR LAS DESCARGAS"
        self.but4["fg"]   = "white"
        self.but4["bg"]   = "blue"
        self.but4["width"]   = 30
        self.but4["height"]   = 3
        self.but4["border"]   = 4
        self.but4.grid(row = 10, sticky = E, column = 2, pady = 3)
        self.but4["command"] =  self.download
        self.but4.pack({"side": "right"})


    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.createWidgets()
       

myapp = Application()
myapp.master.title("DOWNLOADER EN LINUX - GET LINUX")
myapp.master.geometry("+600+600")
myapp.master.tk_setPalette("black")
myapp.master.resizable(0,0)

myapp.mainloop()


Fuente: http://softwarelibre.org.bo/emeric/weblog/2354.html
#379
Java / Re: [Duda] Creando *.jar
24 Junio 2008, 06:01 AM
Hazle boton derecho y propiedades a Mi PC en el escritorio, luego Opciones avanzadas->Variables de entorno, busca path en variables del sistema y edita, agregando al final de la linea que se encuentre un ; y la ruta que muestras en tu respuesta quedando asi:
;C:\Archivos de programa\Java\jdk1.6.0_03\bin
aceptas todo, con esto deberia ser suficiente, pero prueba si no funciona agrega el mismo procedimiento a variables de usuario.
#380
Java / Re: [Duda] Creando *.jar
22 Junio 2008, 17:20 PM
Tus variables de entorno "PATH" de sistema podria ser o fijate si esta el ejecutable "JAR" en la carpeta "bin" de java.