You are on page 1of 18

RED SKY TECHNOLOGIES SA DE CV

Copyright : Red Sky Technologies 2017


MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

Contenido
ACERCA DE........................................................................................................................................ 3
1. INTRODUCCIN ........................................................................................................................... 4
2. DESCRIPCIN DE FORMATOS (archivo MAINFORMAT_00.txt). .................................................. 5
2.1. NOMBRE DEL CAMPO ............................................................................................................. 5
2.2. CODIFICACIN(encoding):....................................................................................................... 5
2.3. LONGITUD(length):.................................................................................................................. 6
2.4. REPETICIONES DE UN CAMPO(times:) .................................................................................... 7
2.5. BITMAP(bitmap:) ..................................................................................................................... 9
2.6. APARICION CONDICIONAL DEL CAMPO(present:) ................................................................ 10
2.7. MULTIPLICAR LONGITUD (multiplyLen:) ............................................................................... 11
3. CATLOGOS ............................................................................................................................... 12
4. SUBCAMPOS .............................................................................................................................. 13
5. COMENTARIOS EN FORMATOS ................................................................................................. 15
6. ACCESOS RAPIDOS..................................................................................................................... 15
APENDICE A ....................................................................................................................................... 16

2
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

ACERCA DE
Este es un material fue creado y distribuido por Red Sky Technologies para fines informativos
acerca de su software y se distribuye bajo licencia. El presente documento est protegido por las
leyes de Copyright. Queda prohibia su reproduccin total o parcial por cualquier medio sin la
autorizacin expresa de Red Sky Technologes SA de CV.

Copyright : Red Sky Technologies 2016

3
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

1. INTRODUCCIN

Galaad es un desglosador de hexadecimales, esta pensado para desglosar mensajera hexadecimal


perteneciente a distintos protocolos, entre los que se encuentran, ISO8583, comandos a Pinpads,
protocolos de red, etc.

Funciona por medio de formatos en archivos de texto, en donde se captura la descripcin de un


mensaje. En el se enlistan todos los campos en los que se desea fragmentar un mensaje, como por
ejemplo: encabezado, version, fin de transmisin, etc. Y, una vez capturada la descripcion de el
mensaje el formato se puede usar para desglosar, detectar errores en los mensajes, editar
hexadecimales para simular situaciones determinadas, etc.

La descripcin de los formatos pretende ser un tipo de notacin. Que permita la rapida captura de
un protocolo, para facilitar el desarrollo o analisis de un tipo de mensajera.

EL PROGRAMA NO REQUIERE INSTALACIN solo aceptar la licencia de uso e indicar el directorio


de trabajo. Es decir, el directorio donde se encuentran los subdirectorios con los Formatos de
desglose.

El directorio de trabajo tiene la siguiente estructura:

Para desglosar es necesario pegar o capturar en texto hexadecimal en el cuadro de texto


correspondiente, seleccionar las columnas que se desea mostar, y seleccionar un formato para
desglosar.

4
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

2. DESCRIPCIN DE FORMATOS (archivo MAINFORMAT_00.txt).


Los formatos de desglose. Son archivos de texto, en los que se describe una cierta mensajera para
ser desglosada. La mensajera debe ser descrita campo por campo. Bajo el siguiente prototipo:

+NOMBRE CAMPO
bitmap:
times:
present:
length:
encoding:
multiplyLen:

Un formato contendra uno o mas campos capturados en el formato arriba mencionado. A


continuacin se describe cada parte de la descripcin de un campo.
*No todos los parametros son obligatorios para desglosar un campo. nicamente la codificacin
(encoding) y la longitud(length) lo son.

2.1. NOMBRE DEL CAMPO

El nombre del campo es el nombre que aparecera en el desglose y est precedido por el signo de
+ para indicarlo. Este parmetro es obligatorio.

2.2. CODIFICACIN(encoding):

Es la codificacon en la que est el campo, y por tanto a la que se convertira. En este caso, siendo
hexadecimal (HEX), se mantiene tal cual y no se convierte a ninguna codificacin. Los valores
posibles, incluyen HEX(Hexadecimales), ASCII, EBCIDIC, UTF-8, BCD, etc. Este parmetro es
obligatorio para los subcampos (Vea subcampos).

*Para ver la lista completa de codificaciones posibles consulte el Apendice A

5
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

2.3. LONGITUD(length):
Este parametro indica la longitud del campo y puede ser:

Fija: En caso de ser longitud fija se captura por el numero de bytes multiplicados por
2.(Nibble) Es decir si la longitud del campo es de 2 bytes como en el ejemplo, se deber
capturar el nmero: 4.
Leida de otro campo: Si la longitud del campo se lee de otro campo se deberar capturar el
nombre del campo dentro de este parametro como sigue:
length:from=NOMBRE DEL CAMPO

Donde NOMBRE DEL CAMPO sera el campo del que se leer la longitud del campo
actual.

Con caracteres de parada: Si la longitud del mensaje se desconoce, y en su lugar se debe


leer hasta encontrar cierto valor hexadecimal indicando la parada. Se escribiria como
sigue:
length:to=03

en caso de esperar el byte 03 para parar.

Tambien se puede especificar un cuarteto de parada. Por ejemplo con la siguiente


notacion:
length:to=X3

La lectura del campo terminara al encontrar cualquier byte con 3 en su segundo cuarteto,
por ejemplo A3 B3 y 03 indicaran el final del campo.

En el ejemplo de la imagen se puede ver que el campo: ADP_DATA obtendr su longitud del
campo LENGTH_ADP

6
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5
En el ejemplo de la imagen se ve que el campo HTML Verb se leera hasta que se
encuentre el Hexadecimal 0A (que es el salto de linea ascii \n).

Con los hexadecimales de entrada:


03 04 31 30 0A 25 58 12 14

El campo HTML Verb seria:


03 04 31 30

En cambio con los hexadecimales de entrada:


03 04 31 30 25 58 12 0A 14

El campo HTML Verb seria:


03 04 31 30 25 58 12

2.4. REPETICIONES DE UN CAMPO(times:)


El parametro times: tiene como funcionalidad leer el mismo campo las veces indicadas. Esta
funcionalidad permite reducir la complejidad de la notacin y la lectura de algunos campos cuyas
repeticiones deben ser leidas Por ejemplo, la siguiente definicion corresponde a un token de EMV
de tarjeta de crdito:

7
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5
En el ejemplo(fig ,2,2) se muestra el
campo TOKEN que contiene los
subcampos: PADDING, TKN,
TKN_LONG, ESPACIO y TKN_DATA.

*NOTA: Un campo puede contener


subcampos para facilitar la
interpretacin de su desglose, lectura y
notacion. Los subcampos se forman
agregan un signo + al principio del
nombre del campo. Por ejemplo todos los
nombres de campos que empiezen con
+++ seran subcampos del campo
anterior que empieze con ++(Consulte
el apartado subcampos).

En una lectura EMV comn se leer mas


de un token. Lo que permite agregar el
parametro times: a la definicin del
campo para poder leerlo, que puede ser:

Fija: En caso se captura el nmero de veces que el token se repetir:

Leida de otro campo: Si el nmero de veces que el campo se repetir esta regida por otro
campo, se deber especificar usando la siguiente notacin:

8
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5
times:from=NOMBRE DEL CAMPO

donde NOMBRE DEL CAMPO sera el campo


del que se leer la longitud del campo actual.

En el ejemplo de la izquierda se puede ver que


el numero de veces que se leer el campo
token sera leido del campo NUM TKNS.

2.5. BITMAP(bitmap:)
El parametro bitmap: determina si un campo es un bitmap para determinar la aparicion de otros
campos. Su sintaxis es: bitmap:true

Por ejemplo:

Una formato como el del ejemplo producira la siguiente salida en el desglosador:

9
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

Para mas informacin sobre como funciona un bitmap consulte la documentacin del estandar ISO
8583.

2.6. APARICION CONDICIONAL DEL CAMPO(present:)


Para campos cuya presencia en el mensaje depende de la informacion en un bitmap. Se capturar
la propiedad present con la siguiente sintaxis:

present:NOMBREDELCAMPO.

Donde, NOMBREDELCAMPO debe ser sustituido por el nombre del campo bitmap que rige su
presencia (con la propiedad bitmap:true).

10
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5
En el ejemplo (imagen) se muestra el campo
2_PAN cuya presencia en el desglose, depende
de que se encuentre en el campo PRIMARY
BITMAP .PRIMARY BITMAP es un campo de
tipo bitmap.

En este caso, el campo 2_PAN es el segundo


campo del bitmap, porque es el segundo que
aparece despues de PRIMARY BITMAP con la
propiedad present:PRIMARY BITMAP.

Note que el primer campo del bitmap es otro


bitmap (1_SECONDARY BITMAP) Al igual que el
formato ISO8583.

2.7. MULTIPLICAR LONGITUD (multiplyLen:)


El parametro multiplyLen es til por ejemplo, cuando la longitud de un campo debe ser leida de
otro campo. Si la longitud leida de otro campo es 4 y se refiere a que se deben leer 4 bytes se debe
establecer multiplyLen:2 para indicar que se trata de bytes y no de Half Bytes.

Si por ejemplo la longitud leida es 4, pero se refiere a caracteres BCD (Binary Coded Decimal) el
parametro multiplyLen se puede poner como multiplyLen:1 o simplemente no ponerse.

En el siguiente ejemplo:

El campo ADP_DATA toma su longitud del campo LENGTH_ADP. Ademas esta se multiplicar
por 2, lo que siguinifica que si la longitud leida es de: 8, no se tomaran solo 8 Cuartetos:

30 31 32 33 34 35 30 31 20

Se tomaran 16 cuartetos correspondientes a 8 bytes para el desglose:

11
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5
30 31 32 33 34 35 30 31 20

3. CATLOGOS

El desglosador, permite asociar catlogos a los campos, para que, de acuerdo al valor que se haya
obtenido despues de la decodificacin (encoding: ASCII, EBCDIC, etc.) se despliege en la columna
de catalogos (CATALOGS) un texto o valor de referencia para interpretar mejor el valor
desglosado.

Para crear y usar un catalogo es necesario crear un archivo de texto, dentro de la carpeta con el
nombre del formato que se desea desglosar. El catlogo, debe contener exactamente el mismo
nombre que el campo al que se asociar.

Por ejemplo, para crear un catalogo para el campo PROCESSING CODE

Se requerira crear un archivo de texto dentro del formato con dicho nombre. El catlogo debera
tener los valores y su significado, separados por uno o ms espacios.

12
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5
A continuacin. Cuando el Desglosador desglose el campo PROCESSING CODE comparar con los
valores dentro del catalogo y al encontrar alguna coincidencia desplegar el texto en la columna
CATALOG

4. SUBCAMPOS

La creacin de subcampos es una funcionalidad del desglosador, que permite agrupar campos en
otros mas grandes, lo que ayuda a aumentar el detalle de desglose de los campos, sin que la
informacin desglosada se vuelva ilegible o se pierda. Tambien permite que la notacin de los
formatos se vuelva mas clara y en muchos casos menos repetitiva.

Supongamos que tenemos el campo ID MESSAGE como primer campo de cierto mensaje:

En ocaciones este desglose puede ser suficiente para el primero campo. Sin embargo es posible
que el campo ID MESSAGE est compuesto por otros campos a su vez que pueden resultar

13
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5
importantes. Para este caso podremos adicionar los subcampos que componen ID MESSAGE
como sigue:

Notese que la longitud de todos los subcampos (VERSION, SENDER, RANDOM NUMBER)
corresponde a la longitud original del campo ID MESSAGE y que el campo padre ya no
contiene longitud ni codificacin puesto que hereda la correspondiente a sus campos hijos.

A su vez estos subcampos se pueden descomponer nuevamente en subcampos adicionando un


signo de + al nombre del subcampo:

Note que todo nombre de campo o


subcampo debe ser precedido con al
menos un signo de +.

14
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

5. COMENTARIOS EN FORMATOS

Es posible adicionar comentarios en un formato para fines informativos o cualquier otro. Para
agregar un comentario este tiene que estar precedido por una doble barra (//).

Como en el ejemplo a continuacin:

En donde se ha anexado el comentario first field is id message(el primer campo es el id del


mensaje), lo que har que el desglosador ignore dicho rengln. Solo renglones completos pueden
ser ignorados.

6. ACCESOS RAPIDOS
Doble Clic en nombre del campo:

Cuando usted da doble clic en el nombre del campo, el desglosador abrira el archivo
MAINFORMAT_00.txt correspondiente a dicho formato para que pueda editarlo. Despues de
esto puede dar clic en el botn Refresh para que el desglosador tome los nuevos campos o las
modificaciones.

Clic derecho sobre el nombre del campo:

El desglosador abrir el directorio correspondiente al formato en el explorador de Windows..

15
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

APENDICE A
La lista de codificacines posibles se gener en base a las codificaciones disponibles en .NET (para
mas informacin. Consulte https://msdn.microsoft.com/en-
us/library/system.text.encoding.getencodings(v=vs.110).aspx)

Lista de codificaciones posibles:

ASCII Codificacin ASCII Estandar IBM01047 IBM Latino-1


BCD Binary Coded Decimal IBM01140 IBM EBCDIC (EE.UU.-
EBCDIC IBM EBCDIC Canad-Euro)
UNICODE Codificacin unicode IBM01141 IBM EBCDIC (Alemania-
HEX Hexadecimal, conserva los Euro)
caracteres como hexadecimales IBM01142 IBM EBCDIC (Dinamarca-
IBM037 IBM EBCDIC (EE.UU.- Noruega-Euro)
Canad) IBM01143 IBM EBCDIC (Finlandia-
IBM437 Estados Unidos OEM Suecia-Euro)
IBM500 IBM EBCDIC (Internacional) IBM01144 IBM EBCDIC (Italia-Euro)
ASMO-708 rabe (ASMO 708) IBM01145 IBM EBCDIC (Espaa-
DOS-720 rabe (DOS) Euro)
ibm737 Griego (DOS) IBM01146 IBM EBCDIC (Reino
ibm775 Bltico (DOS) Unido-Euro)
ibm850 Europa occidental (DOS) IBM01147 IBM EBCDIC (Francia-
ibm852 Centroeuropeo (DOS) Euro)
IBM855 Cirlico OEM IBM01148 IBM EBCDIC
ibm857 Turco (DOS) (Internacional-Euro)
IBM00858 Latino multilinge OEM I IBM01149 IBM EBCDIC (Islands-
IBM860 Portugus (DOS) Euro)
ibm861 Islands (DOS) utf-16 Unicode
DOS-862 Hebreo (DOS) utf-16BE Unicode (Big-Endian)
IBM863 Francs canadiense (DOS) windows-1250 Centroeuropeo
IBM864 rabe (864) (Windows)
IBM865 Nrdico (DOS) windows-1251 Cirlico (Windows)
cp866 Cirlico (DOS) Windows-1252 Europeo occidental
ibm869 Griego moderno (DOS) (Windows)
IBM870 IBM EBCDIC (Latino windows-1253 Griego (Windows)
multilinge-2) windows-1254 Turco (Windows)
windows-874 Tailands (Windows) windows-1255 Hebreo (Windows)
cp875 IBM EBCDIC (Griego windows-1256 rabe (Windows)
moderno) windows-1257 Bltico (Windows)
shift_jis Japons (Shift-JIS) windows-1258 Vietnamita
gb2312 Chino simplificado (Windows)
(GB2312) Johab Coreano (Johab)
ks_c_5601-1987 Coreano macintosh Europa occidental (Mac)
big5 Chino tradicional (Big5) x-mac-japanese Japons (Mac)
IBM1026 IBM EBCDIC (Turco x-mac-chinesetrad Chino
Latino-5) tradicional (Mac)
x-mac-korean Coreano (Mac)

16
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

x-mac-arabic rabe (Mac) x-EBCDIC-KoreanExtended IBM


x-mac-hebrew Hebreo (Mac) EBCDIC (Coreano extendido)
x-mac-greek Griego (Mac) IBM-Thai IBM EBCDIC (Tai)
x-mac-cyrillic Cirlico (Mac) koi8-r Cirlico (KOI8-R)
x-mac-chinesesimp Chino IBM871 IBM EBCDIC (Islands)
simplificado (Mac) IBM880 IBM EBCDIC (Cirlico ruso)
x-mac-romanian Rumano (Mac) IBM905 IBM EBCDIC (Turco)
x-mac-ukrainian Ucraniano (Mac) IBM00924 IBM Latino-1
x-mac-thai Tai (Mac) EUC-JP Japons (JIS 0208-1990 y
x-mac-ce Centroeuropeo (Mac) 0212-1990)
x-mac-icelandic Islands (Mac) x-cp20936 Chino simplificado
x-mac-turkish Turco (Mac) (GB2312)
x-mac-croatian Croata (Mac) x-cp20949 Coreano Wansung
utf-32 Unicode (UTF-32) cp1025 IBM EBCDIC (Cirlico serbio-
utf-32BE Unicode (UTF-32 Big- blgaro)
Endian) koi8-u Cirlico (KOI8-U)
x-Chinese-CNS Chino tradicional iso-8859-1 Europeo occidental
(CNS) (ISO)
x-cp20001 TCA Taiwn iso-8859-2 Centroeuropeo (ISO)
x-Chinese-Eten Chino tradicional iso-8859-3 Latino 3 (ISO)
(Eten) iso-8859-4 Bltico (ISO)
x-cp20003 IBM5550 Taiwn iso-8859-5 Cirlico (ISO)
x-cp20004 TeleText Taiwn iso-8859-6 rabe (ISO)
x-cp20005 Wang Taiwn iso-8859-7 Griego (ISO)
x-IA5 Europeo occidental (IA5) iso-8859-8 Hebreo (ISO-Visual)
x-IA5-German Alemn (IA5) iso-8859-9 Turco (ISO)
x-IA5-Swedish Sueco (IA5) iso-8859-13 Estonio (ISO)
x-IA5-Norwegian Noruego (IA5) iso-8859-15 Latino 9 (ISO)
us-ascii US-ASCII x-Europa Europa
x-cp20261 T.61 iso-8859-8-i Hebreo (ISO-Lgico)
x-cp20269 ISO-6937 iso-2022-jp Japons (JIS)
IBM273 IBM EBCDIC (Alemania) csISO2022JP Japons (JIS-Permitir 1
IBM277 IBM EBCDIC (Dinamarca- byte Kana)
Noruega) iso-2022-jp Japons (JIS-Permitir 1
IBM278 IBM EBCDIC (Finlandia- byte Kana - SO/SI)
Suecia) iso-2022-kr Coreano (ISO)
IBM280 IBM EBCDIC (Italia) x-cp50227 Chino simplificado (ISO-
IBM284 IBM EBCDIC (Espaa) 2022)
IBM285 IBM EBCDIC (UK) euc-jp Japons (EUC)
IBM290 IBM EBCDIC (Katakana EUC-CN Chino simplificado (EUC)
japons) euc-kr Coreano (EUC)
IBM297 IBM EBCDIC (Francia) hz-gb-2312 Chino simplificado (HZ)
IBM420 IBM EBCDIC (rabe) GB18030 Chino simplificado
IBM423 IBM EBCDIC (Griego) (GB18030)
IBM424 IBM EBCDIC (Hebreo) x-iscii-de ISCII Devanagari
x-iscii-be ISCII Bengal

17
MANUAL BSICO DE DESGLOSADOR GALAAD
Versin 1.5

x-iscii-ta ISCII Tamil


x-iscii-te ISCII Telugu
x-iscii-as ISCII Asams
x-iscii-or ISCII Oriya
x-iscii-ka ISCII Kannada
x-iscii-ma ISCII Malayalam
x-iscii-gu ISCII Gujarati
x-iscii-pa ISCII Punjab
utf-7 Unicode (UTF-7)
utf-8 Unicode (UTF-8)

18

You might also like