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 / Desarrollo Web / Insertar programación tradicional en un CMS en: 19 Diciembre 2013, 21:05 pm
Hola,

El asunto es que tengo un sitio web que, en principio, lo programé a pelo, usando HTML + PHP + CSS y algo de javascript. Ha ido creciendo y claro, ahora me gustaría cambiarle el diseño a algo más "profesional", además de añadirle una serie de secciones nuevas y me encuentro en la tesitura de que eso me llevaría bastante tiempo y, como son soluciones que ya están más que implementadas en cualquier CMS y, seguramente, mucho mejor de lo que yo lo haré, me gustaría cambiar.

El primero que pensé fue Joomla pero, con su modelo-vista-controlador me daría montón de trabajo adaptar cada una de las funcionalidades. ¿Conocéis alguno en el que pueda meter mis funciones PHP sin retocarlas demasiado?

Gracias por adelantado.
2  Sistemas Operativos / GNU/Linux / Ubuntu server se apagó solo en: 9 Mayo 2013, 16:50 pm
Hola,

Os pongo en situación. El servidor llevaba encendido algo más de 28 días sin dar ningún problema. Ya lo tengo desde hace tiempo y siempre tocaba reiniciarlo antes por actualizaciones y demás, pero en esta ocasión no fue así y ahí lo dejé. Es un VPS, así que hoy intentando conectarme a uno de los servicios que corre, pues no funcionaba. Me conecto a la página de mi proveedor y veo que está OFF. Lo enciendo y todo vuelve a ir sin problemas, reviso los logs que tengo y no veo nada extraño, más allá de una IP africana que estaba intentando entrar por ssh y no lo consiguió. Tampoco sé exactamente cuales son los logs que tengo que mirar, he consultado varias páginas y hacen hincapié en 2:

- /var/logs/messages
- /var/logs/secure

Ambos no los tengo, yo reviso /var/logs/syslog y lo que me sale es lo que os comento. ¿Alguna idea de alguien que controle?

Un saludo y gracias,
Belgarion.
3  Sistemas Operativos / GNU/Linux / Configurar el archivo sudoers en: 4 Febrero 2013, 15:37 pm
Hola,

A ver, os pongo en situación. He creado 2 usuarios nuevos, supongamos que son fulanito y menganito. Me dirijo a añadir alguna línea al archivo /etc/sudoers para que fulanito pueda ejecutar los mismos comandos que menganito. Como ambos son de reciente creación, tienen los mismos privilegios, pero quiero que fulanito pueda administrar todo lo que hace menganito también. Por tanto, añado esta línea:

fulanito   ALL=(menganito) ALL

El tema es que creo un proceso desde menganito y trato de matarlo con fulanito y me tira operación no permitida. Por tanto, algo hago mal. A ver si alguien sabe.

Un saludo.
4  Sistemas Operativos / GNU/Linux / Frikada, a ver si alguien sabe... en: 29 Septiembre 2012, 21:25 pm
Aclaro desde el principio que no puedo hacer un programita que me lo haga, debe ser con comandos linux solamente.

El ejercicio pide esto:

Citar
Sin usar un editor, indica los comandos a seguir para que los dos últimos campos (datos)
de cada línea de tu fichero misdatos, se coloquen al comienzo de esa línea. El resultado debe
almacenarse en el fichero llamado misdatos_1. Es decir, si la línea tiene los siguientes datos.
1025.6 0.00751439 12.2981 -3.95028e-07 0.569316 976.555 -3.11383e+09 2.88912e+12 0.238935
11.5923 14.9557 254.925 -2.52062 cn vit
El resultado que se desea será:
cn vit 1025.6 0.00751439 12.2981 -3.95028e-07 0.569316 976.555 -3.11383e+09 2.88912e+12
0.238935 11.5923 14.9557 254.925 -2.52062

Por si no se ha entendido muy bien, básicamente necesito que las 2 últimas palabras, de cada línea de un fichero de datos, pasen al principio de otro fichero de datos, concatenando la información que precedía a estas dos últimas palabras, en cada línea, después de esas 2 palabras. Sospecho que el comando cut me podría servir al menos para recortar esas 2 palabras. Sé como hacerlo al principio, pero no al final.

¿Alguna idea?
5  Foros Generales / Dudas Generales / Uso de wget para descargar una web "distinta" en: 26 Julio 2012, 21:15 pm
Hola,

Primero disculparme si no he metido el tema en el subforo adecuado, creo que era el que más se adecuaba a su temática.

Bueno, al lío, estoy intentando descargarme una página web que carga contenidos dinámicamente. La web en cuestión es esta http://sports.betfaironline.eu/?ci=11760594&ex=1&origin=LHMA . Como veis, el cupón se genera dinámicamente y la web en sí tiene un entramado que, al menos para mí, resulta muy lioso. Bien, resulta que si con el firefox voy a Archivo > Guardar Como... y la guardo como web completa, lo hace bien, bueno puede parecer que no, pero dentro de una carpeta que genera llamada a_data, guarda un html llamado sportToday.htm que contiene la información que me interesa al fin y al cabo.

Bien, explicado todo lo anterior, yo querría hacer esto mismo con wget, ya que busco automatizarlo. He probado muchísimos parámetros que me han parecido que podrían hacer algo que me valiese, pero no he conseguido nada, wget descarga lo que le parece, que dependiendo de lo que le indiques será ficheros en blanco o parcialmente llenos, pero nunca la información que necesito. Escribo ya aquí por desesperación, a ver si a alguien sabe.

En resumen, de la página anteriormente citada busco descargarla y que se vean al menos los partidos.

Un saludo y gracias.
6  Programación / Java / Intentando grabar en excel ya existente con java en: 23 Febrero 2012, 19:12 pm
Tengo esta clase:

Código:
public static void writeExcel(String excel_file, int fila, int columna, String value)
    {
try
        {
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(excel_file)); //Se abre el fichero Excel
            HSSFSheet sheet = wb.getSheetAt(0); //Se obtiene la primera hoja
            HSSFRow row = sheet.getRow(fila); //Se obtiene la primera fila de la hoja
HSSFCell cell = row.getCell(columna);
cell.setCellValue(value);
        }
        catch(Exception e)
        {
            System.out.println("writeExcel ->"+e);
        }
    }

Y, cada vez que hago una llamada a ella me devuelve esto:

Citar
writeExcel ->java.lang.NullPointerException

En concreto se produce por culpa de esta instrucción:

Código:
cell.setCellValue(value);

Pero, ¿por qué? La función recibe lo que quiere recibir y aún así nada.
7  Programación / Programación C/C++ / Problema con variable privada en: 30 Enero 2012, 19:21 pm
Hola, bueno el tema es que las variables de tipo string que he declarado como privadas, no puedo modificarles el valor. Durante la ejecución me da un segmentation fault y estoy intentando modificar su valor desde la propia clase, así que no lo entiendo. Si la variable es pública, sin ningún problema, pero ese no es el chiste, a ver si alguien da con mi error que ahora no lo veo.

Gracias de antemano,

Belgarion.

Citar
#include <iostream>
#include <string>
#define MAXCLIENTES 10

using namespace std;

class Cliente {
private:
    string apellido;
    string dni;
    float facturacion;
public:
    string getApellido();
    void setApellido(const string &cadena);
    string getDni();
    void setDni(const string &cadena);
    float getFacturacion();
    void setFacturacion(const float &numero);
};

string Cliente::getApellido() {
    return apellido;
}

void Cliente::setApellido(const string &cadena){
    apellido.assign(cadena);
}

string Cliente::getDni() {
    return dni;
}

void Cliente::setDni(const string &cadena){
    dni.assign(cadena);
}

float Cliente::getFacturacion() {
    return facturacion;
}

void Cliente::setFacturacion(const float &numero){
    facturacion = numero;
}

int main()
{
    Cliente clientes[MAXCLIENTES];
    int cliente = 0;
    int opcion = 0;
    string auxiliar;
    float auxiliar2;
    char salir = 'S';

    while(salir != 'N' || salir != 'n') {

        cout << "Bienvenido. Inserta el numero del cliente a modificar" << endl;
        cin >> cliente;

        cout << "Ahora selecciona la tarea que deseas realizar" << endl;
        cout << "1 - Consultar apellido" << endl;
        cout << "2 - Modificar apellido" << endl;
        cout << "3 - Consultar dni" << endl;
        cout << "4 - Modificar dni" << endl;
        cout << "5 - Consultar facturacion" << endl;
        cout << "6 - Modificar facturacion" << endl;
        cin >> opcion;

        switch (opcion){
            case 1:
                cout << "El apellido del cliente es: " << clientes[MAXCLIENTES].getApellido() << endl;
                break;
            case 2:
                cout << "Introduce el nuevo apellido del cliente: ";
                cin >> auxiliar;
                clientes[MAXCLIENTES].setApellido(auxiliar);
                break;
            case 3:
                cout << "El dni del cliente es: " << clientes[MAXCLIENTES].getDni() << endl;
                break;
            case 4:
                cout << "Introduce el nuevo dni del cliente: ";
                cin >> auxiliar;
                clientes[MAXCLIENTES].setDni(auxiliar);
                break;
            case 5:
                cout << "La facturacion del cliente es: " << clientes[MAXCLIENTES].getFacturacion() << endl;
                break;
            case 6:
                cout << "Introduce el nuevo dato de facturacion del cliente: ";
                cin >> auxiliar2;
                clientes[MAXCLIENTES].setFacturacion(auxiliar2);
                break;
        }
        cout << "Deseas continuar?" << endl;
        cin >> salir;
    }
}
8  Seguridad Informática / Hacking / SSLSTRIP en: 27 Noviembre 2011, 17:02 pm
Hola a todos,

Llevo algún tiempo probando el envenenamiento de ARP con programas como ettercap y arpspoof, ambos usados conjuntamente con sslstrip. Todo funciona correcto, sslstrip genera errores cada vez que el usuario víctima se identifica en alguna web con cifrado SSL, pero la información se captura y además el usuario no nota absolutamente nada. El tema está en que, en páginas de streaming, por ejemplo youtube, megavideo, etc. He notado que el usuario víctima no puede ver el video hasta que este está totalmente cargado, lo bueno de estas webs es que permiten ver el trozo de video que se ha descargado, pero cuando está funcionando el sslstrip no. Esto llama mucho la atención claro. Primeramente me he asegurado que el problema lo daba el sslstrip, luego he estado probando por si había algún parámetro para iniciar el sslstrip y que esto no sucediera, pero no he conseguido nada. También he buscado en google, pero la gente no parece tener esa curiosidad porque no lo he visto comentado por nadie esto. Así que, recurro a vosotros, ¿alguna idea? ¿a alguien más le ha sucedido y lo ha arreglado de alguna manera?

Gracias de antemano.
9  Programación / Desarrollo Web / javascript en: 1 Junio 2011, 21:03 pm
Hola. Estoy haciendo una aplicación de gestión y para darle una mejor estética a la hora de cargar los datos he pensado en implementar el típico gif animado que aparezca durante dicha carga. Estoy usando el frameworks grails (aunque esto es indiferente). El tema es que quiero que cada vez que se pinche en un link, salga el gif, y cuando se termine de cargar la página siguiente, desaparezca. Bien, ya está logrado, un evento onClick() en los enlaces que cambia el estilo de un div que está oculto y listo.

El problema radica en que no puedo meter eventos en los enlaces, ya que el framework lo organiza a su manera y esto no es posible. Así que he pensado en meter un evento global de tipo document.onClick() y funcionar, funciona, pero me muestra el gif tanto si se pincha en un enlace como en cualquier otra cosa, incluso donde no hay nada. ¿Alguna idea para solucionar esto?

Yo pensé en que ya que los eventos globales son mi única posibilidad, quizás habría manera de detectar si se ha pinchado un botón o no se ha pinchado nada, pero le he estado dando vueltas con el firebug y no he encontrado nada tan diferenciador como para tenerlo en cuenta.

P.D.: Ya sé que si buscas un poco sobre esto, la gente mete el gif en la página que se carga, no en la que estás, pero eso no es lo que busco porque entonces el gif apenas se verá (ya lo he probado).

Gracias de antemano.
10  Programación / Programación C/C++ / Programando un chat en C en: 8 Junio 2010, 20:23 pm
Hola. Bueno, el asunto es que estoy programando un chat en C. No tengo ningún problema a la hora de comunicar un único usuario con el servidor, pero a la hora de meter 2 usuarios ya suceden problemas. Había pensado que después de entrar el primer usuario, se crease un subproceso que siguiese escuchando por si algún otro usuario quisiera entrar y compila sin ningún problema, pero me da problemas en el bind del subproceso. Llevo algún tiempo dándole vueltas y no sé que es lo que está fallando. Si me pudiérais echar un cable sería de agradecer.

El código del main es este:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <process.h>

int main(int argc, char *argv[])
{
    /* Variables para la apertura de socket */
    SOCKET sock;
    int len=0;
    char Buffer[1024];
    /* Llamada a función abrir socket */
    abrir_socket(&sock, &len);
    /* Una vez conectada una persona, abrimos sockets dependiendo de cuantos más
    se conecten */
    _beginthread(subproceso(), 0, NULL);
    while(len!=0) //mientras estemos conectados con el otro pc
    {
          len=recv(sock,Buffer,1023,0); //recibimos los datos que envie
          if(len>0) //si seguimos conectados
          {
             Buffer[len]=0; //le ponemos el final de cadena
             printf("Texto recibido:%s",Buffer); //imprimimos la cadena recibida
          }
    }
}

La función abrir socket:
Código:
#include <winsock2.h>
#include <stdio.h>
#include <conio.h>

void abrir_socket(SOCKET* variable1, int* variable2)
{
    /* Declaración de variables a usar */
    WSADATA wsa;
    struct sockaddr_in local;
    SOCKET sock;
    int len;
    /* Igualación de punteros */
    sock=*variable1;
    len=*variable2;
    //Inicializamos
    WSAStartup(MAKEWORD(2,0),&wsa);
    //Creamos el socket
    sock=socket(AF_INET,SOCK_STREAM,0);
    //defnimos dirección por defecto, ipv4 y el puerto 9999
    local.sin_family=AF_INET;
    local.sin_addr.s_addr=INADDR_ANY;
    local.sin_port=htons(9999);
    //asociamos el socket al puerto
    if(bind(sock, (SOCKADDR*) &local, sizeof(local))==-1)
    {
       printf("Error en el bind\n");
       getch();
       exit(1);
    }
    //ponemos el socket a la escucha
    if(listen(sock,1)==-1)
    {
       printf("Error en el listen\n");
       exit(1);
    }
    len=sizeof(struct sockaddr);
    //hay una conexión entrante y la aceptamos
    sock=accept(sock,(SOCKADDR*)&local,&len);
    /* Igualación de variables para su posterior devolución */
    *variable1=sock;
    *variable2=len;
}

La función para crear un subproceso:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <process.h>

void subproceso(void)
{
     /* Declaración de variables para el hijo */
     SOCKET sock;
     int len=0;
     char Buffer[1024];
     abrir_socket(&sock, &len);
     while(len!=0) //mientras estemos conectados con el otro pc
     {
          len=recv(sock,Buffer,1023,0); //recibimos los datos que envie
          if(len>0) //si seguimos conectados
          {
             Buffer[len]=0; //le ponemos el final de cadena
             printf("Texto recibido:%s",Buffer); //imprimimos la cadena recibida
          }
     }
     _endthread();
}

P.D.: Por si a alguien le resulta infumable leer todo esto, estoy programando en Dev-C++ así que el proyecto entero está aquí: http://www.deseos.ws/chat.zip
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines