Caracteres reservados de LaTeX

Así como los lenguajes de programación LaTeX posee un conjunto de símbolos que usa como instrucciones para procesar el texto, usualmente las instrucciones se reconocen con facilidad, puesto que la mayoría comienza con el carácter \.

En embargo también existen caracteres a los cuales se les da un significado especifico, esto no parecería demasiado problema, hasta que se esta compilando un documento y aparecen errores extraños, los cuales terminan siendo provocados por un solo carácter, el cual el compilador intenta interpretar.

Antes de proceder tal vez sea corrector explicar que significa “escapar” un carácter, en este contexto “escapar” un carácter es el modo de indicarle a LaTeX  que deseamos mostrar ese carácter y que no debe de interpretarlo como una instrucción.

Dado que los mensajes de error suelen ser un poco vagos al respecto, y que es muy fácil olvidar “escapar” el carácter se presentaran aquí no solo una lista de caracteres reservados, si no ademas el como “escaparlos” y que mensaje de error es mostrado si no se hace esto.

La lista de caracteres reservados puede verse al compilar el siguiente código, solo cópielo a un archivo y compilelo.

Codigo Ejemplo

\documentclass{article}
% Si esta compilando en un entorno Windows remplaze la siguiente
% linea con \usepackage[latin1]{inputenc}
\usepackage[utf8]{inputenc}


\begin{document}


El codigo de este documento muestra como mostrar los caracteres reservados en \LaTeX


\begin{itemize}
\item \#
\item \$
\item \%
\item \^{}
\item \_
\item \&
\item \{
\item \}
\item \textasciitilde
\item \textbackslash

\item $$
\item $[$ $]$

\end{itemize}


\end{document}

Este código, ya compilado le generara el documento mostrado en la Figura 1
Figura 1: Caracteres reservados.

Como puede observar en la Figura 1,  los caracteres reservados son, sin ningún orden en particular: #, $, %, ^, &, {, }, ~, [, ], , _ y \

Ahora que los conoce, tal vez se pregunte ¿Como muestro esos caracteres en un documento?, después de todo el símbolo de porcentaje, el de dinero, el ampersand, los dignos de mayor que y menor que y la diagonal inversa son caracteres que aparecen de manera regular en varios tipos de documentos, para esto a continuación se presenta no solo como “escapar” esos caracteres, algo que seguro ya abra intuido de ver el código ejemplo, si no ademas que error marca el compilador si los escribe directamente, esto ultimo tal vez varié un poco dependiendo del compilador, para este ejemplo se esta usando el entorno LaTeX Tex Live.

Carácter #
Para escapar el numeral, usualmente conocido como “gato”, basta con colocar una diagonal inversa antes del símbolo, de esta manera \#.

En caso que halla olvidado hacerlo el compilador le regresara un mensaje de error similar a este:

! You can’t use `macro parameter character #’ in vertical mode.
##

Carácter $
El símbolo de dinero es un caso curioso en el LaTeX, puesto que es usado para escapar otros signos, como puede ver en el ejemplo, si desea utilizarlo coloque una diagonal inversa antes de el, de modo que quede \$.
Este carácter en particular es utilizado por LaTeX para indicar que partes del texto deben de ser interpretadas como matematicas, por lo que si no es escapado adecuadamente obtendrá un error similar a este:
! LaTeX Error: Command \item invalid in math mode.
Carácter %
El porcentaje es usado por LaTeX para demarcar los comentarios, por lo que el compilador ignorara todo lo que quede de la linea donde se coloque ese carácter, por fortuna si esta usando un entorno con coloreado de sintaxis esto sera fácil de detectar, ya que cambiara el color de texto del resto de la linea.
Para que este carácter sea mostrado basta con colocar la diagonal inversa precediendolo \%
En caso de no estar usando un entorno con coloreado de sintaxis debe de tener mucho cuidado con este carácter, ya que es posible que el documento compile, pero halla lineas que no se muestran
Carácter ^
El acento circunflejo, conocido en mis clases de programación como “gorrito”, es usando para indicar superindices, un ejemplo de estos son los números y signos de las potencias, en LaTeX, en el caso que desee usar ese símbolo puede escaparlo con la secuencia \^{} , es muy importante poner las llaves, de lo contrario se generara un error.
El error obtenido si no se escapa el carácter es el siguiente:
! Missing $ inserted.
 
Caracter &
El entorno tabular hace uso extensivo de este simbolo, por lo que si se coloca fuera de este LaTeX indicara un error, para mostrarlo sin generar errores use, de nuevo, la diagonal inversa de este modo \&.
De no hacerlo obtendra un mensaje de error al momento de compilar, el cual sera similar a este
Misplaced alignment tab character &.
Caracteres { }
Si bien el documento de ejemplo los lista separados estos dos caracteres en conjunto cumplen una función muy importante ya que indican los argumentos de las instrucciones por lo que no escaparlos debidamente generara desde mensajes de error a mal interpretaciones del código, para escaparlos use las secuencias \{ y \}.
En el caso de no escaparlos los mensajes de error mostrados seran, respectivamente para { y }
Missing } inserted y  Extra }, or forgotten \endgroup
Carácter ~
La tilde puede mostrarse con el comando \texasciitilde, de intentar colocarla directamente es posible que no se muestre en el documento compilado
Caracteres , [ y ]
Estos cuatro caracteres se escapan de la misma manera, colocandolos entre dos $ de esta manera $$, $[$, $]$, en el caso de no hacerlo se mostraran caracteres incorrectos en el documento compilado.
Carácter _
El subindice es usado en LaTeX para indicar que caracteres aparecerán en el subindice (los números similares a las potencias, pero en la parte inferior de una letra o numero), para mostrar este carácter en un documento se usa la diagonal inversa de este modo \_

Mensaje de error si no se escapa adecuadamente
Missing $ inserted.

Carácter \
Habra notado que casi todos los caracteres pueden escaparse con el uso de la diagonal inversa, por lo que no sera ninguna sorpresa que sea un caracter reservado, para mostrarlo use la instrucción \textbackslash


En el caso de no escapar el carácter hay dos posibilidades, si la diagonal inversa esta sola, el LaTeX no la mostrara en el documento compilado, pero si esta junto a otra palabra, ie \palabra, el compilador mandara un error de instrucción no conocida

Anuncios

Simulación y Detección de un ataque.

Una de las posibilidades de la captura y analisis de paquetes proporcionados por Wireshark es la habilidad de detectar si provienen de una fuente maliciosa, con lo cual las acciones acordes pueden tomarse para mitigar los efectos.

Para desmostrar esto se propone una sencilla simulación en la cual dos computadoras atacaran a una tercera y es ataque sera visualizado en Wireshark.

Requerimientos.
Para llevar a cabo este experimento sera necesario contar con lo siguiente:

  • Tres computadoras conectadas en red.
  • Las direcciones IP de las computadoras.
  • Wireshark instalado en al menos uno de los equipos.
  • Ping disponible en al menos dos de los equipos.

Para conseguir las direcciones IP de los equipos basta consultar las propiedades de la conexión , las cuales son accesibles desde el panel de control en los sistemas Microsoft Windows o por medio del comando ipconfig, ambos le entregaran la dirección IP del equipo, asegúrese de anotarlas.

Procedimiento.

Una vez que las tres computadoras esten conectadas en linea y la maquina victima reciba y responga a los ping enviados arranque Wireshark en la maquina victima y comienze a capturar paquetes, durante esto ponga atencion a la columna tipo, ya que asi podra saber cuales son los protocolos que comunmente arriban, un ejemplo de como se ve el trafico normal puede  observarse en la Figura 1 donde se que si bien los paquetes ARP son comunes tambien hay paquetes de otros protocolos y hay varios microsegundos entre los paquetes.

Figura 1: Trafico Normal.

Ahora que a tiene una vista del trafico usual de la red es el momento de comenzar la simulación del ataque, para hacer esto ingrese el siguiente comando en las maquinas atacantes

ping -t ip-victima

Este comando comenzara a enviar solicitudes de respuesta de forma continua a la dirección IP indicada mismos que seran respondios por el receptor.

Esto puede observarse desde Wireshark, si comienza o ya esta capturando paquetes al momento en que el ataque comienze obtendra una pantalla similar a la Figura 2

Figura 2: Paquetes ICMP.

Como podra observar ahora esta presente una gran cantidad de paquetes \emph{ICMP}, los cuales se visualizan mejor aplicando el filtro de visualizacion del mismo nombre, en estos paquetes pueden observarse una serie de caracteristicas particulares.

Primero que hay paquetes generados tanto por el atacante, los cuales estan descritos como Echo (ping) request en el campo Info, asi como paquetes generados por la maquina victima identificados como Echo (ping) reply, por lo que en efecto el responder a los las solicitudes de ping consume recursos de la maquina victima.

Observaciones
Al comezar este experimento se observo un problema con el comando ping, pese a tener las direcciones IP de todas las computadoras utilizadas y verificar la conexión, el ping siempre regresaba el mensaje 100% packet loss esto se debio a que los sistemas utilizados, Microsoft Windows XP y Microsoft Windows 7 tienen habilitado el cortafuegos por defecto, por lo que, para realizar el experimento, fue necesario deshabilitarlo en la maquina victima.