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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: [1] 2
1  Programación / Programación C/C++ / [C++] Portabilidad GUI en: 21 Julio 2013, 22:47 pm
Hola. Recientemente me ha entrado el bicho por aprender C++ (vengo de Java) y quería saber qué opciones tengo para hacer mis aplicaciones GUI multiplataforma, es decir Toolkits GUI.

Mi objetivo es que no tenga que modificar nada del código para poderlo correr en otra plataforma. He leído que el más portable es WxWidgets , seguido de QT. Me agrada WxWidget porque toma la interfaz nativa del sistema.

Mis opciones:

  • gtkmm (GTK3+)
  • QT
  • WxWidgets

Si conocen más que sean buenas, agradecería que las listen.


¿Cuál toolkit es conveniente usar?



Salu2.
2  Sistemas Operativos / GNU/Linux / [Debian Wheezy] Error con repo updates en: 17 Julio 2013, 21:59 pm
Hola. Últimamente, he tenido inconvenientes al actualizar los repos de mi Debian Wheezy 7.1. Aquí les dejo lo que bota la consola y mi sources.list

  • Sources:
Código:
# Repositorios Oficiales
deb http://ftp.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.debian.org/debian/ wheezy main contrib non-free
#Repositorios Seguridad
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://ftp.debian.org/debian/ wheezy/updates main contrib non-free
# wheezy-updates
deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
# Repositorios Backports
deb http://mirrors.kernel.org/debian/ wheezy-backports main contrib non-free
deb-src http://mirrors.kernel.org/debian/ wheezy-backports main contrib non-free
deb http://ftp.debian.org/debian/ wheezy-backports main

  • Terminal:
Código:
Obj http://security.debian.org wheezy/updates Release.gpg                      
Obj http://mirrors.kernel.org wheezy-backports Release.gpg                     
Obj http://ftp.debian.org wheezy Release.gpg           
Obj http://security.debian.org wheezy/updates Release                         
Obj http://mirrors.kernel.org wheezy-backports Release                         
Ign http://ftp.debian.org wheezy/updates Release.gpg                         
Obj http://security.debian.org wheezy/updates/main i386 Packages               
Obj http://mirrors.kernel.org wheezy-backports/main Sources                   
Obj http://ftp.debian.org wheezy-updates Release.gpg   
Obj http://security.debian.org wheezy/updates/contrib i386 Packages           
Obj http://mirrors.kernel.org wheezy-backports/contrib Sources                 
Obj http://ftp.debian.org wheezy-backports Release.gpg
Obj http://security.debian.org wheezy/updates/non-free i386 Packages           
Obj http://mirrors.kernel.org wheezy-backports/non-free Sources               
Obj http://ftp.debian.org wheezy Release               
Obj http://security.debian.org wheezy/updates/contrib Translation-en           
Obj http://mirrors.kernel.org wheezy-backports/main i386 Packages             
Ign http://ftp.debian.org wheezy/updates Release       
Obj http://security.debian.org wheezy/updates/main Translation-en             
Obj http://ftp.debian.org wheezy-updates Release                               
Obj http://security.debian.org wheezy/updates/non-free Translation-en         
Obj http://ftp.debian.org wheezy-backports Release                             
Obj http://mirrors.kernel.org wheezy-backports/contrib i386 Packages         
Obj http://mirrors.kernel.org wheezy-backports/non-free i386 Packages         
Obj http://mirrors.kernel.org wheezy-backports/contrib Translation-en
Obj http://ftp.debian.org wheezy/main Sources         
Obj http://mirrors.kernel.org wheezy-backports/main Translation-en         
Obj http://mirrors.kernel.org wheezy-backports/non-free Translation-en     
Obj http://ftp.debian.org wheezy/contrib Sources       
Obj http://ftp.debian.org wheezy/non-free Sources
Obj http://ftp.debian.org wheezy/main i386 Packages
Obj http://ftp.debian.org wheezy/contrib i386 Packages
Obj http://ftp.debian.org wheezy/non-free i386 Packages
Obj http://ftp.debian.org wheezy/contrib Translation-en
Obj http://ftp.debian.org wheezy/main Translation-es
Obj http://ftp.debian.org wheezy/main Translation-en
Obj http://ftp.debian.org wheezy/non-free Translation-en
Obj http://ftp.debian.org wheezy-updates/main Sources
Obj http://ftp.debian.org wheezy-updates/contrib Sources
Obj http://ftp.debian.org wheezy-updates/non-free Sources
Obj http://ftp.debian.org wheezy-updates/main i386 Packages
Obj http://ftp.debian.org wheezy-updates/contrib i386 Packages
Obj http://ftp.debian.org wheezy-updates/non-free i386 Packages
Obj http://ftp.debian.org wheezy-updates/contrib Translation-en
Obj http://ftp.debian.org wheezy-updates/main Translation-en
Obj http://ftp.debian.org wheezy-updates/non-free Translation-en
Obj http://ftp.debian.org wheezy-backports/main i386 Packages
Obj http://ftp.debian.org wheezy-backports/main Translation-en
[b]Err http://ftp.debian.org wheezy/updates/main Sources
  404  Not Found [IP: 130.89.148.12 80]
