domingo, 28 de octubre de 2018

Lenguaje Ensamblador ( I )

El estudio de este lenguaje de me ha permitido ver la programación desde un punto de vista diferente, si bien es cierto que el desarrollo puede ser inicialmente menos fluido que con los lenguajes de alto nivel, me parece que nos permite tener un mejor conocimiento sobre como funcionan nuestros programas.

Este lenguaje nos permite entonces interactuar de una manera diferente con la máquina diría yo que algo mas de tu a tu, puesto que vemos con algo mas de detalle como el procesador interactua con la información que vamos suministrando al programa y los resultados que el va generando.

Empecemos por el principio, el procesador de una computadora basa su trabajo en unos elementos llamados Registros, los cuales utiliza para obtener información, procesarla y devolver resultados, tareas que realiza mediante su conjunto de instrucciones ambos elementos tanto los registros como el conjunto de instrucciones dependen de su arquitectura.

Las entradas que escribo de momento corresponden a la arquitectura intel x86_64.

sábado, 15 de septiembre de 2018

Desarrollando habilidades con radare2


Siempre me ha gustado buscar el modo geek de las herramientas que utilizo fue por ello que decidí mudarme a Linux desde hace tiempo, actualmente estudio lenguaje ensamblador porque me interesa incursionar el análisis de malware; para ello es necesario el uso de diferentes herramientas que nos permiten efectuar los tres pasos básicos de la ingeniería inversa:

1. Recopilar información
2. Desensamblar
3. Depurar

Sin embargo, antes de llegar a esos pasos es necesario tener unos buenos conocimientos sobre el Lenguaje Ensamblador, el cual nos permite comprender el código que ejecuta la maquina para realizar las tareas que se le han asignado.

viernes, 11 de agosto de 2017

Unidades de almacenamiento desde consola Linux

Cuando nos adentramos en el manejo de la consola de comandos es importante manejar conceptos importantes como son el manejo de unidades de almacenamiento, para ello en esta entrada se tratarán algunos conceptos sobre consulta montaje y desmontaje de unidades desde consola.

viernes, 4 de agosto de 2017

Introducción a consola Linux


Consola Linux


La consola de Linux es una herramienta muy potente cuando se le conoce a profundidad, de seguro estoy lejos de conocer las profundidades de dicha herramienta pero esta entrada es una pequeña introducción con dos objetivos el primero compartir información que he aprendido para los que están tras de mí y el segundo es por frases como "lo que se escribe no se olvida".

martes, 25 de febrero de 2014

Formato PNG (2) Ejemplo práctico

por ThE InSpEcToR

Introducción

En la entrada anterior se hizo una breve descripción de la especificación PNG, ahora en esta entrada se hará un análisis sobre un archivo con este formato, teniendo en cuenta la información de la entrada anterior. Como ejemplo se utilizará un archivo 4x4 pixceles, en color indexado:



lunes, 24 de febrero de 2014

Formato PNG (I) Teoría

Por: ThE InSpEcToR

Introducción


El formato PNG es un formato gráfico de los muchos que existen con unas características particulares que hacen parte de lo que trata esta entrada en su introducción.
Los formatos gráficos son los que nos permiten almacenar imágenes en un medio de almacenamiento para poder ser visualizadas en cualquier momento. una imagen de ordenador se compone de una matriz de puntos llamados pixceles, los cuales guardan la información de color de cada punto que conforma la imagen. Ahora bien la forma como se almacenan estos pixceles es en lo que se diferencia un formato de otro. Existen formatos como el BMP descrito en una entrada anterior los cuales guardan la información RGB de cada picxel y a pesar de que conservan una calidad muy buena, este tipo de archivos pueden llegar a ser muy pesados, otros formatos permiten comprimir esa información reduciendo el tamaño del archivo, de estos formatos entre los mas populares se encuentran el formato PNG y el formato JPG. que se diferencian en que el primero permite obtener un compresión sin perdida de información gráfica, y el segundo obtiene una compresión con perdida de información gráfica, pero que sin embargo, puede llegar a ser muy poco perceptible.