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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: [1] 2
1  Programación / PHP / Debería aprenderse HTML, CSS javascript antes que PHP? en: 25 Febrero 2013, 13:12 pm
Pues lo que dice el título del tema, o también está bien aprender PHP sin el resto?

Espero sus opiniones, saludos!
2  Programación / PHP / ¿Qué es más fácil de aprender, Cake o Zend? en: 23 Febrero 2013, 19:39 pm
Bueno, conseguí un trabajo bastante interesante y estoy aprendiendo PHP para él, que yo programo en C++, cabe aclarar que no tengo estudios formales de programación, sino que he sido totalmente autodidacta.

Necesito ponerme al día con ello lo más pronto posible. Ahora:

¿Hay algún libro de PHP que me recomienden?

Yo bajé uno que se llama "Fundamentos de PHP", de Vikram Vaswani. Maneja PHP 5.3, creo.

¿Qué framework me recomiendan más? ¿Cake o Zend?

¿Algún libro o tutorial?

Saludos!
3  Seguridad Informática / Análisis y Diseño de Malware / Cómo se puede hacer esto? en: 28 Diciembre 2011, 20:14 pm
Tomar capturas de pantalla cada cierto tiempo, y enviarlas periódicamente a algún correo electrónico.

¿Esto es difícil de hacer con C++?

Saludos!
4  Seguridad Informática / Análisis y Diseño de Malware / Alguna página con los códigos fuente de virus y gusanos? en: 27 Diciembre 2011, 03:06 am
Había una página muy famosa, vscdb (Virus Source Code Data Base) de totallygeek... pero creo que la página ya no existe.

Hay otra gran recopilación de codigos fuente de virus/gusanos? De preferencia en C++...?

Muchas gracias, saludos!
5  Programación / Programación General / Me recomiendan algún tutorial para aprender ASM desde CERO? en: 26 Diciembre 2011, 22:44 pm
Estoy aprendiendo C++, aún no sé mucho, pero también quisiera adentrarme en ASM...

Y también, si puede, recomiéndenme qué ensamblador aprender, si NASM o FASM. ¿Cuál es más fácil? y ¿Cuál es más portable?

Me gustaría un tutorial desde CERO. Que vaya de lo más básico, hasta niveles más "avanzados".

Muchas gracias!

Saludos.
6  Seguridad Informática / Análisis y Diseño de Malware / Es muy difícil crear un troyano que solo pienso usar con UNA persona? en: 26 Diciembre 2011, 02:10 am
Me refiero a que si necesito encontrar vulnerabilidades, o algo parecido...

Sólo pienso usarlo con 1 persona, que sea indetectable para ella, evadir el antivirus y todo eso...

Y... ¿Qué lenguaje me recomiendan aprender para programarlo? ¿C++ está bien?

Saludos.
7  Programación / Programación C/C++ / Problema con separar interfaz de implementación de una clase. en: 25 Diciembre 2011, 11:54 am
Verán, estoy estudiando C++ en el libro "C++ Cómo Programar de Deitel", y me dice que cuando creo una archivo de encabezado (.h) con una clase es recomendable definir las funciones miembro de la clase en un archivo de código fuente separado. Entonces, quedo con 3 archivos, así:

LibroCalificaciones.h
Código:
#include <string>
using std::string;

class LibroCalificaciones
{
public:
    LibroCalificaciones(string); // Constructor que inicializa a nombreCurso
    void establecerNombreCurso(string); // Función que establece el nombre del curso
    string obtenerNombreCurso(); // Función que obtiene el nombre del curso.
    void mostrarMensaje(); // Muestra mensaje de bienvenida.
private:
    string nombreCurso; // Nombre del curso para este LibroCalificaciones
};

LibroCalificaciones.cpp
Código:
#include <iostream>

    using std::cout;
    using std::endl;

#include "LibroCalificaciones.h"


// El constructor inicializa nombreCurso con el objeto string suministrado como argumento.
LibroCalificaciones::LibroCalificaciones(string nombre)
{
    establecerNombreCurso(nombre); // Inicializa nombreCurso
}

// Función para establecer nombreCurso
void LibroCalificaciones::establecerNombreCurso(string nombre)
{
    nombreCurso = nombre; // Almacena el nombre del curso en el objeto.
}

// Función para obtener el nombre del curso.
string LibroCalificaciones::obtenerNombreCurso()
{
    return nombreCurso;
}

// Muestra un mensaje de bienvenida.
void LibroCalificaciones::mostrarMensaje()
{
    cout << "Bienvenido al libro de calificaciones para\n" << obtenerNombreCurso()
        << "!" << endl;
}

Y por último, el programa cliente de la clase, Programa.cpp (soy bien creativo).
Código:
#include <iostream>
    using std::cout;
    using std::endl;

#include "LibroCalificaciones.h"

int main()
{
    LibroCalificaciones libroCalificaciones1("CS101 Introduccion a C++");
    LibroCalificaciones libroCalificaciones2("CS102 Estructuras de Datos");

    cout << "libroCalificaciones1 creado para el curso: " << libroCalificaciones1.
        obtenerNombreCurso()
        << "\nlibroCalificaciones2 creado para el curso: " << libroCalificaciones2.
        obtenerNombreCurso() << endl;

    return 0;
}

Bueno, ahora mi problema es que el libro me dice que debo compilar primero LibroCalificaciones.cpp, para así obtener el código objeto y blablabla, (NOTA, uso code::blocks con MinGW) pero al darle en compilar, me marca error. "Undefined reference to 'WinMain@16'.

Si trato de compilar "Programa.cpp", me salen los siguientes errores:


C:\Users\Nikolov\Desktop\CPP\Programa.o:Programa.c pp|| undefined reference to `LibroCalificaciones::LibroCalificaciones(std::str ing)'|
C:\Users\Nikolov\Desktop\CPP\Programa.o:Programa.c pp|| undefined reference to `LibroCalificaciones::LibroCalificaciones(std::str ing)'|
C:\Users\Nikolov\Desktop\CPP\Programa.o:Programa.c pp|| undefined reference to `LibroCalificaciones::obtenerNombreCurso()'|
C:\Users\Nikolov\Desktop\CPP\Programa.o:Programa.c pp|| undefined reference to `LibroCalificaciones::obtenerNombreCurso()'|
||=== Build finished: 4 errors, 0 warnings ===|

Y bueno, la única forma de "armar el programa" que he encontrado es crear un proyecto en code::blocks, meterle los 3 archivos y darle en "Build", y así sí funciona, pero no entiendo por qué.

¿Alguien me explica?

Y cómo le hago para hacer lo que me pide el libro, que es "ocultar la forma en que funcionan los funciones miembro al programador cliente de la clase"... osease que compilar LibroCalificaciones.cpp, y darlo ya compilado junto con LibroCalificaciones.h y así arrancar el programa en Programa.cpp?

Saludos, espero me ayuden =/
8  Seguridad Informática / Análisis y Diseño de Malware / C vs C++ en la programación de virus. en: 24 Diciembre 2011, 05:47 am
¿Cuál lenguaje es mejor para programar virus? ¿Por qué?

Saludos!
9  Programación / Programación General / Simulador de "La tortuga y la Liebre" :) en: 23 Diciembre 2011, 12:39 pm
Qué opinan? Creo que es el programa más complejo que he escrito en C. Qué me recomiendan para seguir aprendiendo? Algo para mejorar?

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

void carrera(int recorrido[]);
void movimiento(int recorrido[]);

int main()
{
    int recorrido[71] = {0};
    int tortuga = 1;
    int liebre = 2;
    int i;
    int x;

    srand(time(NULL));

    recorrido[1] = 4;
    carrera(recorrido);

    while(recorrido[70] == 0){
        system("cls");
        movimiento(recorrido);
        carrera(recorrido);
        }
    if(recorrido[70] == 1){
        printf("\n\nGANO LA TORTUGA!!! VIVA!!!");
        }
    if(recorrido[70] == 2){
        printf("\n\nGano La Liebre. Yupi!");
        }
    if(recorrido[70] == 3){
        printf("\n\nEsto es un empate! (Aunque la Tortuga mordio a la Liebre xD)");
        }
    getchar();
    return 0;
}

void carrera(int recorrido[])
{
    int i;
    for(i = 1; i <= 70; i++){
        if(recorrido[i] == 0)
            printf(" ");
        if(recorrido[i] == 1)
            printf("T");
        if(recorrido[i] == 2)
            printf("L");
        if(recorrido[i] == 3 && i != 1)
            printf("OUCH!!!");
        if(recorrido[i] == 4)
            printf("START");
        }
    printf("\n\n");
}

void movimiento(int recorrido[])
{
    int i;
    int azar;
    int temporal;
    int switch1 = 0;
    int switch2 = 0;

    if(recorrido[1] == 4){
        if(switch1 == 0){

            recorrido[1] = 0;
            azar = (rand() % 10) + 1;
            switch(azar){
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                    recorrido[4] += 1;
                    switch1 = 1;
                    break;
                case 6:
                case 7:
                    recorrido[1] += 1;
                    switch1 = 1;
                    break;
                case 8:
                case 9:
                case 10:
                    recorrido[2] += 1;
                    switch1 = 1;
                    break;
                }
        }
        if(switch2 == 0){

            azar = (rand() % 10) + 1;
            switch(azar){
                case 1:
                case 2:
                    recorrido[1] += 2;
                    break;
                case 3:
                case 4:
                    recorrido[10] += 2;
                    break;
                case 5:
                    recorrido[1] += 2;
                    break;
                case 6:
                case 7:
                case 8:
                    recorrido[2] += 2;
                    break;
                case 9:
                case 10:
                    recorrido[1] += 2;
                    break;
                }
        }
        }
    else{
        for(i = 1; i <= 70; i++){
            if(recorrido[i] == 1){
                if(switch1 == 0){

                    azar = (rand() % 10) + 1;
                    switch(azar){
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                        if(i+3 > 70){
                            recorrido[70] += 1;
                            recorrido[i] -= 1;
                            switch1 = 1;
                            }
                        else{
                            recorrido[i+3] += 1;
                            recorrido[i] -= 1;
                            switch1 = 1;
                            }
                        break;
                    case 6:
                    case 7:
                        if(i-6 < 1){
                            recorrido[1] += 1;
                            recorrido[i] -= 1;
                            switch1 = 1;
                            }
                        else{
                            recorrido[i-6] += 1;
                            recorrido[i] -= 1;
                            switch1 = 1;
                            }
                        break;
                    case 8:
                    case 9:
                    case 10:
                        recorrido[i+1] += 1;
                        recorrido[i] -= 1;
                        switch1 = 1;
                        break;
                        }
                    }
                }
                if(recorrido[i] == 2){
                    if(switch2 == 0){
                        azar = (rand() % 10) + 1;
                        switch(azar){
                            case 1:
                            case 2:
                                switch2 = 1;
                                break;
                            case 3:
                            case 4:
                                if(i+9 > 70){
                                    recorrido[70] += 2;
                                    recorrido[i] -= 2;
                                    }
                                else{
                                    recorrido[i+9] += 2;
                                    recorrido[i] -= 2;
                                    }
                                switch2 = 1;
                                break;
                            case 5:
                                if(i-12 < 1){
                                    recorrido[1] += 2;
                                    recorrido[i] -= 2;
                                    }
                                else{
                                    recorrido[i-12] += 2;
                                    recorrido[i] -= 2;
                                    }
                                switch2 = 1;
                                break;
                            case 6:
                            case 7:
                            case 8:
                                recorrido[i+1] += 2; // Talvez en esta parte haga falta una condición de switch2
                                recorrido[i] -= 2;
                                switch2 = 1;
                                break;
                            case 9:
                            case 10:
                                if(i-2 < 1){
                                    recorrido[1] += 2;
                                    recorrido[i] -= 2;
                                    }
                                else{
                                    recorrido[i-2] += 2;
                                    recorrido[i] -= 2;
                                    }
                                switch2 = 1;
                                break;
                            }
                        }
                    }
                if(recorrido[i] == 3){
                    if(switch1 == 0){
                        azar = (rand() % 10) + 1;
                        switch(azar){
                            case 1:
                            case 2:
                            case 3:
                            case 4:
                            case 5:
                                if(i+3 > 70){
                                    recorrido[70] += 1;
                                    recorrido[i] -= 1;
                                    }
                                else{
                                    recorrido[i+3] += 1;
                                    recorrido[i] -= 1;
                                    }
                                switch1 = 1;
                                break;
                            case 6:
                            case 7:
                                if(i - 6 < 1){
                                    recorrido[1] += 1;
                                    recorrido[i] -= 1;
                                    }
                                else{
                                    recorrido[i-6] += 1;
                                    recorrido[i] -= 1;
                                    }
                                switch1 = 1;
                                break;
                            case 8:
                            case 9:
                            case 10:
                                recorrido[i+1] += 1; //Talvez necesite condicion de switch1
                                recorrido[i] -= 1;
                                switch1 = 1;
                                break;
                            }
                        }
                    if(switch2 == 0){
                        azar = (rand() % 10) + 1;
                        switch(azar){
                            case 1:
                            case 2:
                                switch2 = 1;
                                break;
                            case 3:
                            case 4:
                                if(i+9 > 70){
                                    recorrido[70] += 2;
                                    recorrido[i] -= 2;
                                    }
                                else{
                                    recorrido[i+9] += 2;
                                    recorrido[i] -= 2;
                                    }
                                switch2 = 1;
                                break;
                            case 5:
                                if(i - 12 < 1){
                                    recorrido[1] += 2;
                                    recorrido[i] -= 2;
                                    }
                                else{
                                    recorrido[i-12] += 2;
                                    recorrido[i] -= 2;
                                    }
                                switch2 = 1;
                                break;
                            case 6:
                            case 7:
                            case 8:
                                recorrido[i+1] += 2;
                                recorrido[i] -= 2;
                                switch2 = 1;
                                break;
                            case 9:
                            case 10:
                                if(i-2 < 1){
                                    recorrido[1] += 2;
                                    recorrido[i] -= 2;
                                    }
                                else{
                                    recorrido[i-2] += 2;
                                    recorrido[i] -= 2;
                                    }
                                switch2 = 1;
                                break;
                            }
                        }
                    }
                }
            }
        }


Saludos!
10  Seguridad Informática / Análisis y Diseño de Malware / ¿Por dónde empezar para aprender a programar virus en lenguaje C? en: 21 Diciembre 2011, 11:56 am
Bueno... siempre me han llamado mucho la atención los virus informáticos... y pues... no sé por donde empezar para aprender a hacerlos.

Quiero aprender a hacerlos en lenguaje C... sé programar muy poco (programas de 350 lineas máximo... simuladores de juegos más que nada).

Tengo un libro "C, C++ y Java" de Deitel.

Por donde empiezo?

Me gustaría que alguien me guiára.

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