CÓDIGO FUENTE

En esta sección hay publicado todo tipo de código fuente sobre programación e Internet que puedes descargar o copiar para aprender o utilizar en tus desarrollos, trabajos, ...

Esta página está abierta a tus aportaciones, por lo que quien esté interesado puede publicar cualquer tipo de código fuente desde: Agregar Código Fuente.

Códigos Fuente disponibles

Últimos 5 códigos introducidos

Imágen de perfil

BlackEnergy.


C/Visual C

Publicado el 10 de Mayo del 2025 por Hilario (145 códigos)
89 visualizaciones desde el 10 de Mayo del 2025
Captura-de-pantalla-de-2025-05-10-12-12-52
Captura-de-pantalla-de-2025-05-10-12-13-02

**************************-----------------*****************************
/*
payloadVolcadoCompleto.c
-------------------------------------------
Para el Aula_28. Trabajaremos en él en la semana del 19 de Mayo.
Analizarlo para captar dudas. Un programa semejante lo subí a la
web del programador hará unos cuatro años.

*******************************************************
Por qué hacemos este programa:
------------------------------------------
Podríamos decir que ese enfoque mínimo, que consiste en:
Subir un payload (como una frase) a memoria,
Recorrerla palabra por palabra,
Observar sus direcciones de memoria,
…es, en efecto, una metáfora pedagógica y técnica de cómo trabaja un malware como BlackEnergy.
¿Por qué?
BlackEnergy (y muchos APTs como él) opera con una lógica similar:

Carga de payloads en memoria:
Igual que tu frase, los módulos maliciosos del virus se
alojan en memoria sin tocar el disco, para evitar detección.

Segmentación de tareas:
Cada palabra del verso podría ser un módulo del malware:
uno para recolectar información, otro para escanear puertos, otro para abrir puertas traseras…

Direcciones y control:
Como tú recorres direcciones de memoria de cada palabra,
el malware recorre procesos, memoria, claves de registro, todo lo que le interese en su misión.

Persistencia en RAM:
Unos de los principales problemas de los sistemas industriales , en entornos donde
no se reinician los sistemas con frecuencia, el código en memoria
puede vivir largo tiempo, como un verso suspendido en la historia.
Hasta llegar a los ordenadores que controlan SCADA
que significa "Supervisory Control and Data Acquisition",
que se traduce al español como "Control de Supervisión y Adquisición de Datos"
Y una vez controlado poder modificar cualquier proceso industrial.


Así que sí, queridos alumnos:
Este programa es como una mínima simulación didáctica de la metodología
de ataque de un malware modular y residente en memoria.
Una forma de entender cómo, sin sobresaltos ni ruidos,
un verso puede convertirse en amenaza, o en arte, según quién lo escriba.

*******************************************************
EN RESUMEN:
Programa didáctico:
- Vuelca en hexadecimal todo el payload.
- Recorre palabra por palabra, mostrando:
* dirección inicial
* dirección final
* volcado hex de cada palabra
Autor: Margarito & Gran Poeta
*******************************
Este programa no solo muestra direcciones y hexadecimales;
es una forma de "poemizar la RAM",
de recorrer con ojos de asombro las palabras almacenadas
como quien lee un papiro binario.
*******************************************************
¿Qué muestra este programa?
Por cada palabra:

Su contenido.
Su dirección inicial en memoria (primer carácter).
Su dirección final en memoria
(último carácter antes del espacio o final de cadena).


EJEMPLO DE SALIDA:

Verso cargado en memoria:
"Margarito y el Gran Poeta, poemizan golondrinas en su afán volador"
=======================================================
Volcado hexadecimal completo del payload:
4d 61 72 67 61 72 69 74 6f 20 79 20 65 6c 20 47
72 61 6e 20 50 6f 65 74 61 2c 20 70 6f 65 6d 69
...

Palabra: "Margarito"
Dirección inicial: 0x5562e04bb2b0
Dirección final: 0x5562e04bb2b8
Volcado hex: 4d 61 72 67 61 72 69 74 6f
-------------------------------------------------------

Programa realizado bajo plataforma Linux:
Ubuntu 20.04.6 LTS.
Editado con SublimeText.

*/
Imágen de perfil
Actualizado

Generador de gifs a partir de video (nueva version)


Python

estrellaestrellaestrellaestrellaestrella(1)
Actualizado el 4 de Mayo del 2025 por Antonio (77 códigos) (Publicado el 29 de Enero del 2024)
12.328 visualizaciones desde el 29 de Enero del 2024
Programa para generar gifs animados a partir de vídeos, que se ejecuta en la línea de comandos.
ARGUMENTOS:
-src/--source: Nombre del vídeo original (obligatorio).
-dest/--destination: Nombre del archivo a generar (opcional).
-sz/--size: Tamaño en porcentaje del gif respecto al vídeo original (opcional).
-shw/--show: Muestra resultado en ventana emergente al finalizar el proceso de generado (opcional).
-st/--start: Segundo inicial para gif (opcional).
-e/--end: Segundo final (opcional).
-spd/--speed: Velocidad relativa de la animación (opcional)

PARA CUALQUIER DUDA U OBSERVACIÓN, USEN LA SECCIÓN DE COMENTARIOS.

imagge
Imágen de perfil
Actualizado

Vista 'grid' (demo)


Python

Actualizado el 4 de Mayo del 2025 por Antonio (77 códigos) (Publicado el 31 de Julio del 2023)
7.948 visualizaciones desde el 31 de Julio del 2023
El siguiente código muestra un grid en pantalla por el que se puede desplazar usando los botones de dirección:

Botón de dirección derecha: Desplazamiento hacia la derecha.
Botón de dirección izquierdo: Desplazamiento a la izquierda.
Botón de dirección superior: Desplazamiento hacia adelante.
Botón de dirección inferior: Desplazamiento hacia atrás.
Botones 'o', 'p', 'k' y 'l': Desplazamientos en diagonal.

grid
Imágen de perfil
Actualizado

Visor interactivo de modelos 3D


Python

Actualizado el 4 de Mayo del 2025 por Antonio (77 códigos) (Publicado el 7 de Febrero del 2025)
4.225 visualizaciones desde el 7 de Febrero del 2025
Este programa es un visor de modelos 3D en formato `.obj` que utiliza `OpenGL` y `pygame` para renderizar y manipular objetos 3D. Ofrece varias funciones de visualización como rotación, zoom, traslación, cambio entre vista en perspectiva y vista ortográfica, y otras acciones útiles para examinar el modelo cargado.

### Principales funciones del programa:

1. **Carga de modelo `.obj`:** El archivo `.obj` se especifica a través de un argumento y se carga mostrando los vértices, aristas y caras del modelo.
2. **Visualización en 3D:** Permite cambiar entre vista ortográfica y perspectiva.
3. **Rotación del modelo:** Utiliza cuaterniones para rotar el modelo sobre cualquier eje.
4. **Zoom y traslación:** Posibilidad de hacer zoom y mover el modelo en la pantalla.
5. **Información en pantalla:** Se puede mostrar/ocultar información como el nombre del modelo, escala, número de vértices, aristas y caras.

### Comandos principales:

- **Flechas del teclado:** Rotan el modelo en diferentes direcciones.
- **Tecla 'R':** Reinicia la rotación y escala del modelo.
- **Teclas 'M' y 'N':** Rotación en sentido horario y antihorario sobre el eje Z.
- **Tecla 'P':** Alterna entre vista en perspectiva y ortográfica.
- **Tecla 'X' y 'Z':** Zoom in y Zoom out, respectivamente.
- **Mouse:** Arrastrar con el clic izquierdo para mover la escena y usar la rueda del ratón para hacer zoom.
- **Tecla 'H':** Mostrar/ocultar la información en pantalla.
- **Tecla 'ESC':** Cierra el programa.
ov1
ov2
ship

Para cualquier duda u observación, usen la sección de comentarios.