jueves, 1 de febrero de 2018

Derivacion de Ubuntu "BlackBox" para el Analisis de seguridad



Especializado en seguridad y analisis forense, Blackbox Linux no solo es bueno para la evaluacion de vulnerabilidades, y gracias a su baja subestructura, tambien es adecuado como una distribucion de escritorio.

Muchas distribuciones linux relacionadas con la seguridad se enfocan en un area especifica de la seguridad IT y solo tratan otros problemas marginalmente, o no en absoluto. En contraste la distribucion  Italiana derivada de Ubuntu BlackBox Linux, ha sido constantemente desarrollada durante muchos años, direcciona la mayor cantidad de problemas de seguridad relevantes enfrentados por los administradores pequeñas y medianas redes.

Se puede tomar la distribucion de 2.6 Gb que esta hecha para las arquitecturas de 32 y 64 bit. Aqui usted puede escoger entre cual quiere descargar la imagen, ya sea directamente o via Bitorrent. Usted puede especificar entre una donacion de algun valor o ingresar 0 en el valor correspondiente.

Como requisitos minimos los desarrolladores especifican un compuitador con 1Gb de ram y 10 Gb de espacio libre de almacenamiento masivo. La resolucion de display debe ser al menos de 800x600 pixeles. Tanto la unidad de CD como una unidad USB pueden servir como discos de arranque.

domingo, 26 de octubre de 2014

Ejemplo Macros ASM

Se realizará en este caso un programa con las siguientes características:

1. Se dispondrá de un dipSwitch de 2 posiciones en el puertoA del microcontrolador que permitirá realizar las siguientes operaciones:

A1
A0
OPERACIÓN
0
0
NO OPERAR
0
1
PORTD=PORTB+PORTC
1
0
PORTD=PORTB-PORTC
1
1
PORTD=PORTB*PORTB

Teniendo en cuenta esto se creará una Macro ASM que permita realizar estas operaciones a partir de valores que se entregan a la entrada de la Macro, de esta manera se creará una macro que permita realizar 3 operaciones básicas (SUMA, RESTA, MULTIPLICACIÓN)

El diagrama de flujo del programa principal será el siguiente:
figura 1. Flujograma programa a ejecutar

Como se ve en la gráfica se crearan 3 macros necesarios para realizar este trabajo


La primera macro se llamará SUM y es como sigue:


Como se puede ver esta macro toma el valor de 2 registros y su resultado lo pone en un tercer registro multiplicar y dividir se realizan como siguen:





El programa completo queda como sigue:





sábado, 25 de octubre de 2014

¿Por qué Assembler?

Para contestar esta pregunta valdría la pena preguntarnos primero qué es Assembler:

¿Qué es Assembler?

Como todos sabemos el  lenguaje que entienden los microcontroladores es el lenguaje de máquina el cual está formado por unos y ceros. El lenguaje empleado en este caso es el  sistema binario, este sistema binario a su vez es expresado en grupos de 8 bits llamados bytes que a su vez son agrupados en palabras de código hexadecimales donde un byte está compuesto por 2 números Hexadecimales.



¿Que contiene el lenguaje de máquina?

Los microcontroladores estan destinados a ejecutar una serie de tareas preconfiguradas por el diseñador, estas tareas pueden contener 2 tipos de valores o información:


  • Ordenes hacia la máquina.
  • Información asociada a las ordenes.
El lenguaje ensamblador

El lenguaje ensamblador es el encargado de expresar las instrucciones que ejecutará el microcontrolador de una forma más cercana al lenguaje utilizado por el ser humano y a su vez muy cercana al microcontrolador, ya que cada una de las instrucciones tiene una correspondencia al código de máquina.

Las instrucciones de máquina se codifican en nemónicos  los cuales son grupos de caracteres alfanuméricos que simbolizan las ordenes o tareas a realizar por el microcontrolador  ej: MOVLW 0X00 (MUEVE AL REGISTRO W EL VALOR 00).




El modo de funcionamiento se muestra en seguida:


figura2. codificación de un programa en assembler y decodificación en lenguaje máquina

En la figura 2 se explica el concepto de codificación de un programa en assembler, se muestra como el  usuario es el artífice de realizar la codificación de los programas en un lenguaje  Assembler donde el programa pasa por un software de compilación como el MPASM  o el code warrior que se encarga de poner las instrucciones en formato Hexadecimal, entregando un programa de extensión . HEX que será escrito en la memoria interna del microcontrolador.

Caracteristicas de Assembler:

  •         Posee un número limitado de instrucciones, lo que hace que en ocasiones no se puedan realizar directamente operaciones complejas como la division, los logaritmos u otras instrucciones directamente.

  •         La cantidad de Instrucciones depende de las características internas del microcontrolador a utilizar.

  •         La ejecución de los programas sobre un microcontrolador depende directamente de la arquitectura del microcontrolador.

  •       El programador en este lenguaje tiene total libertad de modificar la gran mayoria de registros y parametros del microcontrolador.

Lenguaje C para los microcontroladores


El lenguaje C en los microcontroladores no depende de la cantidad o repertorio de instrucciones que posee el microcontrolador, es posible realizar

Lenguaje C.

El lenguaje C es un lenguaje de un nivel de abstracción mas elevado, es decir se parece aún mas al lenguaje humano que el lenguaje ensamblador, las instrucciones pueden ser ejecutadas casi que de igual manera sobre cualquier arquitectura microcontrolada donde no se requiere como tal conocer la arquitectura interna de los dispositivos microcontrolados. En muchos aspectos este lenguaje resulta mucho mas sencillo para trabajar, los tiempos de implementación pueden llegar a ser mucho menores.
En este tipo de lenguaje como tal se definen tipos de datos, y el proceso de programación es nétamente estructurado es decir deben seguirse los paradigmas de programación establecidos para su funcionamiento.

Ventajas de Assembler.



  •          A nivel académico conocer el lenguaje ensamblador permite conocer como tal la arquitectura interna de los dispositivos microcontrolados, lo que supone una ventaja particular al momento de poder entender a un nivel de detalle mayor como están compuestos estos dispositivos, teniendo en cuenta que la ejecución de cada instrucción en particular puede observarse en tiempo real y adicionalmente todos los registros internos pueden ser observados (se puede ver casi todo).
  •          Otra de las ventajas del lenguaje ensamblador a mi modo personal de ver las cosas (mi opinión) consiste en poder crear un nivel de abstracción cada vez mas alto mediante el manejo de subrutinas y etiquetas personalizadas, si bien por ejemplo no existe una instrucción dentro del microcontrolador que permita realizar la multiplicación de 2 números directamente (A*B) y poner el resultado en una variable llamada C pueden crearse subrutinas que permitan realizar estas labores.
  •          Los tiempos de ejecución pueden ser mejores que en C, si bien los programas en assembler son menos abstractos que en el lenguaje C, los programas pueden ser mejorados a todo nivel pudiendo crear programas mucho mas eficientes que los escritos en C.

Desventajas de Assembler




  •          El lenguaje ensamblador denota para quien lo aprende una curva de aprendizaje mas lenta que quien lo hiciera en C.
  •          Los programas deben ser enfocados tanto a la arquitectura interna como al tipo de microcontrolador.
  •          Realizar mejoras al código puede resultar mas complejo.
Con la tecnología de Blogger.

 

© 2013 Microcontroladores PIC. All rights resevered. Designed by Templateism

Back To Top