Err http://ftp.debian.org wheezy/updates/contrib Sources
  404  Not Found [IP: 130.89.148.12 80]
Err http://ftp.debian.org wheezy/updates/non-free Sources
  404  Not Found [IP: 130.89.148.12 80]
W: Imposible obtener http://ftp.debian.org/debian/dists/wheezy/updates/main/source/Sources  404  Not Found [IP: 130.89.148.12 80]

W: Imposible obtener http://ftp.debian.org/debian/dists/wheezy/updates/contrib/source/Sources  404  Not Found [IP: 130.89.148.12 80]

W: Imposible obtener http://ftp.debian.org/debian/dists/wheezy/updates/non-free/source/Sources  404  Not Found [IP: 130.89.148.12 80]

E: Some index files failed to download. They have been ignored, or old ones used instead.[/b]


Gracias de antemano. Un saludo.
3  Sistemas Operativos / GNU/Linux / BackTrack 5r3 dual boot with Windows 8 en: 29 Junio 2013, 23:02 pm
Pues ésa es mi duda. La cosa es que tengo bastante info en W8 y no tengo un hdd externo para poder salvarla, en caso BT5 joda el grub como leí por allí..

Si se preguntan por qué coño no lo instalo en una VM, pues la razón es sencilla. Tengo 2GB de ram (core i3) y me corre como el culo  ;D

¿Alguien ya lo ha intentado?


Saludos.
4  Seguridad Informática / Seguridad / ¿Se puede evadir el UAC? en: 22 Junio 2013, 14:49 pm
Buenas, tengo un proyecto en mente y analizándolo, me vino esta pregunta:

¿Es posible evadir/desactivar implícitamente el UAC para instalar "algo" en una PC Windows sin permisos?

Leí sobre un bug en el kernel en el 2010, pero creo que ha sido parchado.


Saludos.
5  Programación / Java / [JavaFX] Gmail King Bomber. en: 21 Junio 2013, 01:27 am
Hola,

Les dejo una sencilla aplicación para spamear cuentas de correo. El code es sencillo, un Thread hace la tarea y captura las excepciones mostrando un cuadro de diálogo. Los botones y demás controles se desactivan mientras esté operativa la tarea (envío de emails). El botón borrar, como su nombre lo dice borra todos los campos a excepción del email y password atacante.


Imagen en funcionamiento:



Versión 1.0. Con un código más sencillo, sin tantos catch múltiples y ahora el trabajo por medio de un thread.

