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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 92
51  Foros Generales / Sugerencias y dudas sobre el Foro / Re: ¿Emoticons más orientados al hacking e informática? en: 31 Enero 2023, 03:48 am
¿Se le podría pedir a alguna IA dibujante? Si no hay que dar teléfonos o algo raro, me pueden decir cual y pruebo.
Podés utilizar Stable Diffusion en tu propio hardware sin vender tu número de telefono a nadie... :silbar: Mi avatar de Messi Vegeta fue generado por la variante de openvino.

Un posible problema que veo en esto es la estereotipación o como se diga, es decir, me imagino emoticons de tipos con capucha o máscara, como está estereotipado que es un hacker ¿no?

Código
  1. (stablediffusionopenvino) $ python demo.py --seed 1337 --num-inference-steps 50 --guidance-scale 7 --prompt "An emoji from Guy Fawkes hacking with a laptop, intricate, elegant, highly detailed, digital painting, sharp, focus, by artgerm and greg rutkowski"

14:48 minutos porque mi laptop está perezosa después...



Código
  1. (stablediffusionopenvino) $ python demo.py --seed 1337 --num-inference-steps 50 --guidance-scale 7 --prompt "A man wearing a mask of Guy Fawkes hacking with a laptop, intricate, elegant, highly detailed, digital painting, sharp, focus, by artgerm and greg rutkowski"

15:25 minutos después sigue perezosa...



Mismo prompt y otros 14:51 doritos después, pero con escala de guía a 12 en lugar de 7 para que supuestamente obedezca más...




B#
52  Programación / Java / Re: Ayuda en: 30 Enero 2023, 21:51 pm
si alguien puede decirme como podría hacerlo, o quieren ver lo que llevo de código, por favor no duden en responder a éste mensaje.

Bienvenido al foro, en este foro se resuelven y ayudan a las personas en base a lo que muestres lo que tengas ya hecho y se tratará de ayudar en base a tu código.


B#
53  Programación / Programación C/C++ / Re: Error en código para Piedra, Papel, o Tijeras (C++) en: 24 Enero 2023, 04:45 am
error:E0137 "la expresión debe ser un valor L modificable"
(...)
¿Me podrían dar alguna pista para ubicarme en donde estoy fallando?

Quisiera mencionar un par de detalles:

Código
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4. #include<stdlib.h>
  5. #include<time.h>

Evitá el uso de las mismas librerías de C++ con C que definan lo mismo...

Código
  1. using namespace std;
Usar el namespace std de manera global tengo entendido que suele ser mala práctica, siempre es mejor considerar escribir la función con su namespace completo, por ejemplo:
Código
  1. std::cout << "Hola" << std::endl

Siempre recordá el uso del nombre de las variables en C++ debe tener notación húngara.

Ahora sí con respecto a tu función:
Código
  1. /* implementa aqui la funcion f_determina_ganador(int p_pc, int p_usuario)
  2.    Esta funcion debe contener la logica para determinar cual de los dos ha ganado.
  3.    Las reglas son: Piedra vence a tijera; Tijera vence a Papel; Papel vence Piedra.
  4.    Devuelve un tipo de datos char que identifica al ganador: "Computadora" o "Jugador".
  5. */
  6. char f_determina_ganador(int p_pc, int p_usuario)
  7. {
  8.    string ganador;
  9.  
  10.    if (p_pc = 1 && p_usuario = 2)
  11.        ganador = "Jugador";
  12.    else if (p_pc = 1 && p_usuario = 3)
  13.        ganador = "Computadora";
  14.    else if (p_pc = 2 && p_usuario = 1)
  15.        ganador = "Computadora";
  16.    else if (p_pc = 2 && p_usuario = 3)
  17.        ganador = "Jugador";
  18.    else if (p_pc = 3 && p_usuario = 1)
  19.        ganador = "Jugador";
  20.    else if (p_pc = 3 && p_usuario = 2)
  21.        ganador = "Computadora";
  22.    else
  23.        ganador = "Empate";  
  24. }

Recordá que char por si solo es simplemente un número entero con signo de 1 byte y no un string, aparte en cada if estás asignando los valores en lugar de compararlos (un signo igual es asignación, mientras que dos signos iguales es comparación).

Código
  1. enum
  2. {
  3.    WINNER_TYPE_PLAYER,
  4.    WINNER_TYPE_COMPUTER,
  5.    WINNER_TYPE_TIE,
  6. };
  7.  
  8. enum
  9. {
  10.    OPTION_TYPE_STONE = 1,
  11.    OPTION_TYPE_PAPER,
  12.    OPTION_TYPE_SCISSOR,
  13.    OPTION_TYPE_EXIT,
  14. };
  15.  
  16. char f_determina_ganador(int p_pc, int p_usuario)
  17. {
  18.    char cWinner;
  19.  
  20.    if (p_pc == OPTION_TYPE_STONE && p_usuario == OPTION_TYPE_PAPER)
  21.        cWinner = WINNER_TYPE_PLAYER;
  22.    else if (p_pc == OPTION_TYPE_STONE && p_usuario == OPTION_TYPE_SCISSOR)
  23.        cWinner = WINNER_TYPE_COMPUTER;
  24.    else if (p_pc == OPTION_TYPE_PAPER && p_usuario == OPTION_TYPE_STONE)
  25.        cWinner = WINNER_TYPE_COMPUTER;
  26.    else if (p_pc == OPTION_TYPE_PAPER && p_usuario == OPTION_TYPE_SCISSOR)
  27.        cWinner = WINNER_TYPE_PLAYER;
  28.    else if (p_pc == OPTION_TYPE_SCISSOR && p_usuario == OPTION_TYPE_STONE)
  29.        cWinner = WINNER_TYPE_PLAYER;
  30.    else if (p_pc == OPTION_TYPE_SCISSOR && p_usuario == OPTION_TYPE_PAPER)
  31.        cWinner = WINNER_TYPE_COMPUTER;
  32.    else
  33.        cWinner = WINNER_TYPE_TIE;
  34.  
  35.    return cWinner;    
  36. }

Con respecto a la función f_muestra_ganador que te falta se puede usar un simple switch:

Código
  1. /* Implementa aquí la función f_muestra_ganador la misma toma como parámetro un tipo de datos char
  2.    con el identificando el ganador. Debe mostrar la descripción indicando el ganador
  3. */
  4. void f_muestra_ganador(char p_ganador)
  5. {
  6.    switch(p_ganador)
  7.    {
  8.     case WINNER_TYPE_PLAYER:
  9.        std::cout << "El ganador es: Jugador" << std::endl;
  10.        break;
  11.     case WINNER_TYPE_COMPUTER:
  12.        std::cout << "El ganador es: Computer" << std::endl;
  13.        break;
  14.     case WINNER_TYPE_TIE:
  15.        std::cout << "El ganador es: Empate" << std::endl;
  16.        break;
  17.    }
  18. }

Te dejo el código completo que me funcionó a mi en Linux:



Código
  1. #include <cstdlib>
  2. #include <ctime>
  3. #include <iostream>
  4. #include <random>
  5. #include <string>
  6.  
  7. //Prototipado de las funciones o firma de las funciones
  8. int f_opcion_de_la_pc();
  9. void f_muestra_opciones_menu();
  10. char f_determina_ganador(int pp_pc, int pp_usuario);
  11. void f_muestra_ganador(char p_ganador);
  12.  
  13. enum
  14. {
  15.    WINNER_TYPE_PLAYER,
  16.    WINNER_TYPE_COMPUTER,
  17.    WINNER_TYPE_TIE,
  18. };
  19.  
  20. enum
  21. {
  22.    OPTION_TYPE_STONE = 1,
  23.    OPTION_TYPE_PAPER,
  24.    OPTION_TYPE_SCISSOR,
  25.    OPTION_TYPE_EXIT,
  26. };
  27.  
  28. int main() {
  29.  
  30.    int iUserOption;
  31.    int iPCOption;
  32.  
  33.    std::cout << " \t Bienvenidos al juego Piedra, papel y Tijera" << std::endl << std::endl;
  34.    f_muestra_opciones_menu();
  35.  
  36.    /*  Captura la opcion seleccionada por el usuario.
  37.     Valida que la opcion sea valida. Si es una entre 1 y 3, llama a la funcion
  38.     f_iPCOption() captura el resultado y pasalo como parametro junto con la
  39.     opcion tomada por el usuario a la funcion f_determina_ganador.
  40.     Si el usuario elige la opcion 4, termina el programa.
  41. */
  42.  
  43.    std::cin >> iUserOption;
  44.    if (iUserOption == OPTION_TYPE_EXIT)
  45.        return 0;
  46.  
  47.    while (iUserOption < OPTION_TYPE_STONE || iUserOption > OPTION_TYPE_EXIT)
  48.    {
  49.        std::cout << "Esa opcion no esta disponible, intentelo otra vez." << std::endl;
  50.  
  51.        f_muestra_opciones_menu();
  52.        std::cin >> iUserOption;
  53.        if (iUserOption == OPTION_TYPE_EXIT)
  54.            return 0;
  55.    }
  56.  
  57.    iPCOption = f_opcion_de_la_pc();
  58.  
  59.    /* En la función f_muestra_ganador captura ganador que devuelve
  60.        la funcion f_determina_ganador(int p_pc, int p_usuario)
  61.        Muestra el mensaje: "El ganador es: " + ganador.
  62.        Como un plus, pregunta si quiere seguir jugando y continua el juego
  63.     */
  64.    f_muestra_ganador(f_determina_ganador(iPCOption, iUserOption));
  65.  
  66.    return 0;
  67. }
  68.  
  69. //Definicion de las funciones
  70. void f_muestra_opciones_menu() {
  71.    std::cout << "\t 1 - Piedra" << std::endl;
  72.    std::cout << "\t 2 - Papel" << std::endl;
  73.    std::cout << "\t 3 - Tijera" << std::endl;
  74.    std::cout << "\t 4 - Salir" << std::endl;
  75.  
  76.    std::cout << "Elige tu opcion: ";
  77. }
  78.  
  79. //Implementar aqui la funcion f_opcion_de_la_pc()
  80. //Este funcion generara un numero aleatorio entre 1 y 3 y lo devolvera
  81. int f_opcion_de_la_pc()
  82. {
  83.    std::default_random_engine generator;
  84.    std::uniform_int_distribution<int> distribution(1,3);
  85.  
  86.    return distribution(generator);
  87. }
  88.  
  89. /* implementa aqui la funcion f_determina_ganador(int p_pc, int p_usuario)
  90.    Esta funcion debe contener la logica para determinar cual de los dos ha ganado.
  91.    Las reglas son: Piedra vence a tijera; Tijera vence a Papel; Papel vence Piedra.
  92.    Devuelve un tipo de datos char que identifica al ganador: "Computadora" o "Jugador".
  93. */
  94. char f_determina_ganador(int p_pc, int p_usuario)
  95. {
  96.    char cWinner;
  97.  
  98.    if (p_pc == OPTION_TYPE_STONE && p_usuario == OPTION_TYPE_PAPER)
  99.        cWinner = WINNER_TYPE_PLAYER;
  100.    else if (p_pc == OPTION_TYPE_STONE && p_usuario == OPTION_TYPE_SCISSOR)
  101.        cWinner = WINNER_TYPE_COMPUTER;
  102.    else if (p_pc == OPTION_TYPE_PAPER && p_usuario == OPTION_TYPE_STONE)
  103.        cWinner = WINNER_TYPE_COMPUTER;
  104.    else if (p_pc == OPTION_TYPE_PAPER && p_usuario == OPTION_TYPE_SCISSOR)
  105.        cWinner = WINNER_TYPE_PLAYER;
  106.    else if (p_pc == OPTION_TYPE_SCISSOR && p_usuario == OPTION_TYPE_STONE)
  107.        cWinner = WINNER_TYPE_PLAYER;
  108.    else if (p_pc == OPTION_TYPE_SCISSOR && p_usuario == OPTION_TYPE_PAPER)
  109.        cWinner = WINNER_TYPE_COMPUTER;
  110.    else
  111.        cWinner = WINNER_TYPE_TIE;
  112.  
  113.    return cWinner;    
  114. }
  115.  
  116.  
  117. /* Implementa aquí la función f_muestra_ganador la misma toma como parámetro un tipo de datos char
  118.    con el identificando el ganador. Debe mostrar la descripción indicando el ganador
  119. */
  120. void f_muestra_ganador(char p_ganador)
  121. {
  122.    switch(p_ganador)
  123.    {
  124.     case WINNER_TYPE_PLAYER:
  125.        std::cout << "El ganador es: Jugador" << std::endl;
  126.        break;
  127.     case WINNER_TYPE_COMPUTER:
  128.        std::cout << "El ganador es: Computer" << std::endl;
  129.        break;
  130.     case WINNER_TYPE_TIE:
  131.        std::cout << "El ganador es: Empate" << std::endl;
  132.        break;
  133.    }
  134. }


B#
54  Seguridad Informática / Hacking / Re: Modificar valores de juego online en: 23 Enero 2023, 20:02 pm
Buenas, tengo una duda y es que estoy intentando modificar ciertos valores en el juego ¨Seafight¨, el cual antes era un juego web y ahora lo han traspasado literal a unity3d (aunque aun se puede entrar online).

Habría que ver cuál es el backend del juego, si es Mono o IL2CPP y reversear el juego tomaría algo de tiempo para ver como funciona internamente.


B#
55  Programación / Programación C/C++ / Re: funciones anidadas en C en: 23 Enero 2023, 19:07 pm
¿Existe alguna forma en la que pueda anidar funciones en el lenguaje C?

En C puro no tengo idea, pero sé que en el estandar de C++11 se agregó la posibilidad de utilizar funciones lambda.

https://learn.microsoft.com/en-us/cpp/cpp/lambda-expressions-in-cpp


B#
56  Sistemas Operativos / Windows / Re: windows 7 en: 22 Enero 2023, 02:40 am
No se como las borre , ncesito descargar imagen de windows 7 cualquiera x64 y 86
Gracias de antemano

Hola, en el servidor de descargas del foro hay un par de ISOs de Windows, incluyendo una de Windows 7 de 64 bits.


B#
57  Programación / Programación General / Re: ¿A que se debe la sintaxis de ensamblador de at&t? en: 18 Enero 2023, 22:54 pm
¿Que ventaja tiene sobre las demas, ademas de verse como un plato spaghetti y ser innecesariamente incomodo de leer?

También podés especificarle al compilador GCC que compile en sintáxis tipo intel...

https://stackoverflow.com/questions/199966/how-do-you-use-gcc-to-generate-assembly-code-in-intel-syntax


B#
58  Seguridad Informática / Análisis y Diseño de Malware / Re: [MSF] Modificar un shellcode en: 14 Enero 2023, 19:50 pm
Si... Al final no quedo alternativa que modificaciones manuales. Me hubiera gustado poder ensamblar yo mismo la shellcode pero no hallo la manera.

Al menos a mi me funciono lo siguiente:

shellcode.asm:
Código
  1. .section .text
  2. .globl _start;
  3. _start:
  4. xor %eax, %eax
  5. mov $1337,%eax
  6. ret

Compilar a elf (opcional el --32 para 32 bits)
Código
  1. as --32 shellcode.asm -o shellcode.elf

Mirar el contenido del assembler:
Código
  1. objdump -d shellcode.elf

Exportar el contenido a secuencia de bytes:
Código
  1. objcopy -v -O binary shellcode.elf shellcode.bin

Comparar el contenido de los bytes con los bytes ensamblados:
Código
  1. xxd shellcode.bin


B#
59  Seguridad Informática / Análisis y Diseño de Malware / Re: Modificar un shellcode en: 11 Enero 2023, 17:20 pm
Ya intente desesamblarla con NDISASM para volver a ensamblarla despues de modificarla pero obviamente NDISASM no resulta en codigo "Ensamblable" de nuevo.
¿Probaste objdump y GNU Assembler? Si mal no recuerdo ambos son parte de GNU Binutils...

No se si Metasploit mismo ofrezca alguna forma de modificar el ensamblador.
Metasploit te ofrece el código fuente de sus payloads, algunos están bien documentados con comentarios (como los de Linux) y otros no. :silbar:


B#
60  Programación / Ingeniería Inversa / Re: Como calcular el baud rate de un UART en: 3 Enero 2023, 16:20 pm
Se que esto se puede calcular manualmente con un analizador logico, el problema es que no tengo idea de como hacerlo y lo unico que encuentro en Internet son formulas para calcular los bauds.

Fijate este video:
https://youtu.be/01mw0oTHwxg?t=716

Ahí utilizan un analizador lógico para calcular el baud rate y luego con la calculadora hacen una operación simple y obtienen el rate... Espero que te sea de utilidad. :silbar:


B#
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 92
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines