Ir al contenido principal

Entradas

Compilación en C a detalle: de main.c a main.exe

El proceso de compilación en C comprende de una serie de pasos entre que el codigo fuente (.c y .h) se integran y unen para crear un ejecutable (Un .exe en Windows o un ELF en Linux). El código fuente es un programa escrito en algún lenguaje de programación, un conjunto de líneas de texto que debe seguir y ejecutar la computadora para cumplir el objetivo para el que fue creado. Pero antes de ser ejecutado este tiene que atravesar una serie de fases hasta convertirse en la unidad mínima procesable por la computadora, el código maquina. En el lenguaje de programación C este proceso se comprende en una serie de fases que vamos a ir analizando en detalle el proceso las opciones que nos ofrece el compilador para observar el proceso paso a paso hasta obtener el ejecutable. En los ejemplos voy a estar usando el compilador GCC sobre Windows y el editor de texto Sublime Text 4. Proceso de compilación en C Preprocesado -> Compilación -> Ensamblaje -> Enlazamiento * Compilación es un pas
Entradas recientes

¿Por que no podemos comprimir un archivo más de una vez?

Seguramente todos en algún momento de nuestras vidas se nos ha dado por intentar comprimir un archivo más de una vez con la esperanza de que fuera ocupando menos espacio por cada compresión, pero nos hemos encontrado con la sorpresa de notar muy poco o nulos resultados. Hay muchos conceptos en el campo de la computación involucrados en el proceso de alivianar el peso de un archivo. En este post pretendo acatar los fundamentos para comprender de una forma intuitiva el por que del fenómeno de la compresión de archivos comenzando por el protagonista principal del proceso, lo que comprimimos, los datos, la información. ¿Qué  es la información? La información proporcionan conocimiento usado para el transcurrir del día a día de la civilización donde uno de los elementos más populares para tratarla no es nada más y nada menos que la computadora. De los datos a la información Un dato es una representación simbólica de un evento de la realidad. La información es un conjunto de estos dat

Empaquetar un ejecutable con UPX

 En este post pretendo compartirles un método para empaquetar un ejecutable reduciendo así lo más posible su tamaño en términos de comprensión, ahorrando espacio de almacenamiento ocupado por el mismo. ¿Que es un ejecutable? En informática, un ejecutable o archivo ejecutable, es tradicionalmente un archivo binario, cuyo contenido se interpreta por el ordenador como un programa. En windows tipicamente suelen finalizar con la extensión ".exe o .com" y en linux si bien no tienen presente una extensión en particular se identifican por un atributo de permiso. Empaquetamiento de ejecutables El empaquetamiento de ejecutables es un proceso habitual que se realiza antes de lanzar a producción un ejecutable, este proceso permite desde cifrar, proteger y hasta comprimir el tamaño de nuestros ejecutables ejecutables. https://es.wikipedia.org/wiki/Empaquetador_de_ejecutables #UPX UPX ( Ultimate Packer for Executables )  es empaquetador de ejecutables gratuito, portable y de alto rendimien

Redireccionamiento de puertos: Crear un túnel SSH

Hoy quiero dejarles una técnica muy interesante y útil que quería compartir hace mucho tiempo, se trata de la creación de un túnel de flujo de tráfico utilizando SSH. Este nos permite conectarnos a otro equipo y redirigir el flujo de un puerto remoto a uno local por medio de una simple sesión SSH. Que es el tunneling? (resúmen de wikipedia) Se conoce como túnel o tunneling a la técnica que consiste en encapsular un protocolo de red sobre otro (protocolo de red encapsulador) creando un túnel de información dentro de una red de computadoras. El protocolo SSH (secure shell) se utiliza con frecuencia para tunelizar tráfico confidencial sobre Internet de una manera segura. Por ejemplo, para conectar con un servidor web de forma segura, utilizando SSH, haríamos que el cliente web, en vez de conectarse al servidor directamente, se conecte a un cliente SSH. El cliente SSH se conectaría con el servidor tunelizado, el cual a su vez se conectaría con el servidor web final. Lo atractivo de este si

Mecanografía: El arte de teclear

Cuando comencé a aprender a usar el editor de textos  Vim  fue una experiencia totalmente nueva que me obligó a revisar que tan mal había estado manejándome con el teclado hasta ese entonces, y si quería ser eficiente tenía que corregir esa mala costumbre, fue entonces cuando me propuse a aprender a teclear correctamente, usando todos los dedos de la mano y sin tener la necesidad de estar mirando todo el tiempo el teclado de la computadora. Por eso en esta ocasión quería compartirles un par de utilidades y tips que estuve empleando a lo largo del trayecto durante mi aprendizaje en el mundo de  la mecanografía (o dactilografía) . Esta no pretende ser una guía completa si no más bien una breve introducción. xD La mecanografía “La mecanografía (del griego μηχανή mechané): mecánico, máquina, y γραφή (grafé): escritura, dibujo) es el proceso de introducir texto o caracteres alfanuméricos en un dispositivo por medio de un teclado como los que poseen las máquinas de escribir, los ordenado