Código
  1. import java.util.Date;
  2. import java.util.Properties;
  3.  
  4. // Librerias JavaFX
  5. import javafx.application.Application;
  6. import javafx.beans.value.ChangeListener;
  7. import javafx.beans.value.ObservableValue;
  8. import javafx.event.ActionEvent;
  9. import javafx.event.EventHandler;
  10. import javafx.scene.Group;
  11. import javafx.scene.Scene;
  12. import javafx.scene.control.Button;
  13. import javafx.scene.control.Label;
  14. import javafx.scene.control.PasswordField;
  15. import javafx.scene.control.TextArea;
  16. import javafx.scene.control.TextField;
  17. import javafx.scene.image.Image;
  18. import javafx.scene.image.ImageView;
  19. import javafx.scene.paint.Color;
  20. import javafx.stage.Stage;
  21.  
  22. // librerias JavaMail
  23. import javax.mail.Message;
  24. import javax.mail.Session;
  25. import javax.mail.Transport;
  26. import javax.mail.internet.InternetAddress;
  27. import javax.mail.internet.MimeMessage;
  28. import javax.swing.JOptionPane;
  29.  
  30.  
  31. public class GmailKingBomber extends Application {
  32.  
  33. Label lblEmail,lblAsunto,lblMensaje,cantMensajes,lblActividad,lblEmailSender,lblPassSender;
  34. Button btnOk,btnBorrar;
  35. TextField txtEmail,txtAsunto,txtcantMensajes,txtEmailSender;
  36. PasswordField txtPassSender;
  37. TextArea txrMensaje,txrActividad;
  38. public void start(Stage stage){
  39.  
  40.    Group root = new Group(); // crea un panel "Grupo" (ver doc)
  41.    Scene escena = new Scene(root,550,420); // se lo asigna a la escena y configura sizes
  42.  
  43.    // email
  44.    lblEmail = new Label("Email");
  45.    lblEmail.setTextFill(Color.web("#0076a3"));
  46.    lblEmail.setLayoutX(8);
  47.    lblEmail.setLayoutY(8);
  48.    txtEmail = new TextField("");
  49.    txtEmail.setFocusTraversable(true);
  50.    txtEmail.setPrefSize(150,25);
  51.    txtEmail.setLayoutX(20);
  52.    txtEmail.setLayoutY(28);
  53.    // asunto
  54.    lblAsunto = new Label("Asunto");
  55.    lblAsunto.setTextFill(Color.web("#0076a3"));
  56.    lblAsunto.setLayoutX(8);
  57.    lblAsunto.setLayoutY(55);
  58.    txtAsunto = new TextField("");
  59.    txtAsunto.setFocusTraversable(true);
  60.    txtAsunto.setPrefSize(150,25);
  61.    txtAsunto.setLayoutX(20);
  62.    txtAsunto.setLayoutY(75);
  63.    // mensaje
  64.    lblMensaje = new Label("Mensaje");
  65.    lblMensaje.setTextFill(Color.web("#0076a3"));
  66.    lblMensaje.setLayoutX(8);
  67.    lblMensaje.setLayoutY(101);
  68.    txrMensaje = new TextArea("");
  69.    txrMensaje.setFocusTraversable(true);
  70.    txrMensaje.setPrefSize(150,80);
  71.    txrMensaje.setLayoutX(20);
  72.    txrMensaje.setLayoutY(126);
  73.    // cantidad de mensajes
  74.    cantMensajes = new Label("Cantidad de emails");
  75.    cantMensajes.setTextFill(Color.web("#0076a3"));
  76.    cantMensajes.setLayoutX(8);
  77.    cantMensajes.setLayoutY(211);
  78.    txtcantMensajes = new TextField("");
  79.    txtcantMensajes.setFocusTraversable(true);
  80.    txtcantMensajes.setPrefSize(80,25);
  81.    txtcantMensajes.setLayoutX(20);
  82.    txtcantMensajes.setLayoutY(234);
  83.     // email atacador
  84.    lblEmailSender = new Label("Email atacante");
  85.    lblEmailSender.setTextFill(Color.web("#0076a3"));
  86.    lblEmailSender.setLayoutX(8);
  87.    lblEmailSender.setLayoutY(266);
  88.    // txt email atacador
  89.    txtEmailSender = new TextField("");
  90.    txtEmailSender.setFocusTraversable(true);
  91.    txtEmailSender.setLayoutX(20);
  92.    txtEmailSender.setLayoutY(285);
  93.    // pass del atacador
  94.    lblPassSender = new Label("Pass");
  95.    lblPassSender.setTextFill(Color.web("#0076a3"));
  96.    lblPassSender.setLayoutX(8);
  97.    lblPassSender.setLayoutY(310);
  98.    //ptxt pass del atacador
  99.    txtPassSender = new PasswordField();
  100.    txtPassSender.setFocusTraversable(true);
  101.    txtPassSender.setLayoutX(20);
  102.    txtPassSender.setLayoutY(329);
  103.    // si se empieza a escribir la contrasena se activa el boton
  104.    txtPassSender.textProperty().addListener(new ChangeListener<String>() {
  105.      @Override
  106.      public void changed(ObservableValue<? extends String> observable,
  107.              String oldValue, String newValue) {
  108.  
  109.          btnOk.setDisable(false);
  110.      }
  111.     });
  112.  
  113.    // boom
  114.    btnOk = new Button("&#161;Boom!");
  115.    btnOk.setFocusTraversable(true);
  116.    btnOk.setDisable(true);
  117.    btnOk.setTextFill(Color.web("#0076a9"));
  118.    btnOk.setLayoutX(20);
  119.    btnOk.setLayoutY(385);
  120.    btnOk.setPrefSize(100,25);
  121.  
  122.        // evento del boton
  123.    btnOk.setOnAction(new EventHandler<ActionEvent>() {
  124.     public void handle(ActionEvent event){ // crea un thread para iniciar el proceso
  125.     Boom boom = new Boom();
  126.     boom.start(); // inicia la tarea
  127.     }
  128.  
  129.    });
  130.  
  131.    // boton borrar
  132.    btnBorrar = new Button("Borrar");
  133.    btnBorrar.setLayoutX(126);
  134.    btnBorrar.setLayoutY(385);
  135.    btnBorrar.setPrefSize(100,25);
  136.    btnBorrar.setOnAction(new EventHandler<ActionEvent>() {
  137.     public void handle(ActionEvent evt){
  138.     // borra todos los cambos y pone el focus en el email victima
  139.     txtEmail.setText(null);
  140.     txtAsunto.setText(null);
  141.     txrMensaje.setText(null);
  142.     txtcantMensajes.setText(null);
  143.     txrActividad.setText("");
  144.     txtEmail.requestFocus();
  145.     }
  146.    });
  147.    // textarea
  148.    lblActividad = new Label("Actividad");
  149.    lblActividad.setTextFill(Color.web("#0076a3"));
  150.    lblActividad.setLayoutX(250);
  151.    lblActividad.setLayoutY(8);
  152.    txrActividad = new TextArea();
  153.    txrActividad.setPrefSize(300,390);
  154.    txrActividad.setLayoutX(250);
  155.    txrActividad.setLayoutY(30);
  156.    txrActividad.setEditable(false); // el textarea no es editable
  157.    // imagen para el fondo
  158.    Image ima = new Image("file:htp.jpg",true);
  159.    ImageView imagen = new ImageView();
  160.    imagen.setImage(ima);
  161.    // imagen para el icono de la ventana
  162.    stage.getIcons().add(new Image("file:descarga.jpg"));
  163.    // agrega todos los componentes al panel
  164.    root.getChildren().addAll(imagen,lblEmail,btnOk,btnBorrar,txtEmail,lblAsunto,txtAsunto,lblMensaje,txrMensaje,cantMensajes,txtcantMensajes,lblEmailSender,txtEmailSender,lblPassSender,txtPassSender,lblActividad,txrActividad);
  165.    stage.setTitle("&#161;Gmail king bomber! v0.1 - Darkgus"); // titulo del "stage" ( jframe)
  166.    stage.setScene(escena); // le asigna la escena ( la escena es el panel principal, dentro esta el panel root de tipo Group)
  167.    stage.setResizable(false);
  168.    stage.show(); // mostramos la stage
  169.  
  170. }
  171.  
  172.    // clase que hace el env&#237;o de emails mediante thread
  173. private class Boom extends Thread{
  174.  
  175. private boolean continuar=true; //condicion del thread
  176.  
  177. void detener(){ // metodo para detener el thread
  178. continuar = false;
  179. }
  180. void inhabilitar() { // inhabilita los controles
  181. btnOk.setDisable(true);
  182. btnBorrar.setDisable(true);
  183. txtEmail.setEditable(false);
  184. txtAsunto.setEditable(false);
  185. txrMensaje.setEditable(false);
  186. txtcantMensajes.setEditable(false);
  187. txtEmailSender.setEditable(false);
  188. txtPassSender.setEditable(false);
  189. }
  190. void habilitar() { // habilita los controles
  191. btnOk.setDisable(false);
  192. btnBorrar.setDisable(false);
  193. txtEmail.setEditable(true);
  194. txtAsunto.setEditable(true);
  195. txrMensaje.setEditable(true);
  196. txtcantMensajes.setEditable(true);
  197. txtEmailSender.setEditable(true);
  198. txtPassSender.setEditable(true);
  199. }
  200. public void run()  { // incia el thread
  201. while(continuar) { // hace la tarea mientras continuar sea true
  202.  
  203. try {
  204. inhabilitar();
  205.                // Propiedades de la conexi&#243;n
  206.                Properties props = new Properties();
  207.                props.setProperty("mail.smtp.host", "smtp.gmail.com");
  208.                props.setProperty("mail.smtp.starttls.enable", "true");
  209.                props.setProperty("mail.smtp.port", "587");
  210.                props.setProperty("mail.smtp.user", txtEmailSender.getText());
  211.                props.setProperty("mail.smtp.auth", "true");
  212.  
  213.                // Preparamos la sesion
  214.                Session session = Session.getDefaultInstance(props);
  215.  
  216.                // Construimos el mensaje
  217.                MimeMessage message = new MimeMessage(session);
  218.                message.setFrom(new InternetAddress("yo@yo.com"));
  219.                message.addRecipient(
  220.                    Message.RecipientType.TO,
  221.                    new InternetAddress(txtEmail.getText()));
  222.                message.setSubject("Hola");
  223.                message.setText(
  224.                    "Este es un aviso de su banco: clickee aqu&#237;: www.terobolacuenta.com");
  225.  
  226.                // Lo enviamos.
  227.                int cantidad = Integer.parseInt(txtcantMensajes.getText() );
  228.                for(int i=1; i<=cantidad; i++) {
  229.                Transport t = session.getTransport("smtp");
  230.                t.connect(txtEmailSender.getText(), new String(txtPassSender.getText()));
  231.                t.sendMessage(message, message.getAllRecipients());
  232.                txrActividad.setText(txrActividad.getText() + "\n" +
  233.     "Nuevo mensaje enviado: " + new Date() + "\n" +
  234.     "Destino: " + txtEmail.getText() + "\n" +
  235.     "Asunto: " + txtAsunto.getText() + "\n" +
  236.     "Mensaje: " + txrMensaje.getText()+"\n"+"\n");
  237.  
  238.                // Cierre.
  239.                t.close();
  240.  
  241.                if(i==cantidad) {
  242.                 detener();
  243.                 habilitar();
  244.                }
  245.               } // fin for
  246.            } // fin try
  247. catch(Exception e) { //detenemos el thread, habilitamos los button y mostramos error
  248. detener();
  249. habilitar();
  250.  
  251. JOptionPane.showMessageDialog(null,"Ha ocurrido un error. Aseg&#250;rese que se hayan\nintroducido correctamente los datos","ERROR",JOptionPane.ERROR_MESSAGE);
  252. }
  253. } // fin while
  254. } // fin run
  255. } // fin clase
  256.  
  257.  
  258. public static void main(String[] args) {
  259. launch(args); // lanza la aplicacion
  260. }
  261. }
  262.  


Ejecutable:  http://www.mediafire.com/?pdqn5cz324brq6b
6  Programación / Java / WTF? en: 20 Junio 2013, 15:26 pm
Alguien sabe a qué se debe este inesperado error? (Netbeans)

Error: no se ha encontrado o cargado la clase principal "paquete".Main

PD: En JavaFX.
7  Programación / Scripting / [Python] Tkinter básico - eventos en: 18 Junio 2013, 17:00 pm
Hola compañeros. Soy novato en Python, me parece un lenguaje interesante por lo que estoy aprendiendo a programar con él.

Ayer empecé con Tkinter, y todo bien, lo único que no logro es hacer que un botón llame a una función para que muestre un resultado.

Código
  1. from tkinter import *
  2.  
  3. def operar(operacion):
  4.    if(operacion == "suma"):
  5.        print(operacion)
  6.        lbl = Label(root,text="Total: "+str(a.get()+b.get()))
  7.        lbl.grid(row=3,column=0)
  8.    elif (operacion == "resta"):
  9.        print(operacion)
  10.        lbl = Label(root,text="Total: "+str(a.get()-b.get()))
  11.        lbl.grid(row=3,column=0)
  12.  
  13. root = Tk()
  14. a = IntVar()
  15. b = IntVar()
  16. txtA = Entry(root, textvariable=a, width=15)
  17. txtB = Entry(root, textvariable=b, width=15)
  18. btnSumar = Button(root, text="Sumar", command=operar("resta"), width=15)
  19. txtA.grid(row=0,column=0)
  20. txtB.grid(row=1,column=0)
  21. btnSumar.grid(row=2,column=0)
  22. root.mainloop()
  23.  


Lo que quiero hacer es algo así (Java):

Código
  1. public class Hola {
  2.  
  3. void calcula(String operacion)
  4. {
  5.   int numero1 = Integer.parseInt(textbox1.getText());
  6.   int numero2 = Integer.parseInt(textbox2.getText());
  7.  
  8.   if(operacion.equals("suma") {
  9.    labelResultado.setText(String.valueOf(numero1+numero2));
  10.   else if (operacion.equals("resta") {
  11.    labelResultado.setText(String.valueOf(numero1-numero2));
  12.    // así con multiplicación y división
  13.  
  14.  }
  15.  
  16. // evento del boton
  17. public void actionPerformed(ActionEvent evento)
  18. {
  19.   Objet item = (String) combobox.getSelectedItem();
  20.   calcula(item)
  21.  }
  22.  

Cuando corro el programa, llama explícitamente a la función operar, si que haya presionado el botón. Esto sale por la terminal al ejecutar el script:

Código
  1. >>>
  2. resta
  3. >>>
  4.  


¿Algún entendido que pueda ayudarme?

Gracias.
8  Programación / Scripting / [ESP] Doc oficial Python 3 + Yapa en: 15 Junio 2013, 22:17 pm
Hola, aquí les dejo la documentación oficial de Python 3 (del mismo Guido).

Documentacion

De yapa, Inmersión en Python 3 en Español:

[url"http://www.detodoprogramacion.com/2012/06/inmersion-en-python-espanol-excelente.html#more"]Inmersión en Python 3[/url]


Saludos.
9  Programación / Java / Cómo programar en Java 9 edición - Deitel en: 14 Abril 2013, 14:51 pm
Hola, acá les traigo la última versión del libro más didáctico que se puede encontrar en Español. Especial para estudiar académicamente la materia.

Link -> http://www.mirrorcreator.com/files/TFGV9HE7/


El libro está scaneado. En esta edición sólo vienen los capítulos del 1 al 11. Los capítulos 12-19 están en la web de Deitel, pero obviamente necesitas un pass que viene indexado en la contraportada del libro, para descargar dichos capítulos.


Bendiciones  :D


PD: Algún master hacker que se hackee(valga la redundancia) la web para tener el libro completo :xD
10  Programación / Java / Como establecer Nimbus para todos tus Aplicaciones. en: 14 Abril 2013, 00:23 am
Hola. Para los que no les gusta la interfáz gráfica que ofrece Java(sobre todo en Windows) y quisieran que todas sus aplicaciones tengan el tema Nimbus por defecto, hacer estos pequeños pasos:

Tema Nimbus

1.- En un editor de texto, escribir las siguiente línea:

Código
  1. swing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel

2.- Guardarlo con el nombre swing.properties NOTA: No colocarle ninguna extensión(.txt,etc).

3.- Copiar el archivo y pegarlo en la carpeta lib del JDK y JRE. Osea:

Citar
Archivos de Programa/Java/jdk1.7.0_17/lib
Archivos de Programa/Java/jre/lib

Y ya está. A partir de ahora, todas nuestras aplicaciones gráficas(swing) vendrán con Nimbus.



Bendiciones  :D
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines