SISTEMAS & DESARROLLO
17 meneos
197 clics
Explorando el kernel Linux: los secretos de Kconfig/kbuild [ENG]

Explorando el kernel Linux: los secretos de Kconfig/kbuild [ENG]

El sistema de configuración/construcción del kernel Linux, también conocido como Kconfig/kbuild, ha existido durante mucho tiempo, desde que el código del kernel de Linux migró a Git. Sin embargo, como infraestructura de soporte rara vez es el centro de atención; incluso los desarrolladores de kernel que lo usan en su trabajo diario nunca lo piensan realmente. Para explorar cómo se compila el kernel de Linux, este artículo se sumergirá en el proceso interno de Kconfig/kbuild, explicando cómo se generan los archivos .config y vmlinux/bzImage y mostrando un truco inteligente para el seguimiento de dependencias.
271 meneos
6182 clics
Cómo usé una búsqueda sencilla en Google para extraer contraseñas de docenas de tarjetas públicas de Trello [ENG]

Cómo usé una búsqueda sencilla en Google para extraer contraseñas de docenas de tarjetas públicas de Trello [ENG]

Hace unos días, el 25 de abril, mientras investigaba, descubrí que muchas personas y compañías están poniendo su información confidencial en sus tarjetas públicas de Trello. Información como errores no arreglados y vulnerabilidades de seguridad, credenciales de sus cuentas de redes sociales, cuentas de correo electrónico, tableros de administración y servidores, lo que usted quiera, están disponibles en sus tarjetas de Trello públicas que están siendo indexadas por todos los motores de búsqueda y cualquiera puede encontrarlos fácilmente.
126 145 2 K 53
126 145 2 K 53
327 meneos
6019 clics
Laboratorio para practicar inyecciones SQL (más de 60 ejercicios/lecciones)

Laboratorio para practicar inyecciones SQL (más de 60 ejercicios/lecciones)

El holandés Audi-1 tiene un repositorio en Github muy interesante llamado SQLI-LABS que nos permitirá montar rápidamente una plataforma para aprender y practicar inyecciones SQL de diferentes tipos: inyecciones basadas en error (Union Select): 1. String 2. Integer; inyecciones basadas en error (Double Injection Based); inyecciones ciegas: 1. booleanas 2.basadas en tiempo; inyecciones de peticiones update; inyecciones de peticiones insert; inyecciones en la cabecera HTTP 1. basadas en referer. 2. basadas en user-agent. […]
133 194 5 K 25
133 194 5 K 25
99 meneos
1504 clics
Envío erróneo o controvertido, por favor lee los comentarios.

Programación en ensamblador de x86-64 desde Ubuntu [PDF|2,5 MB] [ENG]

El propósito de este texto es proporcionar una referencia para el lenguaje ensamblador de nivel universitario y los cursos de programación de sistemas. Este texto aborda el conjunto de instrucciones x86-64 para la popular clase de procesadores x86-64 que utilizan el sistema operativo Ubuntu de 64 bits. Si bien el código proporcionado y varios ejemplos deberían funcionar bajo cualquier sistema operativo de 64 bits basado en Linux, solo se han probado bajo Ubuntu 14/16/18 LTS (64 bits).
64 35 16 K 49
64 35 16 K 49
29 meneos
534 clics
¿Por qué usar un FPGA en lugar de una CPU o GPU? [ENG]

¿Por qué usar un FPGA en lugar de una CPU o GPU? [ENG]

Recientemente Intel compró Altera, uno de los mayores productores de FPGA. Intel pagó la friolera de 16.7 mil millones de dólares, por lo que es su adquisición más grande de la historia. Por otro lado, Microsoft está utilizando FPGA en sus centros de datos, y Amazon los está ofreciendo en sus servicios en la nube. Anteriormente, estos FPGA se usaban principalmente en ingeniería electrónica, pero no tanto en ingeniería de software. ¿Están los FPGA a punto de despegar para convertirse en alternativas serias a las CPU y GPU?
17 meneos
404 clics
Crypton: una recopilación para aprender criptografía defensiva y ofensiva

Crypton: una recopilación para aprender criptografía defensiva y ofensiva  

Ampliamos nuestro material de estudio para estas vacaciones con una fantástica recopilación de explicaciones e implementaciones de todos los ataques existentes en varios sistemas de cifrado, firma digital y algoritmos de hashing junto con ejemplos de retos de CTFs. Esta joya, que te hará ser una auténtica máquina en la categoría "crypto", la tenemos en un repositorio de Github gracias a Ashutosh Ahelleya aka s0rc3r3r de @teambi0s que ha nombrado su proyecto como Crypton.
14 meneos
404 clics
¿Cómo de rápido es un teclado PS/2? [ENG]

¿Cómo de rápido es un teclado PS/2? [ENG]

Hace unas semanas, surgió una pregunta interesante: ¿cómo es de rápido un teclado PS/2? Es decir, ¿cómo de rápido puede enviar códigos de escaneo (bytes) al controlador del teclado? Uno también podría preguntar: ¿realmente importa? Pues sí, importa. Resulta que el tiempo de ejecución de Borland Turbo Pascal 6.0, y probablemente algunas versiones relacionadas, manejan la entrada del teclado de una manera poco ortodoxa. En tiempo de ejecución se instala un controlador propio en INT 9/IRQ 1 (interrupción del teclado) que lee el puerto 60h (datos de teclado) para luego encadenar al controlador original que lee el puerto 60h de nuevo esperando leer el mismo valor.
11 3 0 K 34
11 3 0 K 34
36 meneos
151 clics
Bundle de Symfony para crear un sistema de votos basado en Menéame

Bundle de Symfony para crear un sistema de votos basado en Menéame

He subido un Bundle de Symfony para crear un sistema de votos basado en Menéame. Se pueden menear entidades (artículos o lo que sea), votar negativo, manejar los clics, mostrar el widget principal de menear y/o la barra inferior con votos anónimos, de usuarios y negativos. Se puede definir el porcentage máximo de votos anónimos, así como los mínimos votos anónimos permitidos antes de aplicar el porcentage máximo. También se pueden modificar las posibles razones del voto negativo y añadir traducciones. Traducciones incuidas en español e inglés.
21 15 0 K 42
21 15 0 K 42
178 meneos
3602 clics
Escribiendo un emulador de Game Boy desde cero [ENG]

Escribiendo un emulador de Game Boy desde cero [ENG]  

Siempre he querido escribir un emulador desde cero, pero me he resistido durante mucho tiempo porque es probablemente el proyecto de programación más avanzado que he querido hacer. Escoger un sistema para emular no es una opción fácil; el primer proyecto estándar de emulador parece ser un emulador CHIP-8. Así que después de leer mucha documentación, decidí escribir un emulador de Game Boy minimalista, sin soporte para mapeadores personalizados o sonido, al que llamé proyecto Cinoop.
84 94 4 K 41
84 94 4 K 41
185 meneos
6014 clics
¿Por qué uso un teclado IBM Model M que es más viejo que yo? [ENG]

¿Por qué uso un teclado IBM Model M que es más viejo que yo? [ENG]

El IBM Model M fue un teclado que se lanzó por primera vez en 1985 como un sucesor más económico del modelo F. Es difícil imaginar un teclado más caro ya que los teclados Modelo M cuestan una bomba incluso en esos días, pero es cierto. El Modelo F se basó en un resorte de pandeo capacitivo muy duradero, pero era costoso de producir, por lo tanto, IBM fabricó el Modelo M con un modelo de resorte de pandeo de membrana de menor costo. Al mismo tiempo, el Modelo M fue pionero en el diseño de ANSI 101-keys que todavía se utiliza en la actualidad.
90 95 5 K 56
90 95 5 K 56
15 meneos
332 clics
Ingeniería inversa práctica, primera parte: buscando puertos de depuración [ENG]

Ingeniería inversa práctica, primera parte: buscando puertos de depuración [ENG]  

En esta serie de publicaciones vamos a seguir el proceso de ingeniería inversa de un router. Más específicamente un Huawei HG533. En las primeras etapas, este es el tipo más básico de ingeniería inversa. Simplemente buscamos un puerto serie que los ingenieros que diseñaron el dispositivo dejaron en la placa para fines de depuración y soporte técnico. Aunque voy a explicar el proceso usando un router, se puede aplicar a toneladas de sistemas integrados domésticos. Desde impresoras hasta cámaras IP.
18 meneos
548 clics

Cómo una empresa de ingeniería eligió migrar a D [ENG]

Imagine que existe ese lenguaje de programación poco conocido con el que se disfruta de la programación en el tiempo libre. Sabes que está listo para el horario de máxima audiencia y sueñas con usarlo a diario en el trabajo. Esta es la historia sobre cómo hice realidad un sueño así al conseguir migrar una aplicación escrita en Pascal a D.
11 7 0 K 29
11 7 0 K 29
14 meneos
231 clics
Escalado de privilegios en Linux usando LD_PRELOAD

Escalado de privilegios en Linux usando LD_PRELOAD

Las librerías compartidas (shared libraries en inglés) en Linux/Unix normalmente tienen el prefijo lib y la extensión .so. Los programas `ld.so` y `ld-linux.so*` encuentran y cargan los objetos compartidos (librerías compartidas) que necesita un programa, preparan el programa para ejecutarlo y luego lo ejecutan. `LD_PRELOAD` es la variable de entorno que lista las rutas de la librerías compartidas, al igual que `/etc/ld.so.preload`. Hoy vamos a ver cómo aprovechar esta característica común para escalar privilegios.
10 4 0 K 55
10 4 0 K 55
19 meneos
289 clics
Tutorial interactivo de cómo crear un cargador de arranque en ensamblador de x86 [ENG]

Tutorial interactivo de cómo crear un cargador de arranque en ensamblador de x86 [ENG]

La programación en ensamblador puede ser intimidante para la gente que nunca lo ha investigado más allá de haberle echado un vistazo, pero tenerlo como base para comprender el funcionamiento de los ordenadores que usamos puede ser útil para saber lo que realmente se está ejecutando la CPU. Para iniciar un ordenador moderno con arquitectura x86 se necesita ir paso a paso por la historia de esta arquitectura. Y esto es hecho por el cargador de arranque en la mayoría de los casos.
14 5 1 K 50
14 5 1 K 50
17 meneos
280 clics
¿Cómo funcionan los sistemas basados en inodos?

¿Cómo funcionan los sistemas basados en inodos?

Después de ver cómo funcionan de forma genérica los sistemas FAT, saltamos a los sistemas de inodos. Estos se han usado tradicionalmente en sistemas UNIX (UFS, ext2), así que tradicionalmente ha existido una cierta rivalidad en las redes entre FAT e inodos similar a la de Windows/Linux. Lo cierto es que a nivel técnico cada uno tiene fortalezas y debilidades.
22 meneos
187 clics
Ejecutar de forma transparente binarios de cualquier arquitectura en Linux mediante QEMU y `binfmt_misc` [ENG]

Ejecutar de forma transparente binarios de cualquier arquitectura en Linux mediante QEMU y `binfmt_misc` [ENG]  

¿Qué? ¿Se puede hacer eso en Linux? Pues resulta que sí se puede. Lo primero, veamos un ejemplo en acción. En este caso se coge un binario de una Raspberry Pi, que es un binario para arquitectura ARM, y se ejecuta en una máquina x86_64 de forma transparente. Evidentemente, si esto se intenta hacer directamente no funcionará, pero basta con configurar ciertas características para que lo haga.
11 11 0 K 34
11 11 0 K 34
132 meneos
2885 clics
Envío erróneo o controvertido, por favor lee los comentarios.

¿Cómo funcionan los sistemas de archivos basados en FAT?  

Voy a dedicar unas entradas en el blog a hablar del funcionamiento de los sistemas de archivos, un componente fundamental en la gran mayoría de sistemas informáticos. Voy a empezar con los basados en FAT sin centrarme en ninguno en concreto (FAT16, FAT32, exFAT,…). En esencia un sistema de archivos es un método ordenado que permite guardar datos sobre un soporte físico para luego poder acceder a ellos. Históricamente ha habido muchos enfoques a este problema: los sistemas más usados usan archivos, directorios y enlaces.
67 65 22 K 47
67 65 22 K 47
11 meneos
326 clics

D as BetterC: reescribiendo `make.c` en D [ENG]

D como un mejor C (también conocido como DasBetterC, en inglés) es una forma de actualizar proyectos existentes programados en C reprogramándolos en D de forma incremental. En este artículo se muestra paso a paso el proceso de reescribir en D un proyecto no trivial escrito en C, además de algunos de los problemas comunes que pueden surgir.
11 meneos
214 clics
Shell mediante un documento .odt malicioso (Squiblydoo)

Shell mediante un documento .odt malicioso (Squiblydoo)  

El correo corporativo sigue siendo un vector de entrada interesante para realizar una intrusión. Con el paso de los años se ha ido mejorado la seguridad de las pasarelas de mensajería y de los endpoints, pero hoy en día siguen surgiendo nuevas técnicas capaces de evadir muchas de estas protecciones. En esta entrada vamos a ver un par de claros ejemplos que os harán pensar en la (todavía) peligrosidad de abrir un fichero adjunto, sobretodo si se trata de un remitente desconocido.
173 meneos
4827 clics

Hay razones reales para reemplazar las herramientas de Linux ‘ifconfig’, ‘netstat’ y compañía [ENG]

Una de las controversias de administración de sistemas actual en Linux es que hay un esfuerzo continuo por reemplazar los comandos de administración y diagnóstico de red estándar de Unix, ifconfig, netstat y similares, con nuevos elementos específicos como ss e ip. Aunque a los administradores de sistemas con experiencia generalmente no les gusta esta idea, existen dos razones principales para realizar este cambio, una ostensible y otra sutil.
87 86 5 K 40
87 86 5 K 40
124 meneos
2671 clics
Técnicas para escapar de shells restringidas (restricted shells bypassing)

Técnicas para escapar de shells restringidas (restricted shells bypassing)

Recientemente, @n4ckhcker y @h4d3sw0rmen publicaron en exploit-db un breve pero útil paper para escapar de shells restringidas como rbash, rksh y rsh, ya sabéis, aquellas que bloquean algunos de comandos como cd, ls, echo, etc., restringen variables de entorno como SHELL, PATH, USER y a veces incluso comandos con / o las salidas de redireccionamiento como >, >>; todo ello para añadir una capa extra de seguridad para protegerse contra posibles atacantes, comandos peligrosos o simplemente como una prueba en un CTF. A continuación se listan la mayoría de las técnicas para bypassear estas shells restringidas.
63 61 0 K 60
63 61 0 K 60
15 meneos
222 clics
La métrica de utilización de la CPU está mal [ENG]

La métrica de utilización de la CPU está mal [ENG]  

La utilización de la CPU es la medida que todos utilizan para medir el rendimiento de un procesador. Pero el porcentaje de CPU es una medida engañosa de cuán ocupado está realmente su procesador, dice Brendan Gregg, arquitecto de alto rendimiento de Netflix, en lo que él llama un “anuncio de servicio público de cinco minutos” en la 16ª edición de la Exposición de Linux del Sur de California (SCALE). [Vía: opensource.com: CPU utilization is wrong ].
14 meneos
215 clics
Soporte de librerías OpenGL en BASH [ENG]

Soporte de librerías OpenGL en BASH [ENG]

Un proyecto que comenzó como una broma puede ser útil para las personas que desean aprender los conceptos básicos de OpenGL. Este proyecto es un simple ejecutable que lee comandos de OpenGL de la entrada estándar para luego dibujar la salida en una ventana de X11. Cualquier entrada de usuario en esa ventana de X11 será enviada a la salida estándar. Todo esto permite que con cualquier aplicación que sea capaz de leer y escribir texto se puedan crear aplicaciones gráficas interactivas.
39 meneos
662 clics
Cómo funciona la virtualización, parte 1: introducción a la virtualización [ENG]

Cómo funciona la virtualización, parte 1: introducción a la virtualización [ENG]

El propósito de esta serie de artículos es explicar cómo funciona la virtualización en la arquitectura x86 internamente, ya que mucha de la información que se muestra en trabajos académicos es bastante difícil de entender para principiantes, así que estos artículos empezarán desde cero e irán mostrando los conceptos y el conocimiento según sea necesario. Esta serie incluye, entre otras cosas: introducción a la virtualización; VMWare y virtualización completa; Xen y paravirtualización; KVM y Qemu; y virtualización con Intel VT-x.
24 15 0 K 40
24 15 0 K 40
29 meneos
549 clics
GRV, herramienta para ver repositorios de Git desde el terminal de Linux [ENG]

GRV, herramienta para ver repositorios de Git desde el terminal de Linux [ENG]  

GRV es una herramienta de código abierto para mostrar repositorios de Git desde el terminal de Linux. Esta herramienta provee información para ver referencias, ramas y diferencias en solapas separadas. Tanto el comportamiento como el estilo puede ser personalizado a través de configuración. Además, las referencias y los commits pueden ser buscadas a través de su lenguaje de consulta.
21 8 0 K 39
21 8 0 K 39
« anterior123459

menéame