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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13
11  Programación / Programación General / [DUDA] ¿Cómo funciona un hack? en: 19 Diciembre 2016, 23:10 pm
Primero que nada, iba a postear esto en programación C/C++ pero como mi pregunta es algo general no sé si irá acá, por eso lo pongo acá, si no es así, por favor muévanlo a la zona correcta.

Ok, ahora al grano. Verán, ni siquiera sé cómo empezar. Mi duda yace en que no sé cómo relacionar un programa con otro. Me leí por ahí que hay que saber cómo está construido el programa que se quiere "hackear" primero que nada.

Bien, supongamos que tenemos un programa bastante absurdo, como este:

Código
  1. #include <iostream>
  2. #include <windows.h> //Para la función Sleep.
  3.  
  4. int main() {
  5.     for(int h = 0;;h++) {
  6.          std::cout << "El valor de H es: " << h << std::endl;
  7.          Sleep(1000);
  8.     }
  9.  
  10.     return 0;
  11. }
  12.  

Ahora, ya sé cómo está construido, ¿cómo haría yo para que a través de otro programa que yo haga, la variable 'h' se reinicie a cero.

O sea, esa es mi duda, ¿cómo diantres se relaciona un programa externo con otro? Por ejemplo, más o menos como en los juegos, los shooters, que el personaje sea inmortal, o que dispare inmediatamente la mira detecte a otro personaje, etc...

Y ojo, que no pretendo crear programas maliciosos para dañar a alguien o a algo, o sea, simplemente tengo curiosidad en saber cómo carrizos funcionan esos programas.

Porque no tengo ni *** idea de cómo relacionarlos.

Un abrazo. :)
12  Programación / Programación C/C++ / [C++] Error con ficheros. en: 26 Noviembre 2016, 19:21 pm
Verán, estoy haciendo un programa simple que lee desde un archivo, el trabajo del programa es sustituir cada espacio en blanco por un guión bajo.

El programa ya está hecho (más o menos), la cosa es que, no me da ningún tipo de error sino que se crashea y deja de funcionar en su ejecución.

Acá el código que llevo hasta ahora:
Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. //Función que devuelve una línea con cada espacio en blanco con un guión bajo
  8. string reemplazar(string linea);
  9.  
  10. int main() {
  11.    //Creación del archivo.
  12.    fstream archivo("archivo.txt", ios::in | ios::out);
  13.    //Variable para almacenar cada línea del archivo.
  14.    string linea;
  15.    //Variable para reemplazar todo lo que está en el archivo.
  16.    string dArchivo = "";
  17.  
  18.    //Comprobando que el archivo exista.
  19.    if(!archivo) {
  20.        cerr << "Error: El archivo no existe." << endl;
  21.        return -1;
  22.    }
  23.  
  24.    //Leyendo cada línea del fichero.
  25.    while(!archivo.eof()) {
  26.        //Obteniendo línea por línea desde el archivo.
  27.        getline(archivo, linea);
  28.  
  29.        //Almacenando las líneas con los guiones bajos ya reemplazados.
  30.        dArchivo += reemplazar(linea) + "\n";
  31.    }
  32.  
  33.    //Sobreescribiendo el archivo con los guiones bajos ya establecidos.
  34.    archivo << dArchivo;
  35.  
  36.    //Cerrando el archivo.
  37.    archivo.close();
  38.  
  39.    return 0;
  40. }
  41.  
  42. //Implementando el método para reemplazar los espacios en blanco por un guión bajo.
  43. string reemplazar(string linea) {
  44.    //Nueva línea
  45.    string nLinea = "";
  46.  
  47.    //Sustituyendo cada espacio en blanco con un guión bajo.
  48.    for(unsigned int h = 0; h < linea.length(); h++) {
  49.        if(linea[h] == ' ') {
  50.            nLinea[h] += '_';
  51.        } else {
  52.            nLinea[h] += linea[h];
  53.        }
  54.    }
  55.  
  56.    return nLinea;
  57. }
  58.  
13  Programación / Desarrollo Web / [javascript] Duda sobre almacenamiento en una variable en: 29 Octubre 2016, 21:49 pm
Buenas a todos, estoy realizando un ejercicio de la universidad donde se nos pide que usemos interpolación de LaGrange para el cálculo de una valor Y, recibiendo de entrada el valor X desde un TextBox, ya el ejercicio está resuelto el problema es que hay como un tipo de desbordamiento, porque hice los cálculos manualmente y me da el resultado esperado, pero mostré el valor de la variable con un alert y me regresa un valor totalmente inesperado.

La función que me hace el cálculo es la siguiente:
Código
  1. function calculate() {
  2. //Value taken in order to calculate y's value into the function from the textbox
  3. var x = parseInt(document.getElementById('f_Value').value);
  4.  
  5. //L0
  6. var l_0 = ((x - 50)*(x - Math.pow(3,4))*(x - Math.pow(1,6)))/((12 - 50) * (12 - Math.pow(3,4)) * (12 - Math.pow(1,6)));
  7. //L1
  8. var l_1 = ((x - 12)*(x - Math.pow(3,4))*(x - Math.pow(1,6)))/((50 - 12) * (50 - Math.pow(3,4)) * (50 - Math.pow(1,6)));
  9. //L2
  10. var l_2 = ((x - 12)*(x - 50)*(x - Math.pow(1,6)))/((Math.pow(3,4) - 12) * (Math.pow(3,4) - 50) * (Math.pow(3,4) - Math.pow(1,6)));
  11. //L3
  12. var l_3 = ((x - 12)*(x - 50)*(x - Math.pow(3,4)))/((Math.pow(1,6) - 12) * (Math.pow(1,6)- 50) * (Math.pow(1,6) - Math.pow(3,4)));
  13.  
  14. //Final value after calculating it inside our function.
  15. var v_Function = (2 * l_0) + (4 * l_1) + (100 * l_2) + (700 * l_3);
  16.  
  17. alert(l_2);
  18. //alert("The Y value for " + x + " is: " + v_Function);
  19. }
  20.  

f_Value es el id que identifica al textbox, si meto 30000 l_2 debería obtener el valor de 1, pero en lugar de ello me retorna: 157452780.85203367, no sé si ocurre algún tipo de desbordamiento. ¿Alguien podría echarme una mano?
14  Programación / Programación C/C++ / Re: [AYUDA] ¿Qué tiene de malo este código? en: 26 Septiembre 2016, 22:16 pm
Ya, listo. Funcionó. ¡Gracias, crack81! :)
15  Programación / Programación C/C++ / [AYUDA] ¿Qué tiene de malo este código? en: 26 Septiembre 2016, 21:37 pm
Verán, estoy intentando hacer un programa bastante simple en C++ pero por alguna razón en la línea 134 me arroja un error y no puedo averiguar por qué.

¿Puede alguien echarme una mano?

Código
  1. #include <iostream>
  2. #include <sstream>
  3. #include <stdio.h>
  4.  
  5. using namespace std;
  6.  
  7. class Cliente
  8. {
  9. public:
  10.  
  11.    Cliente(string nombre, string apellido, long int cedula, short int edad);
  12.  
  13.     // funciones de la clase.
  14.     // tipo de dato a retornar/ nombre / (lista de parametros),.
  15.  
  16.     string getNombre();
  17.     string getApellido();
  18.     long int getCedula();
  19.     short int getEdad();
  20.     string toString();
  21.     void setNombre(string nombre);
  22.     void setApellido(string apellido);
  23.     void setCedula(long int cedula);
  24.     void setEdad(short int edad);
  25.     string convertirCedula(long int cedula);
  26.     string convertirEdad(short int edad);
  27.  
  28. private:
  29.  
  30.    string nombre, apellido;
  31.    long int cedula;
  32.    short int edad;
  33. };
  34.  
  35. // Constructor, fuera de la clase.
  36. Cliente::Cliente(string nombre, string apellido, long int cedula, short int edad)
  37. {
  38.    this->nombre=nombre;
  39.    this->apellido = apellido;
  40.    this->cedula = cedula;
  41.    this->edad = edad;
  42. }
  43.  
  44. string Cliente::getApellido()
  45. {
  46.    return apellido;
  47. }
  48.  
  49. string Cliente::getNombre()
  50. {
  51.  
  52.    return nombre;
  53. }
  54.  
  55. long int Cliente::getCedula()
  56. {
  57.    return cedula;
  58. }
  59.  
  60. short int Cliente::getEdad()
  61. {
  62.    return edad;
  63. }
  64.  
  65. void Cliente::setNombre(string nombre)
  66. {
  67.    this->nombre = nombre;
  68. }
  69.  
  70. void Cliente::setApellido(string apellido)
  71. {
  72.    this->apellido = apellido;
  73. }
  74.  
  75. void Cliente::setCedula(long int cedula)
  76. {
  77.  
  78.    this->cedula = cedula;
  79. }
  80.  
  81. void Cliente::setEdad(short int edad)
  82. {
  83.    this->edad = edad;
  84. }
  85.  
  86. string Cliente::toString()
  87. {
  88.  
  89.    string total;
  90.  
  91.    string cedulaTrans, edadTrans;
  92.  
  93.    cedulaTrans = convertirCedula(cedula);
  94.    edadTrans = convertirEdad(edad);
  95.  
  96.    total = nombre + "\n" + apellido + "\n" + cedulaTrans + "\n" + edadTrans;
  97.  
  98.    return total;
  99. }
  100.  
  101. string Cliente::convertirCedula(long int cedula)
  102. {
  103.      stringstream flujo;
  104.  
  105.      flujo << cedula;
  106.  
  107.      return (flujo.str());
  108. }
  109.  
  110. string Cliente::convertirEdad(short int edad)
  111. {
  112.    stringstream flujo;
  113.  
  114.    flujo << edad;
  115.  
  116.    return (flujo.str());
  117.  
  118. }
  119.  
  120. class Banco
  121. {
  122. public:
  123.  
  124.    Banco();
  125.    string agregar(Cliente c);
  126.    string mostrar();
  127.  
  128. private:
  129.  
  130.    Cliente c[20];
  131.    int cont;
  132. };
  133.  
  134. Banco::Banco()
  135. {
  136.    this->cont=0;
  137.  
  138. }
  139.  
  140. string Banco::agregar(Cliente aux){
  141.  
  142.    if(cont<20)
  143.    {
  144.        c[cont]=aux;
  145.        cont++;
  146.        return "Cliente agregado satisfactoriamente";
  147.    }
  148.  
  149.    return "Banco lleno. No se puede agregar mas personas";
  150.  
  151. }
  152.  
  153. string Banco::mostrar()
  154. {
  155.    string x;
  156.  
  157.    for(int i=0; i<cont; i++)
  158.    {
  159.        x = x + c[i].toString();
  160.    }
  161.  
  162.    return x;
  163.  
  164. }
  165.  
  166. int leerentero(string sms)
  167. {
  168.    int aux;
  169.  
  170.    cout << sms;
  171.    cin >> aux;
  172.  
  173.    return aux;
  174.  
  175. }
  176.  
  177. Cliente leercliente()
  178. {
  179.       string nombre;
  180.       string apellido;
  181.       short int edad;
  182.       long int cedula;
  183.  
  184.       cout << "\nIngrese Nombre: " << endl;
  185.       cin.clear();
  186.       fflush(stdin);
  187.       getline(cin, nombre);
  188.       cout << "\nIngrese Apellido: " << endl;
  189.       cin.clear();
  190.       fflush(stdin);
  191.       getline(cin, apellido);
  192.       cout << "\nIngrese Cedula: " << endl;
  193.       cin >> cedula;
  194.       cout << "\nIngrese Edad: " << endl;
  195.       cin >> edad;
  196.  
  197.       Cliente aux(nombre, apellido, cedula, edad);
  198.       return aux;
  199.  
  200. }
  201.  
  202. int main()
  203. {
  204.    Banco b;
  205.    int opc;
  206.    do
  207.    {
  208.  
  209.        cout << "\n[1]Agregar Persona. \n[2]Mostrar Personas. \n[3]Salir" << endl;
  210.        opc = leerentero("\nIngrese su opcion: ");
  211.  
  212.        switch(opc)
  213.        {
  214.            case 1:
  215.                cout << b.agregar(leercliente()) << endl;
  216.            break;
  217.            case 2: cout << b.mostrar() << endl;
  218.            break;
  219.            case 3: return 0;
  220.            break;
  221.  
  222.        }
  223.  
  224.    }while(opc!=3);
  225.  
  226.    return 0;
  227. }
  228.  
  229.  
16  Programación / Java / ¿Cómo detectar varias teclas por teclado simultáneamente? en: 12 Julio 2016, 23:14 pm
Verán, actualmente estoy programando un juego bastante simple en Java, pero hay una cosa. Cuando yo presiono la tecla de la flecha izquierda(por ejemplo) la nave empieza a moverse (lógicamente) hacia la izquierda, pero si mientras la tengo presionada, presiono espacio (para disparar), la nave se detiene.

Lo que quiero es que me orienten en cómo hacer que eso no suceda, es decir, que la nave no deje de moverse mientras tenga la tecla presionada independientemente si presiono espacio.

Es decir, me muevo, presiono espacio, que dispare, y si no he soltado la tecla, que no se detenga sino que siga moviéndome hasta que la suelte (en este ejemplo, la izquierda).
17  Programación / Programación C/C++ / [DUDA] Polimorfismo. en: 11 Junio 2016, 01:37 am
Buenas a todos. Necesito que me expliquen algo que me está confundiendo un poco.

Tengo un código que me he sacado de C ConClase.
El código es el siguiente.
Código
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. class Persona {
  6.  public:
  7.   Persona(const char *n) { strcpy(nombre, n); }
  8.   Persona(const Persona &p);
  9.   virtual void VerNombre() {
  10.      cout << nombre << endl;
  11.   }
  12.   virtual Persona* Clonar() { return new Persona(*this); }
  13.  protected:
  14.   char nombre[30];
  15. };
  16.  
  17. Persona::Persona(const Persona &p) {
  18.   strcpy(nombre, p.nombre);
  19.   cout << "Per: constructor copia." << endl;
  20. }
  21.  
  22. class Empleado : public Persona {
  23.  public:
  24.   Empleado(const char *n) : Persona(n) {}
  25.   Empleado(const Empleado &e);
  26.   void VerNombre() {
  27.      cout << "Emp: " << nombre << endl;
  28.   }
  29.   virtual Persona* Clonar() { return new Empleado(*this); }
  30. };
  31.  
  32. Empleado::Empleado(const Empleado &e) : Persona(e) {
  33.   cout << "Emp: constructor copia." << endl;
  34. }
  35.  
  36. class Estudiante : public Persona {
  37.  public:
  38.   Estudiante(const char *n) : Persona(n) {}
  39.   Estudiante(const Estudiante &e);
  40.   void VerNombre() {
  41.      cout << "Est: " << nombre << endl;
  42.   }
  43.   virtual Persona* Clonar() {
  44.      return new Estudiante(*this);
  45.   }
  46. };
  47.  
  48. Estudiante::Estudiante(const Estudiante &e) : Persona(e) {
  49.   cout << "Est: constructor copia." << endl;
  50. }
  51.  
  52. int main() {
  53.   Persona *Pepito = new Estudiante("Jose");
  54.   Persona *Carlos = new Empleado("Carlos");
  55.   Persona *Gente[2];
  56.  
  57.   Carlos->VerNombre();
  58.   Pepito->VerNombre();
  59.  
  60.   Gente[0] = Carlos->Clonar();
  61.   Gente[0]->VerNombre();
  62.  
  63.   Gente[1] = Pepito->Clonar();
  64.   Gente[1]->VerNombre();
  65.  
  66.   delete Pepito;
  67.   delete Carlos;
  68.   delete Gente[0];
  69.   delete Gente[1];
  70.  
  71.   return 0;
  72. }
  73.  
  74.  

La duda que tengo es la siguiente:
Si mal no tengo entendido el puntero "this" hace referencia al objeto desde cual se está llamando a una función (por ejemplo).

Entonces, al llamar a la función "clonar", tengo lo siguiente:
Código
  1. virtual Persona* Clonar() {
  2.      return new Estudiante(*this);
  3.   }
  4.  

Se supone que el parámetro "*this" hace referencia al objeto desde cuál se está llamando, que es de tipo "Persona*", pero el constructor de Estudiante, recibe un estudiante como parámetro y no una Persona. ¿Por qué es válido a hacer eso?

Sé que por polimorfismo, una persona puede ser igual a un estudiante, siempre y cuando estudiante herede de persona. Pero, ¿por qué si la función recibe un parámetro de tipo estudiante puede recibir uno de tipo persona? Es decir, estoy haciendo un estudiante igual a una persona (lo opuesto a lo que mencioné primeramente). Eso debería ser incorrecto, pero no lo es, ¿alguien me puede explicar por favor por qué?

Me estoy ahogando en un vaso de agua, lo sé. xD
18  Programación / Programación C/C++ / Re: [Estructuras] ¿Por qué me muestra basura? en: 23 Mayo 2016, 00:59 am
Damn, no sabía eso. Ya se solucionó el problema, ¡gracias! :)
19  Programación / Programación C/C++ / Re: [Estructuras] ¿Por qué me muestra basura? en: 23 Mayo 2016, 00:02 am
Acá:
Código
  1. for(int j = 0; j < nPracticos; j++) {
  2.        cout << "Nota del practico [" << (j + 1) << "] del estudiante [" << (id + 1) << "]: " << estudiante.notas.practicos[j] << endl;
  3.    }
  4.  
  5.    for(int j = 0; j < nParciales; j++) {
  6.        cout << "Nota del parcial [" << (j + 1) << "] del estudiante [" << (id + 1) << "]: " << estudiante.notas.parciales[j] << endl;
  7.    }
  8.  

Eso se encuentra dentro de la función mostrarEstudiante, y dicha función recibe a sólo un único elemento, y luego en el main llamo a esa función enviándole cada elemento del arreglo Estudiante.

Código
  1. for(int est = 0; est < nEstudiantes; est++) {
  2.        mostrarEstudiante(estudiante[est], est);
  3.    }
  4.  
20  Programación / Programación C/C++ / Re: [Estructuras] ¿Por qué me muestra basura? en: 22 Mayo 2016, 23:35 pm
Eso lo indico en el main, es decir, la función leerEstudiante recibe por referencia a sólo un único estudiante.
Y en la función main le indicó cuál de ellos dentro del arreglo de Estudiantes.
Código
  1. //Llenando cada uno de los estudiantes.
  2.    for(int est = 0; est < nEstudiantes; est++) {
  3.        llenarEstudiante(estudiante[est], est);
  4.    }
  5.  

Ahí le estoy pasando cada uno de los estudiantes a la función llenarEstudiante. Y como es por referencia, estoy modificando el elemento original.

Lo mismo con la función mostrarEstudiante, no entiendo por qué me muestra esa basura. :/
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines