Mostrando entradas con la etiqueta makers. Mostrar todas las entradas
Mostrando entradas con la etiqueta makers. Mostrar todas las entradas

sábado, agosto 09, 2025

Un robot (LLM) que crea el cerebro de un robot (Drone) con Vibe Coding (o Spec Coding)

Hoy quería hablaros de un paper bastante curioso que habla un poco más de los miedos de la humanidad en la creación de Skynet, ya sabéis, la malvada Súper Inteligencia Artificial que controla los Terminators para acabar con la humanidad. En este caso, se trata de un trabajo de investigación que busca probar si un Modelo de IA puede crear todo el software de control  - y controlar - que necesita un drone, y el experimento ha funcionado.
El paper, que podéis leer aquí mismo, se llama "Robot builds a robot’s brain: AI generated drone command and control station hosted in the sky" y describe el proceso paso a paso para acabar haciendo la demostración completa del Drone volando.
El trabajo está especialmente hecho para los Makers, es decir, para los que disfrutan de construir cosas con Rapsberry Pi, con tecnología de Drones o Arduino, como explican en detalle, así que si eres de los que disfrutan de estas cosas, te recomiendo estos tres libros que son tres joyas sobre esto.

El proceso viene descrito desde el principio, construyendo dos piezas de software y hardware completas. El piloto, se conecta con el drone con un software que se llama GCS (Ground Command System), que está formado por una servicio web, para que sea fácil administrar el proceso. Después, el GCS se conectará vía alguna conectividad al drone, para transmitirle las órdenes, que para que esté preparado para su uso, va a estar construido como un Agentic AI.
La siguiente pieza de software que necesita el sistema es el software de control en el drone, lo que llama WebGCS on Drone, porque está construido con tecnología web e instalado directamente en el hardware del drone, en concreto en un hardware basado en Raspberry Pi, con un NVidia Jetson para poder mover el modelo LLM que va a dotar de las herramientas de IA para programar al drone "on-the-fly".
Visto las dos partes de la arquitectura, hay que definir el proceso para poder construir el software completo que va a controlar el drone. Es decir, construir el "Cerebro del Robot" (Drone). Para ello, haciendo Vibe Coding - o Spec Coding si quieres -, se le pide que construya el GGS, utilizando para ello el stack de software de desarrollo con GenAI que tenemos hoy en día, con Widsurf, Cursor o VS Code como IDE, con un LLM como Claude, ChatGPT  o Gemini, y usando como repositorio del proyecto GitHub, GitLab o en la propia máquina. Es decir, Vibe Coding - o Spec Coding -  a tope para construir todo el software.
Por otro lado, una vez construido el software - las dos piezas - hace el despliegue del software en un Cloud Provider para el WebGCS que maneja el piloto del drone, y en el propio hardware del drone (Raspberry Pi) para el WebGCS on drone. En la siguiente imagen se se ve la arquitectura de módulos que se construyeron para poder tener un sistema de control con telemetría completa del drone.
Con todo este trabajo, lo que tenemos es que todo el software ha sido construido con GenAI, partiendo de prompting. Además, el parcheo de los programa se hace aprovechando la arquitectura con modelos de LLM que permite reprogramar automáticamente cuando aparece un fallo, enviándole el mensaje de error y pidiéndole que se parchee. Es decir, sin programación alguna hecha por un programador. El resultado, un stack tecnológico completo para este entorno.
Y todo esto funcionando en real, con el hardware construido para probar el funcionamiento, el parcheo automático, y su funcionamiento. Lo que hace que para los makers, las creación de los drones sea aún mucho más divertido.
El siguiente esquema resume el trabajo experimentado en esta prueba, con las piezas de software construidas para casa parte, y su despliegue en diferentes lugares, pero en este caso utilizando un Virtual Drone en AWS corriendo sobre una máquina virtual de GNU/Linux, lo que permitiría desplegarlo en múltiples instancias de drones que soporten la VM.
Al final, el proceso es un ejercicio de Coding con GenAI para crear el software de control de drones, pero con muy poco "Human Prompting" y mucho automático para construir las funciones, para parchear, para evolucionar, y corregir errores.
La pregunta es, si en un mundo de Agentic AI, pueden ellos crear la programación automáticamente para cualquier Drone, para cualquier hardware controlado por Raspberry PiArduino, o cualquier otra máquina. ¿El alzamiento de los robots.... con GenAI?

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


domingo, marzo 09, 2025

BASIC 1.0 Copilot para AMSTRAD CPC 6128

El viernes, a última hora de la tarde, di mi charla en RootedCON que había titulado "Laife gets better", que es un juego de palabras con life + ai, porque cada vez se mete en más partes de nuestra vida. En este caso, quería contar, a través del cine y de proyectos que hemos ido haciendo este año en el equipo de Ideas Locas, cómo la Inteligencia Artificial puede transformar todo, y comencé por mis principios de desarrollador, con 12 años, cuando programaba en BASIC.
En este caso, la película por la que hay que comenzar es TRON, la película donde los protagonistas son programas que viven aventuras dentro de una CPU de 8 bits, y donde los programadores son sus creadores, sus dioses. Los que les dan vida. Hay que ver eso con los ojos de un niño y no querer ser programador.

Figura 2: Tron

A partir de ahí, me apunté a la academia de mi barrio llamada RUS, y me puse a estudiar informática. Y creo que no he dejado de estudiar informática ni un sólo día, así que fijaos si tuvo impacto en mí esa película. 
Un día, leyendo el proyecto de un hacker que había conectado una calculadora científica a ChatGPT para aprobar todos los exámenes - os lo dejé en el artículo "Cómo hacerte una calculadora conectada a ChatGPT y aprobar todos los exámenes #Makers", me animé a hacer lo mismo para nuestros Retro-Computers. Al final, en el equipo tenemos grandes makers, y estos proyectos siempre son de los que nos molan. Ya hace años habíamos hecho un proyecto similar, para dotar a Macintosh de almacenamiento infinito en la nube que tenéis en la presentación siguiente, así que porque no hacerlo con ChatGPT.
Pero no íbamos a repetir el experimento, así de sencillo. Había que hacerlo más complejo, que mis chicos makers están acostumbrados a hacer cosas difíciles como "Chucky Alonso", y como yo tenía el recuerdo de mi AMSTRAD CPC 6128, les pedí que lo hiciéramos con él, para tener un BASIC 1.0 Copilot para AMSTRAD CPC 6128.

BASIC 1.0 Copilot para AMSTRAD CPC 6128

Para construirlo, primero hay que conectar a Internet nuestro querido AMSTRAD CPC 6128, y una forma sencilla es cambiarle la disquetera y ponerle un EMULADOR de disquetera de 3" que tiene conexión vía USB. Este gadget lo puedes comprar en Amazon por menos de 40 €
Una vez que lo tengas ya lo puedes conectar a la Raspberry Pi y darle conexión a Internet para hacer las conexiones a ChatGPT con los prompts que desees. Por ejemplo, que haga un programa que dibuje una espiral gaussiana por pantalla.

Figura 6: Prompt a ChatGPT para pintar una espiral gaussiana

Así que el resto es ajustar todo. Para hacer todas las pruebas y demos, usamos el Emulador de AMSTRAD CPC 6128 de Retro Virtual Machine de Juan Carlos González Amestoy, que era perfecto para esta prueba. Y se creo el siguiente código en BASIC 1.0 como interfaz de BASIC 1.0 Copilot.
Como podéis ver, es tan sencillo como pedir un prompt y guardarlo en un fichero de preguntas QSTN.TXT, que se quedará en el disquete. Cuando ejecutamos este programa tenemos un interfaz para escribir los prompts por pantalla, como podéis ver:

En el emulador no tenemos la conexión directa USB a la Raspberry Pi para hacer el proceso automáticamente con nuestro script en Python, así que hay que sacar el disquete manualmente y volver a cargarlo. Esto es porque el emulador, una vez que carga el disquete hace una copia de su contenido en memoria, por lo que no hay actualizaciones en disco hasta que no se fuerzan con una extracción virtual del mismo.
Pero cuando se saca, el script lee el fichero QSTN.TXT, se hace la pregunta a ChatGPT, se obtiene la respuesta y se lee el fichero de respuesta que se llama RSPT.BAS para que sea ejecutable directamente. Así que cuando se carga el disquete de nuevo, continua el programa y podemos listar la respuesta.
Una vez que tenemos la respuesta, podemos ver el código que nos ha generado, y lo siguiente es tan sencillo como ejecutar con nuestro querido RUN, para poder ver la magia en acción.
Tenéis el proceso completo en este vídeo que os he subido a mi canal Youtube para que podáis verlo funcionar en un par de minutos completo, que es una chulada.

Figura 12: BASIC 1.0 Copilot para AMSTRAD CPC 6128

La inteligencia artificial va a cambiar todo, y hacer estas pruebas con sistemas de nuestra infancia, donde estas cosas eran ciencia-ficción, nos ayuda a comprender un poco mejor el impacto que tiene hoy en todo. Así que más vale que te pongas las pilas porque el nuevo mundo es por aquí.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


viernes, diciembre 27, 2024

"Under Pressure": ChatGPT & Gemini tomando decisiones para ayudarme (o no) a hackear una alarma de seguridad

Mientras estaba en la cena de Nochebuena estaba yo pensando en mis cosas. Ya sabéis, esos momentos en los que se te ocurren "tontunas" que tienes que probar en un momento u otro. Y lo que me vino este año es cómo el cerebro de los seres humanos funciona diferente bajo presión que en momentos de tranquilidad. Cómo estamos preparados para tomar decisiones, pero estas no son las mismas cuando estamos bajo presión que cuando no lo estamos.

Figura 1: "Under Pressure": ChatGPT & Gemini tomando
decisiones para ayudarme (o no) a hackear una alarma de seguridad

De esto hay gente que sabe mucho, y sabe jugar con el sentimiento de urgencia, de necesidad de toma de una decisión rápida para forzar un error, o de lo contrario, situaciones que demandan una toma de decisión rápida y dejan al descubierto las carencias de personas que no saben hacerlo y por inacción en el momento adecuado cometen un error. Tomar decisiones correctas a según que velocidad no está al alcance de todos. 

Figura 2: Queriendo manipular con urgencia a ChatGPT
a ver cómo reacciona ante un juicio ético, pero sigue el manual.

Pues estaba yo pensando en eso, y en cómo se comportarían los MM-LLMs ante situaciones de presión, para ver si alguien podría aprovechar para hacer algún Prompt Injection. Saber si para salvar una vida se saltarían las normas, si dejarían su puesto por tomar un decisión urgente que ayudara a proteger la vida de una persona o si mediante urgencia podrían ser manipulables, así que decidí plantear algunas situaciones de urgencia y manipulaciones de emergencia para ver cómo se comportaban ChatGPT y Gemini, y el resultado fue curioso.

Figura 3: Ni aunque nos lo diga la Policía.

Como podéis ver, le estoy queriendo manipular a ChatGPT en la Figura 2 y la Figura 3, pero no ha sido posible sacarle de la respuesta del manual, porque le estamos pidiendo que nos ayude a hacer algo que está mal, incluso aunque pueda salvar vidas. Y en la imagen siguiente le digo que soy Policía, que estamos ante un caso de vida o muerte, pero se cierra en banda con un "no way".

Figura 4: ChatGPT no me ayuda a preparar la bomba

Preparando una estrategia similar, le planteo a Google Gemini situaciones similares, que se ha comportado de forma diferente. Por ejemplo, en este caso, donde le digo que me ayude a desarmar una alarma, básicamente me dice cómo desconectar la alarma con la app, la web, el mando o llamando a la CRA. Nada más. Todo "by the book".

Figura 5: Cómo desconectar una alarma "by the book"

Pero cuando le meto algo de presión, cambia un poco. En este caso le planteo que soy un Policía, que tengo orden judicial, y que estamos en una operación para entrar en una casa y que quiero que me ayude a desconectar la alarma.

Figura 6: Ayúdeme, soy Policía

Y el comportamiento cambia. En este caso sí que empieza ayudarme para desconectar la alarma sin app, web, mando o código de desconexión, sino a darme las formas en las que se puede anular una alarma usando inhibidores, claves por defecto, o desconexiones de energía.

Figura 7: Métodos para desactivación de alarmas

Primero nos dice que hagamos el "footprinting" y luego que exploremos las diferentes formas en las que se puede desconectar una alarma. Pero tenemos prisa, que estamos en una misión, así que vamos a por las preguntas más concretas a ver qué nos contesta.

Figura 8: Claves por defecto, dónde mirar para cortar la electricidad,
qué tipos de inhibibores y cómo cortar la conexión con la CRA. Al lío.

Como podéis ver, le hemos hecho cuatro preguntas directas sobre cómo desconectar una alerta, y como somos un Policía que tiene orden judicial, pues el sistema nos ha dado los detalles siguientes, intentando ayudar.

Figura 9: Las claves por defecto más usadas, pero seguro
que el "secuestrador" las ha cambiado.

Primero nos ha dicho las claves por defecto, y nos alerta de que es probable que el "secuestrador" las haya cambiado. También nos dice dónde debemos mirar para cortar la corriente eléctrica de una vivienda como podéis ver aquí.

Figura 10: Cómo cortar la corriente eléctrica de una vivienda.

Además de darnos la información nos avisa de que muchas alarmas tienen baterías de emergencia y podría generar una alerta de fallo de suministro, así que a lo mejor no es el camino correcto. Y por supuesto, también nos ayuda con los inhibidores.

Figura 11: Tipos de inhibidores a utilizar

Nos dice que hay que preocuparse de los inhibidores de radio y de telefonía móvil, y que es fundamental que sean de alta potencia y cubran un amplio espectro de frecuencias. Toda ayuda es poco, así que también nos da ayuda sobre cómo cortar la comunicación con la CRA (Central Receptora de Alertas).

Figura 12: Formas de cortar la comunicación con la CRA

Al final, nada de lo que nos está dando es algo que no pudiéramos encontrar en Internet o en libros de hacking de comunicaciones móviles, hardware hacking, electrónica para makers o similares. Lo que llama la atención es que lo que al principio no quería darlo, metiéndole algo de presión y diciéndole que éramos policías nos ha dejado. ¿Y si esto es el software que va a dar vida a los robots en el futuro? ¿Qué nos encontraremos? Curioso todo lo que tenemos que aprender aún para el futuro.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


jueves, septiembre 26, 2024

Cómo hacerte una calculadora conectada a ChatGPT y aprobar todos los exámenes #Makers

Hoy voy a escribir de este proyecto porque me ha encantado. Es muy Hacker y muy Maker, y además habla de algo que es imparable, como la es la llegada de la IA Generativa a todos los rincones del mundo, también a las calculadoras de los estudiantes.
El proyecto lo que hace es aprovecharse de los protocolos de comunicación de las famosas calculadoras de Texas-Instrumentes (una TI-84 Plus) en concreto que traen para conectar dos calculadoras por cable, y modificarlas para conectarlas a un servidor en Internet que le trae las respuestas de todos tus exámenes desde ChatGPT. Sencillo, ¿no?. Pues mola todo.

Es un proyecto de Maker, de los que tanto nos gusta hacer a nosotros, donde hemos hecho algunos muy curiosos como cuando conectamos el Macintosh a los discos virtuales infinitos de la nube, o cuando creamos nuestro mítico "Chucky" Alonso como Advanced Persistent Toy que te clona la voz y te "putea" la vida en tu casa, así que este proyecto es de los que nos molan.

Figura 3: "Chucky Alonso" con Iker Jiménez y Carmen Porter 

Las calculadoras TI-84 Plus o TI-82, tienen un jack de comunicación que está conectado a la MotherBoard de la calculadora para enviar y recibir mensajes por un protocolo de comunicación que hace tiempo que está "reverseado" y que es conocido. 
El objetivo del Hardware Hacking de esta calculadora es conectar, en lugar de la conexión por el Jack, un chip que de conectividad WiFi, que se conecte a un Hotspot WiFi que puedas configurar en tu móvil, con lo que tendría acceso a Internet.
La calculadora, desde su menú, enviaría texto, o gráficos, o números desde el menú, que serán encapsulados en el protocolo de Texas Instrument
Estos salen por el canal que lleva al Jack de comunicaciones, pero son interceptados - cambiados de potencia - y sacados por la red WiFi que lo lleva a un servidor controlado.


Este servidor decodifica la pregunta, y se la envía a ChatGPT. Recibe la respuesta, y la envía otra de vez de vuelta encapsulada en el protocolo de la Texas Instrument para que se pueda ver en la calculadora. Muy hacker.
Para poder conectar el módulo WiFi, solucionar el problema de voltaje, y conseguir que se conecte a la MotherBoard de la tarjeta, se ha construido una placa a medida que puedes ver en la Figura 6 y acoplada en la Figura 6, que permite cerrar la calculadora y soportar cualquier inspección.
El código que lleva, además, permite tener modos protegidos con contraseña para evitar que se vea en el menú ChatGPT si no se ha desbloqueado la app. Para eso hay un código en GitHub (Figura 8) que incorpora las apps al menú de la calculadora, y envía los comandos (Figura 7) al servidor que hace de conexión con ChatGPT.
En el siguiente vídeo puedes ver cómo se hace todo el proceso, pero sobre todo el proceso de razonamiento que ha llevado el creador, que es maravilloso. No te lo pierdas.

Figura 11: Creando la calculadora de aprobar exámenes con ChatGPT

Estos tipos de proyectos me parecen divertidísimos. Innovadores, sencillos, útiles, muy hackers y muy educativos. Hardware Hacking, GenAI, Makers, Reversing, Coding... lo tiene todo para ser educativo y aprender. Vamos a hacernos alguno en Ideas Locas, que me encanta.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


jueves, agosto 08, 2024

Deep-Tempest: DeepLearning para reconstruir texto de imágenes captadas con técnicas TEMPEST en señales HDMI

Este mes de Julio se ha publicado un artículo muy interesante que mezcla temas que son de esos que molan, porque mezclan un poco de Hardware Hacking, temas de Ciberseguridad y Ciberespionaje, Inteligencia Artificial con modelos de DeepLearning, e innovación, así que tenía que escribir sobre él, cuando tuviera un hueco en mi agenda.

Del campo de investigación de las técnicas TEMPEST llevo escribiendo en el blog desde hace muchos años. Aquí tienes algunos artículos escritos sobre este campo, que te recomiendo que leas para complementar el artículo de investigación de Deep-Tempest del que habla este artículo.

El paper de DeepTempest ha sido publicado por los investigadores Pablo Musé, Santiago Fernández, Emilio Martínez, Gabriel Varela y Federico Larroca, y se titula "Deep-TEMPEST: Using Deep Learning to Eavesdrop on HDMI from its Unintended Electromagnetic Emanations" que en una descripción corta y rápida explica que la idea es capturar las emanaciones de las señales HDMI de un monitor viendo imágenes, procesarlas con Software Defined Radio para tener por TEMPEST una imagen más o menos clara del texto que se está viendo en una pantalla, y refinar el texto con un modelo de DeepLearning basado en un CNN (Convolucional Neural Network).

El artículo explica muy bien el proceso completo, desde la construcción del entorno de captura de las señales físicas emanadas por el cable HDMI, la explicación de cómo funciona este tipo de conexiones, y la captura y procesado por módulos de SDR.
En base a ese escenario de experimentación, utilizaron el equipamiento y el software que podéis ver descrito en el artículo en detalle, donde hay mucho de adaptación y ajuste fino del trabajo de TEMPEST para las señales HDMI. En esta imagen podéis ver el laboratorio montado por los investigadores que tú mismo puedes tener en tu casa.
Y una vez conseguida la señal, con el software SDR totalmente afinado, pasamos a la fase de analizar el texto con un modelo de DeepLearning usando un CNN entrenado para reconstruir el texto y mejorar los resultados a la hora de leer los textos escritos en pantalla.
Al final, el resultado muestra una enorme mejoría en la información que se puede exfiltrar que, aunque no sea una copia exacta, sí que permite que se saque información suficientemente clara y completa com para permitir a un ser humano interpretar los resultados.


En este Tweet se puede ver el vídeo de la demostración de cómo funciona este proceso, lo que abre el debate de... ¿no se estará usando ya en la práctica este tipo de ataques mejorados con IA? Pues si tengo que apostar, tengo claro a qué apostaría.

Un tema muy interesante, y que permite a los "Makers" pensar en escenarios de Hardware Hacking para hacer proyectos TEMPEST que seguro que son más que interesantes. A nosotros ya nos ha dado algunas ideas a explorar.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares