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 22 23 24 25 26 27 28 ... 59
121  Media / Juegos y Consolas / Re: Su juego favorrito? en: 1 Diciembre 2025, 09:03 am
El mio es Age de Empires II The Conquerors (el original del año 2000 aprox)
122  Foros Generales / Foro Libre / Desmantelan por primera vez en España una red de estafas con envíos masivos de mensajes y llamadas fraudulentas en: 30 Noviembre 2025, 16:10 pm
Desmantelan por primera vez en España una red de estafas con envíos masivos de mensajes y llamadas fraudulentas


La Guardia Civil ha logrado desmantelar por primera vez en España una estructura tecnológica de gran capacidad, al parecer empleada para enviar de forma masiva mensajes y hacer llamadas fraudulentas y que era puesta a disposición de redes de ciberdelincuentes de todo el mundo.

Leer más: https://www.europapress.es/comunitat-valenciana/noticia-desmantelan-primera-vez-espana-red-estafas-envios-masivos-mensajes-llamadas-fraudulentas-20251128130002.html?s=03


123  Foros Generales / Foro Libre / Desvelan la contraseña de la DGT en Informativos Telecinco y es tan fácil que cualquiera podría adivinarla en: 26 Noviembre 2025, 15:51 pm


Durante el telediario, varios usuarios han podido capturar el dominio privado de la DGT, junto a las credenciales de inicio de sesión, con una de las contraseñas más fáciles.
Enlace:
https://computerhoy.20minutos.es/tecnologia/desvelan-contrasena-dgt-informativos-telecinco-es-tan-facil-que-cualquiera-podria-adivinarla_6902392_0.html
124  Seguridad Informática / Hacking Wireless / Re: necesito ayuda en: 26 Noviembre 2025, 08:29 am
Citar
¡Saludos, camaradas del foro!

Mr.Byte tiene toda la razón. Esa BrosTrend Wi-Fi 6E, aunque promete velocidades altas, suele tener problemas de compatibilidad con las herramientas de pentesting y el modo monitor en Linux, especialmente en distribuciones como Kali.  La información que aporta sobre los chipsets es crucial.

El problema no es tanto la Raspberry Pi 4, sino el chipset de la tarjeta Wi-Fi. Muchos adaptadores "modernos" (como este Wi-Fi 6E) sacrifican compatibilidad con el modo monitor por razones de diseño y optimización para el uso común (navegar por internet, streaming, etc.). El modo monitor es esencial para la inyección de paquetes y el análisis de tráfico, que son técnicas centrales en la ciberseguridad y el hacking ético.

Resumiendo:

    No esperes que la BrosTrend Wi-Fi 6E funcione correctamente con Kali para inyección de paquetes.  Es probable que no entre en modo monitor, o que lo haga de forma inestable, generando errores y frustración.

    Prioriza las tarjetas con los chipsets que menciona Mr.Byte:

    Atheros (AR9271):  Una opción veterana pero fiable y con gran soporte.

    Ralink/Mediatek (RT5370, MT7612U):  Suelen ser una buena relación calidad-precio y tienen buen soporte.

    Realtek RTL8812AU/RTL8187:  Bastante comunes y con buen soporte, pero a veces requieren la instalación de drivers específicos (cuidado con la fuente de esos drivers).



Recomendaciones concretas (basadas en mi experiencia y lo que se discute en elhacker.net):

    TP-Link TL-WN722N:  Con chipset Atheros AR9271.  Es un clásico, económica y funciona de maravilla.  Es un poco antigua en cuanto a estándares Wi-Fi, pero para pentesting es perfecta.

    Alfa AWUS036NHA:  Otra opción basada en Atheros, un poco más cara pero con mejor antena.

    Alfa AWUS036NH: Similar a la anterior, con más potencia en la antena.

    Algunas tarjetas con chipset RTL8812AU:  Pueden funcionar bien, pero investiga bien la compatibilidad y la necesidad de drivers adicionales.  Busca en el foro experiencias de otros usuarios.



Recuerda: Antes de comprar cualquier tarjeta, busca en elhacker.net y en otros foros de ciberseguridad si alguien ha probado ese modelo específico con Kali en una Raspberry Pi 4.  La experiencia de otros usuarios es invaluable.

¡Espero que esta información te sea útil, mikima!  No dudes en preguntar si tienes más dudas.  ¡Y recuerda, la paciencia y la investigación son clave en este mundo!
125  Seguridad Informática / Hacking Wireless / Re: necesito ayuda en: 26 Noviembre 2025, 08:26 am
Amplio la información:
Las tarjetas USB WiFi más recomendadas para Raspberry Pi que soportan modo monitor son aquellas basadas en chipsets Atheros (AR9271), Ralink/Mediatek (RT5370, MT7612U) y Realtek RTL8812AU/RTL8187. Estas son las que mejor funcionan con herramientas como Aircrack-ng o Kismet en Raspberry P

https://www.cellstream.com/2024/03/25/a-list-of-usb-wi-fi-adapters-that-support-monitor-mode/
126  Seguridad Informática / Hacking Wireless / Re: necesito ayuda en: 25 Noviembre 2025, 16:12 pm
Según leo en las características de uno muy similar en Amazon; NO ES COMPATIBLE CON KALI

https://www.amazon.es/BrosTrend-WiFi-AX300-Linux-USB/dp/B0CFFF4LNG
127  Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / Re: La baliza v16 en: 24 Noviembre 2025, 16:38 pm
Además de todo lo aportado por Sondoku, hay que añadir que si la baliza emite, hay un gasto de batería, y en una semana el aparato quedará inservible.
128  Foros Generales / Foro Libre / Re: Castigado por usar una imagen que hizo otro... usando IA. en: 22 Noviembre 2025, 16:49 pm
Bueno, es un tema algo mas complejo, segun la noticia, el "creador" utilizó un prompt muy largo, y eso le da protección. Si hubiera utilizado un prompt de una sola linea no tendría la protección legal.

El otro dia, utilice una IA para crear un juego que use una sola linea "crear juego tipo Arkanoid", y en un minuto obtuve el juego.
Soy yo el creador de dicho juego? Que pensáis?

El juego, hecho 100% por IA :
https://wormhole.app/xkavRP#lp4PJqXhzYF5I0MnyaWNuw


Código:(copiarlo y crear un archivo con la extensión HTML)
Código
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.    <meta charset="UTF-8">
  4.    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5.    <title>Arkanoid con Canvas</title>
  6.    <style>
  7.        body {
  8.            background-color: #111;
  9.            display: flex;
  10.            justify-content: center;
  11.            align-items: center;
  12.            height: 100vh;
  13.            margin: 0;
  14.            font-family: 'Courier New', Courier, monospace;
  15.            color: white;
  16.        }
  17.        canvas {
  18.            background-color: #000;
  19.            border: 2px solid #fff;
  20.        }
  21.    </style>
  22. </head>
  23.  
  24.    <canvas id="gameCanvas" width="480" height="320"></canvas>
  25.  
  26.    <script>
  27.        // --- CONFIGURACIÓN INICIAL ---
  28.        const canvas = document.getElementById('gameCanvas');
  29.        const ctx = canvas.getContext('2d');
  30.  
  31.        // --- CONSTANTES DEL JUEGO ---
  32.        const PADDLE_WIDTH = 75;
  33.        const PADDLE_HEIGHT = 10;
  34.        const BALL_RADIUS = 8;
  35.        const BRICK_WIDTH = 75;
  36.        const BRICK_HEIGHT = 20;
  37.        const BRICK_PADDING = 10;
  38.        const BRICK_OFFSET_TOP = 30;
  39.        const BRICK_OFFSET_LEFT = 30;
  40.        const BRICK_ROWS = 3;
  41.        const BRICK_COLS = 5;
  42.  
  43.        // --- VARIABLES DEL JUEGO ---
  44.        let score = 0;
  45.        let lives = 3;
  46.  
  47.        // --- OBJETO PALETA ---
  48.        const paddle = {
  49.            x: (canvas.width - PADDLE_WIDTH) / 2,
  50.            y: canvas.height - PADDLE_HEIGHT - 10,
  51.            width: PADDLE_WIDTH,
  52.            height: PADDLE_HEIGHT,
  53.            speed: 7
  54.        };
  55.  
  56.        // --- OBJETO PELOTA ---
  57.        const ball = {
  58.            x: canvas.width / 2,
  59.            y: canvas.height - 30,
  60.            dx: 3, // Velocidad en el eje X
  61.            dy: -3, // Velocidad en el eje Y
  62.            radius: BALL_RADIUS
  63.        };
  64.  
  65.        // --- CONTROL DE TECLAS ---
  66.        let rightPressed = false;
  67.        let leftPressed = false;
  68.  
  69.        // --- INICIALIZACIÓN DE LOS BLOQUES ---
  70.        // Creamos una matriz 2D para los bloques
  71.        const bricks = [];
  72.        for (let r = 0; r < BRICK_ROWS; r++) {
  73.            bricks[r] = [];
  74.            for (let c = 0; c < BRICK_COLS; c++) {
  75.                // status: 1 = visible, 0 = destruido
  76.                bricks[r][c] = { x: 0, y: 0, status: 1 };
  77.            }
  78.        }
  79.  
  80.        // --- EVENT LISTENERS (para el control de la paleta) ---
  81.        document.addEventListener("keydown", keyDownHandler);
  82.        document.addEventListener("keyup", keyUpHandler);
  83.        document.addEventListener("mousemove", mouseMoveHandler); // Opcional: control con ratón
  84.  
  85.        function keyDownHandler(e) {
  86.            if (e.key === "Right" || e.key === "ArrowRight") {
  87.                rightPressed = true;
  88.            } else if (e.key === "Left" || e.key === "ArrowLeft") {
  89.                leftPressed = true;
  90.            }
  91.        }
  92.  
  93.        function keyUpHandler(e) {
  94.            if (e.key === "Right" || e.key === "ArrowRight") {
  95.                rightPressed = false;
  96.            } else if (e.key === "Left" || e.key === "ArrowLeft") {
  97.                leftPressed = false;
  98.            }
  99.        }
  100.  
  101.        // Opcional: control con el ratón
  102.        function mouseMoveHandler(e) {
  103.            const relativeX = e.clientX - canvas.offsetLeft;
  104.            if(relativeX > 0 && relativeX < canvas.width) {
  105.                paddle.x = relativeX - paddle.width / 2;
  106.            }
  107.        }
  108.  
  109.        // --- FUNCIONES DE DIBUJO ---
  110.  
  111.        function drawBall() {
  112.            ctx.beginPath();
  113.            ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2);
  114.            ctx.fillStyle = "#0095DD";
  115.            ctx.fill();
  116.            ctx.closePath();
  117.        }
  118.  
  119.        function drawPaddle() {
  120.            ctx.beginPath();
  121.            ctx.rect(paddle.x, paddle.y, paddle.width, paddle.height);
  122.            ctx.fillStyle = "#0095DD";
  123.            ctx.fill();
  124.            ctx.closePath();
  125.        }
  126.  
  127.        function drawBricks() {
  128.            for (let r = 0; r < BRICK_ROWS; r++) {
  129.                for (let c = 0; c < BRICK_COLS; c++) {
  130.                    if (bricks[r][c].status === 1) {
  131.                        const brickX = c * (BRICK_WIDTH + BRICK_PADDING) + BRICK_OFFSET_LEFT;
  132.                        const brickY = r * (BRICK_HEIGHT + BRICK_PADDING) + BRICK_OFFSET_TOP;
  133.                        bricks[r][c].x = brickX;
  134.                        bricks[r][c].y = brickY;
  135.                        ctx.beginPath();
  136.                        ctx.rect(brickX, brickY, BRICK_WIDTH, BRICK_HEIGHT);
  137.                        // Damos un color diferente a cada fila
  138.                        ctx.fillStyle = `hsl(${r * 60}, 100%, 50%)`;
  139.                        ctx.fill();
  140.                        ctx.closePath();
  141.                    }
  142.                }
  143.            }
  144.        }
  145.  
  146.        function drawScore() {
  147.            ctx.font = "16px Arial";
  148.            ctx.fillStyle = "#FFF";
  149.            ctx.fillText("Puntuación: " + score, 8, 20);
  150.        }
  151.  
  152.        function drawLives() {
  153.            ctx.font = "16px Arial";
  154.            ctx.fillStyle = "#FFF";
  155.            ctx.fillText("Vidas: " + lives, canvas.width - 65, 20);
  156.        }
  157.  
  158.        // --- DETECCIÓN DE COLISIONES ---
  159.  
  160.        function collisionDetection() {
  161.            for (let r = 0; r < BRICK_ROWS; r++) {
  162.                for (let c = 0; c < BRICK_COLS; c++) {
  163.                    const b = bricks[r][c];
  164.                    if (b.status === 1) {
  165.                        if (ball.x > b.x && ball.x < b.x + BRICK_WIDTH && ball.y > b.y && ball.y < b.y + BRICK_HEIGHT) {
  166.                            ball.dy = -ball.dy; // Invertimos la dirección de la pelota
  167.                            b.status = 0; // Marcamos el bloque como destruido
  168.                            score++;
  169.                            if (score === BRICK_ROWS * BRICK_COLS) {
  170.                                alert("¡GANASTE! &#127881;");
  171.                                document.location.reload(); // Recargamos la página para empezar de nuevo
  172.                            }
  173.                        }
  174.                    }
  175.                }
  176.            }
  177.        }
  178.  
  179.        // --- BUCLE PRINCIPAL DEL JUEGO ---
  180.        function draw() {
  181.            // Limpiamos el canvas en cada frame
  182.            ctx.clearRect(0, 0, canvas.width, canvas.height);
  183.  
  184.            // Dibujamos todos los elementos
  185.            drawBricks();
  186.            drawBall();
  187.            drawPaddle();
  188.            drawScore();
  189.            drawLives();
  190.            collisionDetection();
  191.  
  192.            // --- LÓGICA DE REBOTE DE LA PELOTA ---
  193.            // Rebote en las paredes laterales
  194.            if (ball.x + ball.dx > canvas.width - ball.radius || ball.x + ball.dx < ball.radius) {
  195.                ball.dx = -ball.dx;
  196.            }
  197.            // Rebote en la pared superior
  198.            if (ball.y + ball.dy < ball.radius) {
  199.                ball.dy = -ball.dy;
  200.            }
  201.            // Rebote en la paleta
  202.            else if (ball.y + ball.dy > paddle.y - ball.radius) {
  203.                // Comprobamos si la pelota está dentro de los límites horizontales de la paleta
  204.                if (ball.x > paddle.x && ball.x < paddle.x + paddle.width) {
  205.                    // Un toque extra: cambiamos la dirección de la pelota según dónde golpee la paleta
  206.                    const hitPos = (ball.x - (paddle.x + paddle.width / 2)) / (paddle.width / 2);
  207.                    ball.dx = hitPos * 5; // Ajusta este valor para cambiar el ángulo
  208.                    ball.dy = -ball.dy;
  209.                } else {
  210.                    // Si no toca la paleta, pierde una vida
  211.                    lives--;
  212.                    if (!lives) {
  213.                        alert("GAME OVER &#128546;");
  214.                        document.location.reload();
  215.                    } else {
  216.                        // Reseteamos la posición de la pelota y la paleta
  217.                        ball.x = canvas.width / 2;
  218.                        ball.y = canvas.height - 30;
  219.                        ball.dx = 3;
  220.                        ball.dy = -3;
  221.                        paddle.x = (canvas.width - paddle.width) / 2;
  222.                    }
  223.                }
  224.            }
  225.  
  226.            // --- MOVIMIENTO DE LA PELOTA Y LA PALETA ---
  227.            ball.x += ball.dx;
  228.            ball.y += ball.dy;
  229.  
  230.            if (rightPressed && paddle.x < canvas.width - paddle.width) {
  231.                paddle.x += paddle.speed;
  232.            } else if (leftPressed && paddle.x > 0) {
  233.                paddle.x -= paddle.speed;
  234.            }
  235.  
  236.            // Llamamos a la función draw() de nuevo para crear el bucle de animación
  237.            requestAnimationFrame(draw);
  238.        }
  239.  
  240.        // Iniciamos el juego
  241.        draw();
  242.  
  243.    </script>
  244. </body>
  245. </html>
  246.  
129  Foros Generales / Foro Libre / Re: [APORTE] Hyperlink, el primer asistente virtual con IA integrado en tu ordenador. en: 21 Noviembre 2025, 09:29 am
Navegué por la página pero no los vi.

¿Y qué hace exactamente? ¿mira todos los archivos y en base a eso da recomendaciones? ¿o puede mirar carpeta por carpeta y dar una recomendación por cada una? ¿o una por archivo dentro de una carpeta?

Lo puedes descargar en el enlace que aparece en el principio
Enlace con la traducción automática
https://hyperlink-nexa-ai.translate.goog/?_x_tr_sl=auto&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=nui

Lo que hace es que lee todos los pdfs, docs... (no sé si más tipos de formatos), y te puede contestar, a base con los documentos de tu disco duro.

Esto podría ser de utilidad en el tema científico, con los Metaanálisis o revisiones sistemáticas, de diferentes estudios . Una especie de Consensus.app pero en local.
130  Foros Generales / Foro Libre / [APORTE] Hyperlink, el primer asistente virtual con IA integrado en tu ordenador. en: 20 Noviembre 2025, 16:56 pm
Citar
Tu ordenador almacena todos tus archivos y tu información personal. Hyperlink los comprende a la perfección y te ofrece respuestas instantáneas, como Perplexity para tus archivos locales.

Convierte tu ordenador en un auténtico sistema operativo con IA, con un agente de IA totalmente privado en el dispositivo.

Bienvenido a la nueva interfaz de inteligencia personal.

https://hyperlink.nexa.ai/

Lástima de los requerimientos de Hardware, no los cumplo :-(
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 59
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines