[NOTE: ARJ files and other binaries that came with this publication are
not included in this text-only archive.]

MINOTAURO MAGAZINE #10

% DELAYER %

       Hises, como ya es costumbre, esta editorial debio haber salido mucho
antes, pero por motivos que no les vienen al caso se retraso unos meses :)
En realidad no solo la editorial sino toda la revista. O fue entonces problema
del resto de la revista? bueh, no queda claro :) Lo unico que queda claro
es que cada vez tardamos mas en salir y dentro de todo es bastante logico.
Sin embargo, seguimos con la misma actitud que cuando comenzamos. Pero como
dice Trurl, y HBO ya lo dijo en un articulo 'hacking for dummies' o similar,
parece que el "under" se esta auto-consumiendo. Pareciera que hay como una
"carrera hacker" donde uno empieza golpeando las puertas de algun bbs under,
manguea de forma lastimosa un PBX, forma un grupo y como broche final saca una
revista. Es patetico.

Volviendo a lo nuestro, hay infinidad de cosas por hacer, y mas todavia por
investigar. Asi que no creo que nos quedemos sin material nunca :) pero es
seguro que tardemos cada vez mas a medida que vamos investigando. Por eso les
invitamos a enviar articulos para que la revista salga mas periodicamente. En
este numero seguramente salgan algunas cosas interesantes, pero en realidad
todo depende del nivel de las mareas en combinacion (lineal) con la temperatura
en marte, ustedes entienden.

Cambiando de tema, parece que a pesar de los costos, hay mucha gente interesada
en lo nuestro en el interior. Mucha gente del Sur (Comodoro Rivadavia
especialmente) Cordoba, Tucuman y Santa Fe. Estabamos viendo la posibilidad de
instalar algunos dionysios definitivos por esos lares, y mantenernos en
contacto, para que las comunicaciones sean mas fluidas y menos esporadicas.
Por favor hagannos llegar informacion de bbs de las zonas que les interese y
vamos a ver que podemos hacer.

Dionysios I paso a mejor vida
Dionysios II paso a manos privadas
Dionysios III sigue en el 451-2986

% SALUDOS Y AGRADECIMIENTOS %

       Left Blank Intensionally

Index: ========================================================================
       Windows #2: diseccion de un windows NE .......................... 001
       Numeros Ordinales de las APIs ................................... 002
       Prefetch Queue use & desuse ..................................... 003
       Redes Neuronales: perceptron .................................... 004
       Quimica Explosiva #1: ........................................... 005
       Telefonia Celular #1: conceptos basicos ......................... 006
       Tarjetas Aroundeworldenses ...................................... 007
===============================================================================

drako, digital anarchy
MINOTAURO MAGAZINE #10

                             Disecci�n de un NE
                        (new executable) de windows
                                 por Trurl

% Intro %

    Para hacer esta nota, tomamos el ejemplo de una aplicaci�n Windows que
viene con el TASM 4.0, lo simplificamos un poco, le agregamos un par de
cositas, lo ensamblamos con el mismo TASM, y procedimos a explicar cada byte
del EXE as� generado. En esta nota veremos todas las tablitas y detalles que
hacen un NE. �Por que? Porque no ten�amos nada mejor que hacer. Si quer�an una
explicaci�n de la ca�da del indice Dow Jones, esta no es la revista para
buscarla.


% El Source %

    El c�digo fuente consta de un .ASM y un .DEF; el ASM es el c�digo en si,
y el DEF es un file de definici�n que sirve para especificarle al linker
ciertas caracter�sticos de la aplicaci�n (como si los segmentos de datos van a
ser descartables, el nombre del modulo, especificar los exports, etc). El
programa lo �nico que hace es crear una ventana; y si uno clickea sobre el
area cliente de la ventana, saca un message box que dice "Minotauro Magazine
by [DAN]". Mis intentos de comentar el fuente se vieron frustrados por el
hecho de que resulta imposible explicar desde cero como funciona una aplica-
cion Windows desde un comentario. En todo caso sera en otro articulo.
    Solo tomen en cuenta una cosa, que la rutina "WndProc" esta exportada;
eso significa que es una rutina que debera ser llamada por el sistema, y que
por lo tanto hay que poner a su disposicion la posicion dentro del file de la
rutina, de modo que pueda llamarla. En este articulo veremos como se hace eso
(exportar una rutina) en un NE, ademas de muchas otras cosas. Van los dos
files;

= SAMPLE.ASM =================================================================
locals
jumps
model large, WINDOWS PASCAL
include windows.inc

extrn   BEGINPAINT:PROC
extrn   CREATEWINDOW:PROC
extrn   DEFWINDOWPROC:PROC
extrn   DISPATCHMESSAGE:PROC
extrn   ENDPAINT:PROC
extrn   GETMESSAGE:PROC
extrn   GETSTOCKOBJECT:PROC
extrn   INITAPP:PROC
extrn   INITTASK:PROC
extrn   INVALIDATERECT:PROC
extrn   LOADCURSOR:PROC
extrn   MESSAGEBEEP:PROC
extrn   MESSAGEBOX:PROC
extrn   POSTQUITMESSAGE:PROC
extrn   REGISTERCLASS:PROC
extrn   SHOWWINDOW:PROC
extrn   TEXTOUT:PROC
extrn   TRANSLATEMESSAGE:PROC
extrn   UPDATEWINDOW:PROC
extrn   WAITEVENT:PROC
data

    db 16 dup (0)

; Parametros de WinMain
psp            dw ?
pszCmdline     dw ?
hPrev          dw ?
hInstance      dw ?
cmdShow        dw ?

newhwnd        dw 0                ; Handle de la ventana de la aplicaci�n
msg            MSGSTRUCT   <0>     ; MSG para el loop de mensajes
wc             WNDCLASS    <0>     ; WNDCLASS para RegisterClass

szTitleName    db 'Sample Application',0; Titulo de la ventana
szClassName    db 'MINOCLASS',0         ; Clase de ventana

mensaje        db   "Minotauro Magazine by [DAN]",0
titulo         db "dis is a mesech bocs",0
code
286
;-----------------------------------------------------------------------------
start:
    mov     ax, @data
    mov     ds, ax           ; set up data segment

;Windows initialization.  Sets up registers and stack.
    ;INITTASK returns:
    ;  Failure:
    ;    AX = zero if it failed
    ;  Success:
    ;     AX = 1
    ;    CX = stack limit
    ;    DX = cmdShow parameter to CreateWindow
    ;    ES:BX = -> DOS format command line (ES = PSP address)
    ;    SI = hPrevinstance
    ;    DI = hinstance
    call    INITTASK
    or      ax,ax
    jnz     @@OK
    jmp     @@Fail

@@OK:
    mov     [psp],es
    mov     word ptr [pszCmdline],bx
    mov     [hPrev],si
    mov     [hInstance],di
    mov     [cmdShow],dx

;Initialize the Windows App
    xor     ax,ax
    push    ax
    call    WAITEVENT
    push    [hInstance]
    call    INITAPP
    or      ax,ax
    jnz     @@InitOK

@@Fail:
    mov     ax, 4CFFh
    int     21h

@@InitOK:
;-----------------------------------------------------------------------------
; This is generally where WinMain is called.  We won't use a WinMain, since
;  this app is 100% assembly.

    cmp    [hPrev], 0
    jne    already_running

    mov    [wc.clsStyle], CS_HREDRAW + CS_VREDRAW
    mov    word ptr [wc.clsLpfnWndProc], offset WndProc
    mov    word ptr [wc.clsLpfnWndProc+2], seg WndProc
    mov    [wc.clsCbClsExtra], 0
    mov    [wc.clsCbWndExtra], 0
    mov    ax, [hInstance]
    mov    [wc.clsHInstance], ax
    mov    [wc.clsHIcon], 0
    push   0
    push   IDC_ARROW
    call   LOADCURSOR
    mov    [wc.clsHCursor], ax
    push   WHITE_BRUSH
    call   GETSTOCKOBJECT
    mov    [wc.clsHbrBackground], ax
    mov    word ptr [wc.clsLpszMenuName], 0
    mov    word ptr [wc.clsLpszMenuName+2], 0
    mov    word ptr [wc.clsLpszClassName], offset szClassName
    mov    word ptr [wc.clsLpszClassName+2], ds
    push   ds
    push   offset wc
    call   REGISTERCLASS

already_running:

    push   ds
    push   offset szClassName     ; Class name
    push   ds
    push   offset szTitleName     ; Title string
    push   WS_OVERLAPPEDWINDOW+WS_VISIBLE    ; high word of Style
    push   0                      ; low word of Style
    push   CW_USEDEFAULT          ; x
    push   CW_USEDEFAULT          ; y
    push   CW_USEDEFAULT          ; width
    push   CW_USEDEFAULT          ; height
    push   0                      ; parent hwnd
    push   0                      ; menu
    push   [hInstance]            ; hInstance
    push   0                      ; lpParam
    push   0                      ; lpParam
    call   CREATEWINDOW

    mov    [newhwnd], ax

    push   [newhwnd]
    push   [cmdShow]
    call   SHOWWINDOW

    push   [newhwnd]
    call   UPDATEWINDOW

msg_loop:

    push   ds
    push   offset msg
    push   0
    push   0
    push   0
    call   GETMESSAGE
    cmp    ax, 0
    je     end_loop

    push   ds
    push   offset msg
    call   TRANSLATEMESSAGE
    push   ds
    push   offset msg
    call   DISPATCHMESSAGE
    jmp    msg_loop

end_loop:
    mov    ax, [msg.msWPARAM]
    mov    ah, 4Ch
    int    21h

;-----------------------------------------------------------------------------
WndProc     proc hwnd:WORD, wmsg:WORD, wparam:WORD, lparam:DWORD

    cmp       [wmsg], WM_DESTROY
    je        wmdestroy
    cmp       [wmsg], WM_CREATE
    je        wmcreate
    cmp       [wmsg], WM_LBUTTONDOWN
    je        wmlbuttdown
    jmp       defwndproc

wmlbuttdown:
    push [hwnd]
    push ds
    push offset mensaje
    push ds
    push offset titulo
    push MB_OK
    call MESSAGEBOX ; neat, uh?
    jmp finish

wmcreate:
    mov     ax, 0
    jmp     finish

defwndproc:
    push    hwnd
    push    wmsg
    push    wparam
    push    lparam
    call    DEFWINDOWPROC
    jmp     finish

wmdestroy:
    push    0
    call    POSTQUITMESSAGE
    mov     ax, 0
    jmp     finish

finish:
    mov     dx, 0
    ret

WndProc         endp
;-----------------------------------------------------------------------------
public WndProc
ends
end start
= FIN DE SAMPLE.ASM ==========================================================

= SAMPLE.DEF =================================================================
NAME

DESCRIPTION 'Basic Stub'

CODE         PRELOAD MOVEABLE DISCARDABLE
DATA         LOADONCALL MOVEABLE MULTIPLE

EXETYPE      WINDOWS

HEAPSIZE     1024
STACKSIZE    8192

EXPORTS
WndProc
= FIN DE SAMPLE.DEF ==========================================================


% El binario %

    Este es un dump del EXE generado haciendo "tasm /ml /m3 /ic:\tasm\inclu-
de" y luego "tlink /Twe sample.obj, sample,, import.lib, sample.def". Ahora lo
iremos viendo por partes.

0000  4D 5A 50 00 02 00 00 00-04 00 0F 00 FF FF 00 00   MZP.............
0010  B8 00 00 00 00 00 00 00-40 00 00 00 00 00 00 00   ........@.......
0020  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00-00 00 00 00 90 00 00 00   ................
0040  BA 10 00 0E 1F B4 09 CD-21 B8 01 4C CD 21 90 90   ........!..L.!..
0050  54 68 69 73 20 70 72 6F-67 72 61 6D 20 6D 75 73   This program mus
0060  74 20 62 65 20 72 75 6E-20 75 6E 64 65 72 20 4D   t be run under M
0070  69 63 72 6F 73 6F 66 74-20 57 69 6E 64 6F 77 73   icrosoft Windows
0080  2E 0D 0A 24 00 00 00 00-00 00 00 00 00 00 00 00   ...$............
0090  4E 45 06 00 78 00 0A 00-00 00 00 00 0A 00 02 00   NE..x...........
00A0  00 04 00 20 00 00 01 00-00 00 02 00 02 00 03 00   ... ............
00B0  0E 00 40 00 50 00 50 00-61 00 67 00 12 01 00 00   [email protected].....
00C0  01 00 09 00 00 00 02 00-00 00 00 00 00 00 00 03   ................
00D0  01 00 7A 01 50 1D 7A 01-03 00 96 00 11 0C 96 00   ..z.P.z.........
00E0  03 57 41 50 00 00 07 57-4E 44 50 52 4F 43 01 00   .WAP...WNDPROC..
00F0  00 01 00 05 00 0C 00 00-03 47 44 49 06 4B 45 52   .........GDI.KER
0100  4E 45 4C 04 55 53 45 52-01 FF 01 CD 3F 01 17 01   NEL.USER....?...
0110  00 00 0A 42 61 73 69 63-20 53 74 75 62 00 00 00   ...Basic Stub...
0120  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0130  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0140  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0150  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0160  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0170  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0180  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0190  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
01A0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
01B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
01C0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
01D0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
01E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
01F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0200  B8 00 00 8E D8 9A FF FF-00 00 0B C0 75 02 EB 29   ............u..)
0210  8C 06 10 00 89 1E 12 00-89 36 14 00 89 3E 16 00   .........6...>..
0220  89 16 18 00 33 C0 50 9A-FF FF 00 00 FF 36 16 00   ....3.P......6..
0230  9A FF FF 00 00 0B C0 75-05 B8 FF 4C CD 21 83 3E   .......u...L.!.>
0240  14 00 00 75 60 C7 06 2E-00 03 00 C7 06 30 00 17   ...u`........0..
0250  01 C7 06 32 00 FF FF C7-06 34 00 00 00 C7 06 36   ...2.....4.....6
0260  00 00 00 A1 16 00 A3 38-00 C7 06 3A 00 00 00 6A   .......8...:...j
0270  00 68 00 7F 9A FF FF 00-00 A3 3C 00 6A 00 9A FF   .h........<.j...
0280  FF 00 00 A3 3E 00 C7 06-40 00 00 00 C7 06 42 00   ....>[email protected].
0290  00 00 C7 06 44 00 5B 00-8C 1E 46 00 1E 68 2E 00   ....D.[...F..h..
02A0  9A FF FF 00 00 1E 68 5B-00 1E 68 48 00 68 CF 10   ......h[..hH.h..
02B0  6A 00 68 00 80 68 00 80-68 00 80 68 00 80 6A 00   j.h..h..h..h..j.
02C0  6A 00 FF 36 16 00 6A 00-6A 00 9A FF FF 00 00 A3   j..6..j.j.......
02D0  1A 00 FF 36 1A 00 FF 36-18 00 9A FF FF 00 00 FF   ...6...6........
02E0  36 1A 00 9A FF FF 00 00-1E 68 1C 00 6A 00 6A 00   6........h..j.j.
02F0  6A 00 9A FF FF 00 00 3D-00 00 74 14 1E 68 1C 00   j......=..t..h..
0300  9A FF FF 00 00 1E 68 1C-00 9A FF FF 00 00 EB D8   ......h.........
0310  A1 20 00 B4 4C CD 21 1E-58 90 45 55 8B EC 1E 8E   . ..L.!.X.EU....
0320  D8 83 7E 0C 02 74 3E 83-7E 0C 01 74 1D 81 7E 0C   ..~..t>.~..t..~.
0330  01 02 74 02 EB 19 FF 76-0E 1E 68 65 00 1E 68 81   ..t....v..he..h.
0340  00 6A 00 9A FF FF 00 00-EB 27 B8 00 00 EB 22 FF   .j.......'....".
0350  76 0E FF 76 0C FF 76 0A-FF 76 08 FF 76 06 9A FF   v..v..v..v..v...
0360  FF 00 00 EB 0C 6A 00 9A-FF FF 00 00 B8 00 00 EB   .....j..........
0370  00 BA 00 00 1F 5D 4D CA-0A 00 11 00 02 00 55 00   .....]M.......U.
0380  01 00 00 00 02 04 01 00-02 00 00 00 03 01 06 00   ................
0390  02 00 5B 00 03 01 28 00-02 00 1E 00 03 01 31 00   ..[...(.......1.
03A0  03 00 05 00 03 01 75 00-03 00 AD 00 03 01 7F 00   ......u.........
03B0  01 00 57 00 03 01 A1 00-03 00 39 00 03 01 CB 00   ..W.......9.....
03C0  03 00 29 00 03 01 DB 00-03 00 2A 00 03 01 E4 00   ..).......*.....
03D0  03 00 7C 00 03 01 F3 00-03 00 6C 00 03 01 01 01   ..|.......l.....
03E0  03 00 71 00 03 01 0A 01-03 00 72 00 03 01 44 01   ..q.......r...D.
03F0  03 00 01 00 03 01 5F 01-03 00 6B 00 03 01 68 01   ......_...k...h.
0400  03 00 06 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0410  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0420  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0430  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0440  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0450  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0460  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0470  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0480  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0490  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
04A0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
04B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
04C0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
04D0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
04E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
04F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0500  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0510  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0520  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0530  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0540  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0550  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0560  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0570  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0580  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0590  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
05A0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
05B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
05C0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
05D0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
05E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
05F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0600  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0610  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0620  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0630  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0640  00 00 00 00 00 00 00 00-53 61 6D 70 6C 65 20 41   ........Sample A
0650  70 70 6C 69 63 61 74 69-6F 6E 00 4D 49 4E 4F 43   pplication.MINOC
0660  4C 41 53 53 00 4D 69 6E-6F 74 61 75 72 6F 20 4D   LASS.Minotauro M
0670  61 67 61 7A 69 6E 65 20-62 79 20 5B 44 41 4E 5D   agazine by [DAN]
0680  00 64 69 73 20 69 73 20-61 20 6D 65 73 65 63 68   .dis is a mesech
0690  20 62 6F 63 73                                    bocs


% El stub %

    El stub es un programa DOS com�n y corriente, id�ntico a cualquier otro
EXE excepto por un detalle. El header de un EXE de DOS com�n define hasta el
offset 1Eh (ah� termina el �ltimo campo del header). Por lo tanto los linkers
pueden empezar a poner a partir de ese offset la tabla de realocaci�n del EXE.
Pero en un EXE de Windows, el header MZ tiene definido un campo mas, que esta
en el offset 3C del header (quedando el espacio entre 1Eh y 3Ch como reser-
ved). Este campo es un DWORD y especifica el offset del NE dentro del file.
Por lo tanto, todo EXE cuya tabla de realocaci�n empiece antes del offset 40h
no puede ser un NE. Si empieza en 40h o mas, entonces tomamos la dword en el
offset 3Ch y vamos al offset que nos indica; ah� leemos dos bytes y si son
iguales a NE, eureka.
    Por lo general los stubs de las aplicaciones Windows son el programa
est�ndar que muestra "This program must be run under Microsoft Windows",
porque este es el default que te pone el linker, pero no hay nada que fuerce a
que el stub sea siempre as�. El stub puede ser un programa DOS totalmente
distinto; de hecho algunas versiones del control de volumen de las sound
blaster vienen con un programa que es al mismo tiempo una aplicaci�n Windows y
un programa DOS; esto se debe a que por un lado esta la aplicaci�n Windows, y
por el otro, el mismo programa pero para DOS, como su stub. El QCD, que
tambi�n viene con algunas SoundBlaster, es lo mismo, una aplicaci�n DOS-
Windows.
    En el caso de nuestro programita, el stub es el est�ndar, que te muestra
el mensajito, y va del offset 0 al 90h que es donde esta el NE seg�n podemos
ver en el offset 3Ch.

% El header NE (NewExe) %

    En 90h vemos claramente el NE, que explicaremos campo a campo;

offset    size      contenido descripcion
090h      2         4E45      Signature NE (igual a "NE" :))
092h      2         0006      Version del linker (6.0 en este caso)
094h      2         0078      Offset de la Entry Table
096h      2         000A      Largo de la entry table en bytes
098h      4         00000000  Reservado (el checksum.. no usado)
09Ch      2         000A      Flags que describen el EXE. Los �nicos bits
                             prendidos son reservados as� que ?. El EXE es
                             SINGLEDATA (un solo segmento de datos)
09Eh      2         0002      N�mero del segmento de datos autom�tico.
0A0h      2         0400      Tama�o inicial de la heap local en bytes (1k)
0A2h      2         2000      Tama�o inicial de la stack
0A4h      4         0001:0000 CS:IP inicial; apunta al primer segmento del EXE
0A8h      4         0002:0000 SS:SP inicial; apunta al segmento de datos
0ACh      2         0002      N�mero de entradas en la Segment Table
0AEh      2         0003      N�mero de entradas en la module-reference table
0B0h      2         000E      N�mero de bytes en la nonresident name table
0B2h      2         0040      Offset a la segment table, relativo al principio
                             del NE (osea en realidad 40h + 90h = D0h)
0B4h      2         0050      Offset a la resource table relativo
0B6h      2         0050      Offset a la resident name table relativo
0B8h      2         0061      Offset a la module reference table relativo
0BAh      2         0067      Offset a la imported name table relativo
0BCh      4         00000112  Offset a la nonresident name table relativo al
                             principio del file
0C0h      2         0001      N�mero de entry points movibles
0C2h      2         0009      Shift Count usado para alineamiento de sectores.
                             Como 1 << 9 = 512, un offset de sector de "1"
                             significa que esta en 512. Un offset 2 es 1024,
                             etc.
0C4h      2         0000      N�mero de segmentos de recursos
0C6h      1         02        Sistema operativo target: MS Windows (dumb)
0C7h      1         00        Otras flags.. no usadas.
0C8h      2         0000      Offset en sectores a la fast load area
0CAh      2         0000      Largo en sectores de la fast load area
0CCh      2         0000      Reservado.. (Uh?)
0CEh      2         0300      Version esperada de Windows. (3.0)

    Varias observaciones. Primero el shift count; entienden como es el
esquema: Los "offsets en sectores" usan este shift count y un offset X es
igual al offset X << Shift Count dentro del file. En este caso el shift count
es nueve lo cual significa que esta todo puesto a cachos de 512 bytes.
    Despu�s la stack; como ven SS apunta al segmento n�mero dos, que es el
segmento de datos (�nico) de la aplicaci�n. SP es cero; esto significa que
Windows autom�ticamente asigna a SP el valor del tama�o del segmento + el
tama�o reservado de stack. En este caso el segmento es de 96h bytes (se lo ve
en la segment table) y la stack es de 2000h (offset A2h) por lo que inicial-
mente SP valdr� 2096h.
    Y por �ltimo, vemos todos los offsets y dem�s yerbas concernientes a las
diversas tablas a saber:
tabla               offset NE offset real    n�mero de entradas
Segment table       40h       D0h            2 entradas
Resource table      50h       E0h            0 entradas
Resident name       50h       E0h            varia
Module reference    61h       F1h            3 entradas
Imported name       67h       F7h            varia
Entry Table         78h       108h           varia (10 bytes)
Nonresident Name    -         112h           varia (14 bytes)
    Ahora veamos tabla por tabla.


% Segment Table %

    En esta tabla est�n definidos todos los segmentos en este caso dos.
La tabla esta en D0h y cada entrada son ocho bytes, por lo tanto el primer
segmento es (01 00 8A 01 50 1D 7A 01) y el segundo (03 00 96 00 11 0C 96 00).
Veamos en mas detalle el primer segmento:
    offset    valor     descripci�n
    0         0001      offset del segmento, en segmentos; osea 1 << 9 = 200h
    2         017A      largo del segmento en bytes (en el FILE osea cuanto
                        hay que leer)
    4         1D50      Flags:
                        - bit 0 clear: segmento de c�digo
                        - bit 4 set  : segmento m�vil
                        - bit 6 set  : segmento PRELOAD
                        - bit 8 set  : el segmento contiene realocaci�n
                        - bit 12 set : el segmento es descartable
    6         017A      largo del segmento en bytes (en MEMORIA, osea cuanto
                        hay que alocatear)
    Osea el primer segmento es el segmento de c�digo. Y el segundo es el de
datos:
    offset    valor     descripci�n
    0         0003      offset del segmento (3 << 9 = 600h)
    2         0096      largo del segmento en bytes en file
    4         0C11      Flags:
                        - bit 0 set: segmento de datos
                        - bit 4 set: segmento m�vil
    6         0096      largo del segmento en bytes en memoria


% Resident name table %

    La siguiente tabla (en el offset E0h) es la resident name table. En esta
tabla se especifican los "nombres" que Windows mantendr� siempre en memoria de
la aplicaci�n. Estos "nombres" son funciones exportadas, osea funciones que el
sistema podr� llamar, o que otras aplicaciones pueden llamar. Es as� como
funcionan las DLL y todo el linkeo dinamico. La primera entrada en vez de
especificar una funci�n exportada, contiene el nombre del modulo de la
aplicaci�n, en este caso WAP (Windows Assembly Program :)). Cada nombre
empieza con un byte que especifica el n�mero de bytes del nombre, luego el
nombre, y por �ltimo un n�mero que identificara a ese nombre; de este modo
otra aplicaci�n puede referenciar a esta funci�n tanto por el nombre como por
el n�mero (as� es como se llaman a las API por lo general, usando los numeros;
esto se ver� en la tabla de realocaci�n). Adem�s este n�mero permite identifi-
car qu� entry point corresponde a qu� nombre en la Entry Table.
    El primer nombre entonces es (WAP, 0):
00E0  03 57 41 50 00 00                                 .WAP..
    Y el segundo es (WNDPROC, 1), y luego hay un cero que termina la tabla:
00E6                    07 57-4E 44 50 52 4F 43 01 00         .WNDPROC..
00F0  00
    Porque WndProc esta ac�? Recuerden que es un nombre exportado; es una
rutina que es llamada solamente por el sistema, encargada de procesar los
mensajes de la aplicaci�n. Ponerlo aca en esta lista es una forma de especifi-
carle al sistema la direccion de la rutina. (Esta direcci�n esta en la segment
table).


% Module reference table e Imported Name Table %

    Cada entrada de la module reference table es un word que contiene un
offset dentro de otra tabla, la imported names table. La module reference
table especifica que m�dulos (DLLs) necesita la aplicaci�n para funcionar.
Cuando Windows carga la aplicaci�n, verifica que todos los m�dulos necesarios
est�n en memoria, y si no est�n los carga (cargando una DLL impl�citamente;
tambi�n se pueden cargar expl�citamente). Si ya esta en memoria, el sistema
mantiene una cuenta con todos los programas que usan la DLL de modo que la DLL
no es sacada de memoria hasta que hay 0 m�dulos que la usen. En este caso los
�nicos m�dulos que se usan son los tres m�dulos del sistema, que est�n siempre
en memoria, y son GDI (Graphical Device Interface), KERNEL (el kernel del
sistema, que provee todas las apis de manejo de memoria etc) y USER (el modulo
que contiene todas las APIs de ventanas y dem�s yerbas).
    A su vez la imported name table es parecida a la resident name table
excepto que no termina en un byte 0 sino que contiene cualquier n�mero de
entradas y se la referencia solo con offsets dentro de la tabla, tanto en la
module reference table como en las tablas de realocaci�n.
    En este caso la module reference table (que sabemos tiene 3 entradas, por
el header offset AEh), es:
00F1     01 00 05 00 0C 00
    Osea que los tres offsets son 1, 5, Ch. La imported name table es:
00F7                       00 03 47 44 49 06 4B 45 52          ..GDI.KER
0100  4E 45 4C 04 55 53 45 52                           NEL.USER
    Por lo tanto en offset 1 tenemos GDI, en offset 5 KERNEL, y en offset 12
(Ch) USER.


% Entry Table %

    Los diez bytes a partir del offset 108h son la Entry Table. En esta tabla
est�n contenidos todos los entry points al ejecutable (es decir, las direccio-
nes a donde buscar cada una de las funciones exportadas). En este caso hay una
sola entrada en la entry table, que es la correspondiente a nuestra �nica
rutina exportada, WndProc. A ver:

0108                          01 FF 01 CD 3F 01 17 01         ....?...
0110  00 00

    La entry table esta organizada por paquetes, cada uno comienza con dos
bytes. El primero indica cuantas entradas hay en el paquete, y el segundo
indica si los segmentos (todos) referenciados en el paquete son moviles o no.
En nuestro caso el valor es FF, lo que significa que el segmento de WndProc es
m�vil.
    Luego viene cada entrada individual para cada entry point. Para los
segmentos m�viles cada entrada son 6 bytes, el primero son flags, el segundo y
tercero una INT 3F (!?), el cuarto es el n�mero de segmento de la referencia,
y el quinto y sexto son el offset dentro de este segmento. En nuestro caso, el
segmento es 1, y el offset 117h (osea 0001:0117). Esto apunta justamente al
comienzo de nuestra rutina WndProc.
    Recuerden que en la resident-name table establecimos que el n�mero
identificador de WndProc era 1: bueno aqui encontramos que la primera entrada
es WndProc. Una rutina con n�mero de identificaci�n 2, estar�a en segundo
lugar en la entry table, y as� todos los entry points estan puestos uno a
continuacion del otro. Por otro lado no olviden que la entry table empieza en
uno, no en cero.
    Esto plantea un problema, que es el siguiente; si nos ponemos a ver
alguna DLL cualquiera con muchas rutinas exportadas, por ejemplo, WING.DLL,
veremos que tiene "agujeros" de ordinales no definidos; por ejemplo WING.DLL
define el entry point #1, #2, y luego empieza a partir del #3E9. Que pasa en
la entry table con los entry points entre 2 y 3E9? Podr�an estar definidos
(como entry points legales en la entry table) en cuyo caso serian como unas
APIs medio indocumentadas, probablemente accesibles (solo como ordinales).
Pero por lo general no est�n definidos, y son "salteados" con un mecanismo
(que ojo, es INDOCUMENTADO, o al menos no esta en la especificaci�n que yo
tengo, que es la que distribuye Microsoft y es la que les dimos en el n�mero
anterior) y que consiste en lo siguiente: si el segundo de los dos bytes del
header del paquete de entry points es cero, el primero especifica el n�mero de
entry points que hay que "saltearse", o si prefieren, el primer byte especifi-
ca como siempre el n�mero de entry points definidos en ese paquete, y si el
segundo byte es cero significa que esos entry points no est�n definidos (como
prefieran interpretarlo). Entonces veamos por ejemplo como seria la entry
table de WING.DLL:
    <02 FF XX XX XX XX XX XX YY YY YY YY YY YY> <- entry points 1 y 2
    FF 00 FF 00 FF 00 E9 00
    <entry points validos 3E9 y subsiguientes>
    as� como vemos: 3+FF+FF+FF+E9 = 3E9. Bueno y esto es todo con la entry
table (al fin no?).


% Non-resident name table %

    Esta tabla es igual a la resident name table en formato, y la �nica
diferencia es que los nombres que est�n contenidos en esta tabla pueden ser
descartados de memoria. Por otro lado es igual. La primera entrada de esta
tabla en vez de especificar una funci�n exportada contiene el nombre descrip-
tivo de la aplicaci�n (especificado en el DEF) y que aparenta no servir
absolutamente para nada excepto para que aparezca en el Task Manager y cuando
uno apreta ctrl-tab. En nuestro caso, esta es la �nica entrada en la tabla:

0112       0A 42 61 73 69 63 20 53 74 75 62 00 00 00    .Basic Stub...
0120 00

% Los segmentos %

    Los segmentos son f�ciles de encontrar aun a simple vista, y como ya
observamos en la segment table, est�n en 200h el segmento de c�digo y en 600h
el segmento de datos. El de datos es bastante sencillo; en el vemos exactamen-
te lo que nosotros pusimos y nada mas, no tiene mucho misterio.
    El de c�digo es otra historia. Lo vemos claramente en el offset 200h,
pero en la segment table dec�a que el segmento tiene 17Ah bytes, y ac� vemos
mas bytes despu�s de 37Ah; se trata de la tabla de realocaci�n, que esta al
final del segmento. Y en el c�digo tambi�n van a ver una cosa rara que es que
las llamadas a APIs se compilaron as�:
    call MESSAGEBOX          ->        9A 00 00 FF FF = call FFFF:0000
    Esto es porque esos cuatro bytes (00 00 FF FF) van a ser realocateados
por el sistema usando la tabla de realocaci�n para apuntar a la API cuando el
programa sea cargado a memoria.


% La tabla de realocaci�n %

    La reproducimos ac� en una forma mas entendible. El primer word es el
n�mero de items en la tabla, y luego viene cada item, cada uno ocho bytes.
El primer byte de estos ocho especifica el tipo de direcci�n que hay que
realocar. Si es 2 es "16-bit selector"; como todos uds. saben un selector es
algo as� como un segmento de modo protegido (si no lo saben es hora de que lo
vayan sabiendo), de modo que se trata de realocar un segmento, un valor de 16
bits. Si este byte es 3, se trata de un "32-bit pointer" osea que hay que
realocar segmento y offset. El segundo byte establece el tipo de realizaci�n;
un 1 especifica un ordinal importado, osea una llamada a API hecha usando su
n�mero. Si es 0 (o 4) es una referencia interna, osea una referencia a un
segmento dentro del propio ejecutable. En cualquier caso, el tercer y cuarto
bytes especifican el offset en donde hay que hacer la realocaci�n dentro del
segmento.
    Si es internal reference, el quinto y el sexto byte indican el n�mero de
segmento; el s�ptimo y el octavo contendr�an un offset, pero en nuestro caso
se trata de realocar solo el segmento, as� que son cero.
    Si es imported ordinal, el quinto y sexto byte contienen un �ndice dentro
de la module-reference table que especifica indirectamente de que modulo es el
ordinal en cuesti�n. (De esta tabla a su vez se obtiene un offset a la
imported-names table, y all� se obtiene el nombre del modulo). En nuestro caso
y como vimos en la module-reference table, el �ndice 1 es GDI, el 2 es KERNEL,
y el 3 es USER. El s�ptimo y octavo byte por �ltimo definen el n�mero de la
funci�n en cuesti�n.

11 00 = 17 entradas
02 00 55 00 01 00 00 00 - 16 bit selector (mov [..], seg WndProc) = Code Segm
02 04 01 00 02 00 00 00 - 16 bit selector (mov ax, @data) = Data Segment
03 01 06 00 02 00 5B 00 - 32 bit ptr, imported #, KERNEL, 5B (INITTASK)
03 01 28 00 02 00 1E 00 - 32 bit ptr, imported #, KERNEL, 1E (WAITEVENT)
03 01 31 00 03 00 05 00 - 32 bit ptr, imported #, USER, 5, (INITAPP)
03 01 75 00 03 00 AD 00 - 32 bit ptr, imported #, USER, AD, (LOADCURSOR)
03 01 7F 00 01 00 57 00 - 32 bit ptr, imported #, GDI, 57, (GETSTOCKOBJECT)
03 01 A1 00 03 00 39 00 - 32 bit ptr, imported #, USER, 39 (REGISTERCLASS)
03 01 CB 00 03 00 29 00 - 32 bit ptr, imported #, USER, 29 (CREATEWINDOW)
03 01 DB 00 03 00 2A 00 - 32 bit ptr, imported #, USER, 2A (SHOWWINDOW)
03 01 E4 00 03 00 7C 00 - 32 bit ptr, imported #, USER, 7C (UPDATEWINDOW)
03 01 F3 00 03 00 6C 00 - 32 bit ptr, imported #, USER, 6C (GETMESSAGE)
03 01 01 01 03 00 71 00 - 32 bit ptr, imported #, USER, 71 (TRANSLATEMESSAGE)
03 01 0A 01-03 00 72 00 - 32 bit ptr, imported #, USER, 72 (DISPATCHMESSAGE)
03 01 44 01 03 00 01 00 - 32 bit ptr, imported #, USER, 1 (MESSAGEBOX)
03 01 5F 01-03 00 6B 00 - 32 bit ptr, imported #, USER, 6B (DEFWINDOWPROC)
03 01 68 01 03 00 06 00 - 32 bit ptr, imported #, USER, 6 (POSTQUITMESSAGE)


% Para finalizar %

    Ahora ya saben para que es cada byte de un NE y porque esta all�. No se
sienten mejor, no se sienten realizados? No? Bueno al menos ahora entienden
todo como para no sentirse amedrentados ante ning�n NE que se encuentren en su
camino! Tampoco? Bueno, magia no puedo hacer.
    Por si no lo aclare antes, una DLL es un NE tambi�n. La �nica diferencia
es en el c�digo en si, no en el formato (por ejemplo en una DLL DS!=SS
siempre, adem�s tienen que definir una funci�n llamada WEP y exportarla, etc)
pero en el formato, es exactamente igual. Lo mismo corre para los DRV. Tambi�n
son NE. Ah� ya no se bien cual es la diferencia con un EXE y una DLL, pero es
el mismo formato.
                                                                   Trurl, tgc

NOTA: WING.DLL es una dll para manejo mas r�pido de gr�ficos bajo Windows (?)
pensada para hacer juegos. Por lo tanto si tienen alg�n juego mas o menos
grande para windows (3.1 o cualquier otro de 16 bits) probablemente la tengan;
si no es as� no importa, para ver el salteo de entry points pueden fijarse en
los mismos KRNL386.EXE o USER.EXE, etc, que tambi�n tienen un poco.MINOTAURO MAGAZINE #10

                          Numeros ordinales de APIs
                                 por Trurl

    En la VLAD 5 sali� una nota muy interesante que tra�a todos los numeros
ordinales de las APIs de KERNEL. Aparentemente Quantum iba cambiando a mano
los numeros en el file y viendo que API produc�an, hasta que termino la lista.
Yo no tuve mejor idea que hacer un programita que te muestra todas las
funciones exportadas de un ejecutable, con sus numeros, y me di cuenta de que
se le habian escapado algunas API, porque paro en el n�mero F0h y hay APIs
exportadas en KRNL386.EXE hasta 160h. As� que les mando de nuevo una lista
mejor; y adem�s de yapa el programa que te muestra los exports de un EXE de
Windows, de modo que con solo usar el programa pueden descubrir ustedes mismo
los numeros ordinales de todos los exports de GDI, USER, o de hecho de
cualquier DLL o EXE (o DRV incluso) que se les cruce por adelante.

    Los ordinales son (est�n en orden creciente):

File: krnl386.exe
Nombre descriptivo: Microsoft Windows Kernel Interface Version 3.10 (0000)
Nombre del modulo: KERNEL (0000)

    FATALEXIT (0001)
    EXITKERNEL (0002)
    GETVERSION (0003)
    LOCALINIT (0004)
    LOCALALLOC (0005)
    LOCALREALLOC (0006)
    LOCALFREE (0007)
    LOCALLOCK (0008)
    LOCALUNLOCK (0009)
    LOCALSIZE (000A)
    LOCALHANDLE (000B)
    LOCALFLAGS (000C)
    LOCALCOMPACT (000D)
    LOCALNOTIFY (000E)
    GLOBALALLOC (000F)
    GLOBALREALLOC (0010)
    GLOBALFREE (0011)
    GLOBALLOCK (0012)
    GLOBALUNLOCK (0013)
    GLOBALSIZE (0014)
    GLOBALHANDLE (0015)
    GLOBALFLAGS (0016)
    LOCKSEGMENT (0017)
    UNLOCKSEGMENT (0018)
    GLOBALCOMPACT (0019)
    GLOBALFREEALL (001A)
    1B : Indefinida
    GLOBALMASTERHANDLE (001C)
    YIELD (001D)
    WAITEVENT (001E)
    POSTEVENT (001F)
    SETPRIORITY (0020)
    LOCKCURRENTTASK (0021)
    SETTASKQUEUE (0022)
    GETTASKQUEUE (0023)
    GETCURRENTTASK (0024)
    GETCURRENTPDB (0025)
    SETTASKSIGNALPROC (0026)
    27 : Indefinida
    28 : Indefinida
    ENABLEDOS (0029)
    DISABLEDOS (002A)
    2B - Indefinida
    2C - Indefinida
    LOADMODULE (002D)
    FREEMODULE (002E)
    GETMODULEHANDLE (002F)
    GETMODULEUSAGE (0030)
    GETMODULEFILENAME (0031)
    GETPROCADDRESS (0032)
    MAKEPROCINSTANCE (0033)
    FREEPROCINSTANCE (0034)
    CALLPROCINSTANCE (0035)
    GETINSTANCEDATA (0036)
    CATCH (0037)
    THROW (0038)
    GETPROFILEINT (0039)
    GETPROFILESTRING (003A)
    WRITEPROFILESTRING (003B)
    FINDRESOURCE (003C)
    LOADRESOURCE (003D)
    LOCKRESOURCE (003E)
    FREERESOURCE (003F)
    ACCESSRESOURCE (0040)
    SIZEOFRESOURCE (0041)
    ALLOCRESOURCE (0042)
    SETRESOURCEHANDLER (0043)
    INITATOMTABLE (0044)
    FINDATOM (0045)
    ADDATOM (0046)
    DELETEATOM (0047)
    GETATOMNAME (0048)
    GETATOMHANDLE (0049)
    OPENFILE (004A)
    OPENPATHNAME (004B)
    DELETEPATHNAME (004C)
    RESERVED1 (004D)
    RESERVED2 (004E)
    RESERVED3 (004F)
    RESERVED4 (0050)
    _LCLOSE (0051)
    _LREAD (0052)
    _LCREAT (0053)
    _LLSEEK (0054)
    _LOPEN (0055)
    _LWRITE (0056)
    RESERVED5 (0057)
    LSTRCPY (0058)
    LSTRCAT (0059)
    LSTRLEN (005A)
    INITTASK (005B)
    GETTEMPDRIVE (005C)
    GETCODEHANDLE (005D)
    DEFINEHANDLETABLE (005E)
    LOADLIBRARY (005F)
    FREELIBRARY (0060)
    GETTEMPFILENAME (0061)
    GETLASTDISKCHANGE (0062)
    GETLPERRMODE (0063)
    VALIDATECODESEGMENTS (0064)
    NOHOOKDOSCALL (0065)
    DOS3CALL (0066)
    NETBIOSCALL (0067)
    GETCODEINFO (0068)
    GETEXEVERSION (0069)
    SETSWAPAREASIZE (006A)
    SETERRORMODE (006B)
    SWITCHSTACKTO (006C)
    SWITCHSTACKBACK (006D)
    PATCHCODEHANDLE (006E)
    GLOBALWIRE (006F)
    GLOBALUNWIRE (0070)
    __AHSHIFT (0071)
    __AHINCR (0072)
    OUTPUTDEBUGSTRING (0073)
    INITLIB (0074)
    OLDYIELD (0075)
    GETTASKQUEUEDS (0076)
    GETTASKQUEUEES (0077)
    UNDEFDYNLINK (0078)
    LOCALSHRINK (0079)
    ISTASKLOCKED (007A)
    KBDRST (007B)
    ENABLEKERNEL (007C)
    DISABLEKERNEL (007D)
    MEMORYFREED (007E)
    GETPRIVATEPROFILEINT (007F)
    GETPRIVATEPROFILESTRING (0080)
    WRITEPRIVATEPROFILESTRING (0081)
    FILECDR (0082)
    GETDOSENVIRONMENT (0083)
    GETWINFLAGS (0084)
    GETEXEPTR (0085)
    GETWINDOWSDIRECTORY (0086)
    GETSYSTEMDIRECTORY (0087)
    GETDRIVETYPE (0088)
    FATALAPPEXIT (0089)
    GETHEAPSPACES (008A)
    DOSIGNAL (008B)
    SETSIGHANDLER (008C)
    INITTASK1 (008D)
    8E - 95 : Indefinidas
    DIRECTEDYIELD (0096)
    WINOLDAPCALL (0097)
    GETNUMTASKS (0098)
    99 : Indefinida
    GLOBALNOTIFY (009A)
    GETTASKDS (009B)
    LIMITEMSPAGES (009C)
    GETCURPID (009D)
    ISWINOLDAPTASK (009E)
    GLOBALHANDLENORIP (009F)
    EMSCOPY (00A0)
    LOCALCOUNTFREE (00A1)
    LOCALHEAPSIZE (00A2)
    GLOBALLRUOLDEST (00A3)
    GLOBALLRUNEWEST (00A4)
    A20PROC (00A5)
    WINEXEC (00A6)
    GETEXPWINVER (00A7)
    DIRECTRESALLOC (00A8)
    GETFREESPACE (00A9)
    ALLOCCSTODSALIAS (00AA)
    ALLOCDSTOCSALIAS (00AB)
    ALLOCALIAS (00AC)
    __ROMBIOS (00AD)
    __A000H (00AE)
    ALLOCSELECTOR (00AF)
    FREESELECTOR (00B0)
    PRESTOCHANGOSELECTOR (00B1)
    __WINFLAGS (00B2)
    __D000H (00B3)
    LONGPTRADD (00B4)
    __B000H (00B5)
    __B800H (00B6)
    __0000H (00B7)
    GLOBALDOSALLOC (00B8)
    GLOBALDOSFREE (00B9)
    GETSELECTORBASE (00BA)
    SETSELECTORBASE (00BB)
    GETSELECTORLIMIT (00BC)
    SETSELECTORLIMIT (00BD)
    __E000H (00BE)
    GLOBALPAGELOCK (00BF)
    GLOBALPAGEUNLOCK (00C0)
    __0040H (00C1)
    __F000H (00C2)
    __C000H (00C3)
    SELECTORACCESSRIGHTS (00C4)
    GLOBALFIX (00C5)
    GLOBALUNFIX (00C6)
    SETHANDLECOUNT (00C7)
    VALIDATEFREESPACES (00C8)
    REPLACEINST (00C9)
    REGISTERPTRACE (00CA)
    DEBUGBREAK (00CB)
    SWAPRECORDING (00CC)
    CVWBREAK (00CD)
    ALLOCSELECTORARRAY (00CE)
    ISDBCSLEADBYTE (00CF)
    D0 - 135 : Indefinidas
    LOCALHANDLEDELTA (0136)
    GETSETKERNELDOSPROC (0137)
    138 - 139 : Indefinidas
    DEBUGDEFINESEGMENT (013A)
    WRITEOUTPROFILES (013B)
    GETFREEMEMINFO (013C)
    13D : Indefinida
    FATALEXITHOOK (013E)
    FLUSHCACHEDFILEHANDLE (013F)
    ISTASK (0140)
    141 : Indefinida
    ISROMMODULE (0143)
    LOGERROR (0144)
    LOGPARAMERROR (0145)
    ISROMFILE (0146)
    K327 (0147)
    _DEBUGOUTPUT (0148)
    K329 (0149)
    149 - 14B : Indefinidas
    THHOOK (014C)
    14D : Indefinida
    ISBADREADPTR (014E)
    ISBADWRITEPTR (014F)
    ISBADCODEPTR (0150)
    ISBADSTRINGPTR (0151)
    HASGPHANDLER (0152)
    DIAGQUERY (0153)
    DIAGOUTPUT (0154)
    TOOLHELPHOOK (0155)
    156 : Indefinida
    REGISTERWINOLDAPHOOK (0157)
    GETWINOLDAPHOOKS (0158)
    ISSHAREDSELECTOR (0159)
    ISBADHUGEREADPTR (015A)
    ISBADHUGEWRITEPTR (015B)
    HMEMCPY (015C)
    _HREAD (015D)
    _HWRITE (015E)
    BUNNY_351 (015F)
    160 : Indefinida
    __GP (0156) [Nota: Esta est� en la resident name table]
    LSTRCPYN (0161)
    GETAPPCOMPATFLAGS (0162)
    GETWINDEBUGINFO (0163)
    SETWINDEBUGINFO (0164)
    165 - 192 : Indefinidas
    K403 (0193)
    K404 (0194)
    195 - FFFF : Indefinidas

    Como es obvio la mayor parte de estas APIs no est�n en la documentaci�n
(son "indocumentadas"). Algunas son realmente intrigantes.. por ejemplo:
BUNNY_351. Que es eso macaya? __GP, ser� acaso el (G)eneral (P)rotection
[Fault] Handler de Win? Hay otra que se llama HasGPHandler.. mhm. Adem�s __GP
es la �nica que esta en la resident names table; las dem�s son nonresident, lo
cual refuerza esta idea ya que un handler de GPF debe estar siempre en memoria
etc. Otras interesantes son las que hacen obvia alusi�n a alg�n segmento com�n
de memoria: __0040 (Variables de BIOS), __A000 (Video), _0000 (IVT); ser�n
APIs que retornan selectores que dan acceso a esas areas de memoria? Quiz�.
(De todos modos yo no las usar�a porque en la API de Win32 es casi seguro que
no est�n mas).
    En cuanto a que fin practico sirve esta lista, es muy sencillo; ninguno
en principio. Pero quiz� en alg�n momento hagan un virus de Windows y necesi-
ten hacer la tabla de realocaci�n "a mano" en el source; en ese caso van a
tener que usar esta tabla (y otra similar por cada modulo que necesiten adem�s
del kernel; para lo cual les va a ser muy �til el programita). Ya se que las
posibilidades de que uds. hagan un virus de Windows en este milenio o en el
que viene son remotas, pero por algo hay que empezar. (Je Je Je). �Aparte,
quien invento eso de que para publicarlo en una revista tiene que ser �til?
�Acaso el under argentino no esta poblado de revistas que prueban lo contra-
rio? (pregunta que tambi�n puede articularse como: �queda alguien en la
galaxia que no haya le�do al menos cinco art�culos distintos sobre como hacer
una bomba ansi?)
    En fin... lindo e interesante y etc. Enjoy
                                                                        Trurl
MINOTAURO MAGAZINE #10

                              Prefectch Queue
                           Use & Desuse by Drako

% LA INTRODUCCION %

       hi. como siempre primero tengo que agradecer a trurl tgc por haberme
roto las pelotas durante meses para que de una vez por todas termine el dichoso
articulo de usos y desusos de la prefetch queue... Ok, aqui estamos de nuevo
Que es esto de la prefetch? No creo que nadie que se precie de tal *eh?*
no haya escuchado alguna vez el termino de "prefetch queue de mierda"
Como su nombre lo indica es una Cola Pre-Llenada si se puede decir asi, esto es
una zona del procesador donde se almacenan las proximas instrucciones a
ejecutarse... La cantidad de instrucciones o el tama�o de la queue varian segun
el dise�o del micro y es dificil por no decir imposible conseguir informacion
especifica sobre su tama�o por parte de los fabricantes... Igualmente hay
maneras de poder determinarlo pero los resultados pueden verse afectados por
el factor sorpresa, lease algun dispositivo instalado especialmente para que
no se pueda medir hehe, etc

       La idea de esto es acelerar un poco el sistema. Si por cada vez
que el micro trae informacion de la memoria para ejecutarla pudiera traer un
poco mas y mantenerla en algun lado para no tener que acceder a ram de nuevo,
se ganaria algo de velocidad. Este procedimiento es transparente para el
usuario comun o para el programador convencional, pero seguramente si alguno de
ustedes trabajo con polimorficos o codigo que se modifica en memoria tuvo
problemas con la prefetch. Esto no quiere decir que sea algo del otro mundo,
que sea algo que nos va a hacer la vida imposible ni mucho menos, vamos a ver
hasta para que se puede llegar a usar para sacarle algun provecho.

el tema es asi: Cuando se esta ejecutando una serie de instrucciones, como
ya dijimos, en el momento de ejecutarse la instruccion del offset X, ya estan
cargadas las instrucciones hasta el offset X+Tama�o_de_la_prefetch en la pref.
Imaginense tener el siguiente codigo:

;========= Cut here ===========================================================
; medidor en pfetch.arj
;======= Cut here =============================================================

Ok? todo lo que no esta prefetcheado termina siendo nops no transformados en
incs ... mientras menos termina valiendo bx, mas grande es la prefetch

por la mitad del source vieron que se flushea el prefetch...
esto sirve por si no te diste cuenta para volver a cargarlo, osea que estoy
asegurandome que el primer byte de la queue sea el primer byte que se esta
por ejecutar (en otras palabras donde cae el salto)

esto tiene bastante sentido... un jump incondicional y se recarga el queue.
es una medida de seguridad ... imaginense el siguiente codigo y que pasaria
con el pfetch:

       xor ax, ax
       jmp salir
       inc ax
salir:  ret

es bastante evidente lo que pasaria no? ax antes de salir (si no se reacomodara
el pfetch) terminaria en 1 cuando en realidad tendria que terminar en 0.
el micro entonces recarga el pfetch a partir de la direccion que indica el
salto.

% UN CASO ESPECIAL: EL PENTIUM %

si probaran el codigo anterior en un pentium, notarian que no pueden medir
correctamente el size del prefetch. esto se debe a que este micro toma una
medida de seguridad extra, chequea, en las escrituras a memoria, si la
informacion a modificar se encuentra dentro del alcance del prefetch y si asi
fuese lo modifica. lo que redunda en la imposibilidad de medir el tama�o de la
prefetch de la manera tradicional... no se me ocurre ninguna otra manera,
salvando que haya algun registro interno que indique su tama�o o que se pueda
hacer algun artilugio para transferir informacion de memoria a memoria por dma,
y el micro no se entere, no se, pero no me gusta usar el termino "imposible" ;)
.. ejercicio que dejamos para vostros, nuestros estimados lectores

% APLICACIONES %

es evidente que la mejor aplicacion de esto son trucos anti-debugging, y cosas
por el estilo. por ejemplo en la VLAD #1 - otra muy buena revista de virus por
si no la conocen - publicaron una combinacion de uso de pfetch y stack, pero
solamente nos es relevante a modo de ejemplo el manejo del pfetch para detectar
si nuestro virus fue TBCleaneado... la idea era algo asi:

       mov byte ptr check+1, 01h
check:  mov ax, 00h
       cmp ax, 01h
       je tbcleaned_or_pentium
ok:     [...]
tbcleaned_or_pentium:
       call fuck_hd (or not)

lo que aca pasa es lo siguiente: si se ejecuta el programa normalmente,
el mov byte ptr check+1, 01h unicamente modificaria en la imagen de memoria
al mov ax, 00h por un mov ax, 01h. la pfetch por mas que se modifique la
imagen, ya tiene en su cola un mov ax, 00h y es lo que va a ejecutar.
mas adelante se compara ax contra 1. si fue igual, puede significar dos cosas:

caso 1) el programa que se esta corriendo es una TBCleaneada:
si se le pasara el TBClean, cuando �ste quisiera grabar la copia "limpia"
a disco, grabaria la IMAGEN, por lo tanto grabaria a disco un mov ax, 01h.
la proxima vez que se ejecute normalmente la copia "limpiada", efectivamente
la comparacion de ax contra 1 va a dar Ok y procederemos a hacer mierda el
disco.

caso 2) el pobre boludo ni siquiera tiene el TBClean, pero se le hizo mierda
el disco igual. que paso? seguramente el pobre boludo tiene un Pentium.
Cuando con el primer mov quizo escribir en memoria que ya estaba prefetcheada,
el micro actualizo el contenido del pfetch, reemplazando el mov ax, 00h por
un mov ax, 01h. que problema eh?

a esto le veo dos soluciones posibles (seguro hay mas, pero dos es un numero
ideal): caso a) que el programa determine si el micro es un pentium y si asi
fuese no haga uso de ningun truco por pfetch.
caso b) defecarme en el hecho de que tenga un pentium y utilizar este metodo
como playload dedicandole un "mala leche por haberte comprado un super intel
pentium, boludo" :-)

see you,
drako, digital anarchy
MINOTAURO MAGAZINE #10

                               Introduccion
                          a las Redes Neuronales
                                por Zarpex


El objetivo de esta nota es informar a los lectores sobre las redes
neuronales artificiales, explicarles como se forman, como trabajan y como
estas podrian llegar a crear finalmente....

[musica de 2001 odisea del espacio, por favor]
...LA INTELIGENCIA ARTIFICIAL....

Desde que existe, el hombre ha deseado crear vida inteligente que imite
a si mismo (en la forma de aprender, pensar, etc). [quien alguna vez no
quiso hacer un programita que use inteligencia artificial, eh?]
Esto lo podemos observar tanto en libros, peliculas y ahora ... EN LA REALIDAD.

Los robots son un ejemplo de esto. Por ejemplo, imaginemos una fabrica de
latas. Muy bien. Ahora imaginemos una cinta transportadora y un brazo
a su lado.
Bien, la cinta contiene, en uno de sus costados, un sensor magnetico.
Este, al estar frente a una pieza metalica, envia una pequenisima corriente.
Ahora, ese sensor esta conectado al brazo y a la cinta.
Cuando por la cinta viene una lata, el sensor la detecta y envia senales
al brazo y a la cinta. La cinta se detiene y el brazo procedera a agarrar
la lata y tirarla a un tacho (o llevarla a otro lugar, da lo mismo :) ).
Se podria llegar a decir que en cierta forma y con mucha voluntad, este
robot (integrado por el sensor y el brazo) es "inteligente".
Por que ? y bueno, sencillamente porque el robot al "ver" (recordemos,
detectar) la lata toma una decision (y no lo hace hasta que necesite o
"decida" por medio del sensor hacerla). La transporta.
Es lo mismo que haria un ser humano encargado de esa tarea.
Veamos:
esta la cinta. esta el chabon. esta el interruptor de la cinta. y esta el
tacho.
El chabon esta comodamente sentado en una silla esperando algo.
Cuando ese algo llega (la lata) el la ve (en este caso en lugar de un sensor
magnetico utiliza la vista), detiene la cinta mediante el interruptor, recoge
la lata y la lanza al tacho.

Bueno, hasta ahora la inteligencia artificial se resumia a eso y a un
mediocre psicologo de sound blaster.
Pero ahora se ha comenzado a desarollar una teoria mas que interesante.
Se estudio (como siempre para estos casos) paso por paso al ser humano y
se vio que lo que hace que el ser humano aprenda, es su red neuronal.
Como funciona ? veamos:
el cerebro consta de aproximadamente 100.000.000.000 (cien mil millones puf!)
de neuronas conectadas entre si por medio de dendritas.
Supngo que los que leen esto habran terminado la primaria, pero por las
dudas refresquemos:


           ����������ͻ
       /          �   �
   A /_ _  ������͹ B �������� C
     \            �   �
       \   ����������ͼ

Bueno, eso que parece un enchufe, es una neurona. (fuaa !).
Las tres patitas (A) son las dendritas. Estas se encargan de conectar las
neruronas entre si y transportar informarcion (impulsos electricos) de
nerurona en neurona. El bloque del medio (B) es el nucleo. Este es el
encargado de almacenar informacion (si, impulsos electricos) de una forma que ahora
no viene al caso (es muy dificil. quiza en otra nota, si les interesa pidanlo
:) )
Y la pata final (C) es el axon. Por aqui sale informacion (muy bien, impulsos
electricos nuevamente) si la neurona lo decide. (ya van a ver como)

Resumiendo.
Todos nosotros tenemos en el cerebro (o lo que sea que este ahi dentro)
muchas neuronas. A cada neurona se le conectan tres mas (esto se llama
sinapsis*) y esta a su vez se conecta con otra neurona (que a su vez tiene
conectadas dos mas) y asi sucesivamente, formando una red neuronal.

*sinapsis: a cada dendrita se le une (por medio del axon) otra neurona.*

fuuf... que largo..... tomemos un descanso y despues seguimos.......no hay
que cansar las neuronas......

Bueno, volvamos a lo nuestro.

Esta red neuronal se encarga de transportar informacion (podria compararse
con el bus) desde y hacia el cerebro.
Por ejemplo, muevan el brazo. Acaban de ver actuando una red neuronal.
El cerebro envio la orden al brazo y el brazo se movio.
Bueno, las neuronas del cerebro son las que hacen que ustedes, (si ustedes)
aprendan y puedan programar, moverse, hablar y todo eso.

REDES NEURONALES ARTIFICIALES
----- ---------- ------------
Bien, es un poco idiota preguntar que significa el titulo. Pero como siempre,
por las dudas, explico:
es una red neuronal no natural que imita a la red neuronal natural, capisce ?
bueno, segun una revista, (PCMANIA 40), hubo dos chabones (Mc Culloch y
Walter Pitts), de ahora en mas "dos chabones", que hicieron un modelo
matematico de una neurona.
Se doto a este modelo de entradas y salidas (tal como a una neurona natural).
A cada entrada se le dio un peso (si, algun chistoso habra dicho "y fueron
a comprarse una lata a la fabrica del robot". pero no, un peso numerico.)
Bueno, el funcionamiento de la neurona es simple, para saber si una
entrada de informacion (por dendritas) merece respuesta (por axon), se
multiplica la entrada de cada dendrita por su peso. Si la suma de todos
esos productos (de las 3 dendritas) es mayor que un cierto valor se emitira
respuesta por el axon. Sino, no pasa nada.
Pensemos, tenemos 3 entradas y una salida, que se puede hacer ? facil,
imitar cualquier funcion logica como AND u OR.
Por ejemplo, para la funcion AND, debemos hacer que las entradas sean 0 o 1,
determinar el valor para el cual habra respuesta (1) poner las entradas
de las dendritas en 1, 1 y 0.5. Asi observaremos que solamente hay respuesta
(igual a 1) cuando dos entradas son igual a 1. En otro caso no.

Ej:

 O  A   ->    1  ����������ͻ
 T  X                   �   �
 R  O   ->    1  ������͹   ��������  1
 O  N                   �   �
 S  E   ->   0.5 ����������ͼ
    S

respuesta por axon: 1 (o sea hay respuesta)

Queda en ustedes hacer la funcion OR y NAND.

Ahhh...
Me olvidaba de decir que hay un programa (hecho en basic pero programa
al fin) que demuestra todo esto... (publicado con la pcmania 40)
Paso a resumir su teoria.....
En una zona (de la pantalla) que imita un habitat, vive un ser "vivo" (valga
la redundancia) llamado zoobit. Este bicharraco (queda en ustedes imaginar
su forma y demas), posee olfato y gusto. No asi vision, tacto ni oido.
En este habitat tambien hay comida identificada por puntitos azul (sin
olor ni gusto), verdes (sin olor pero con sabor), celestes (con olor pero
sin sabor), y rojas (con olor y sabor).
El asunto es que las tres primeras (azul, verde y celeste) no son nutritivas,
o sea que la energia del bicho este no aumenta, sino que disminuye por el
gasto de digerirlas (hehe). En cambio la roja si lo alimenta incrementando
su energia. Bueno la cosa es que el coso este aprenda a distinguir la
particula que lo alimenta (para morfarla y desechar las otras) mediante
una red neuronal (llamada percepton -de una sola neurona-). El bicho gasta
energia al moverse tambien.

Bueno, eso fue toda una introduccion..... hay mas cosas que explicar (mas
interesantes y profundas) pero todo depende de ustedes (si les gusto o no
dejen mensajes en dionysios 3 que es el unico que anda) y de drako.
Experimenten, hagan programas tratando de hacer una pequena red como la
del ejemplo y todo eso.

y recuerden : "El progreso no consiste en reemplazar una teoria equivocada
              por otra correcta, sino en sustituir una teoria falsa por
              otra mas sutilmente erronea" Hawkin.

y bueno ya que estamos, para los programadores de assembler que laburan
mucho con direccionamiento, stack y demas:

"Cuando ponga algo en la memoria, recuerde donde lo puso" Beiser.

Saludos........................ zarpex
MINOTAURO MAGAZINE #10:

                         Curso de quimica explosiva
                                Por Kender

Sip, por primera vez en la mino, se publica una nota de explosivos.
Vamos a empezar por un cursito basico de explosivos y asi en cada numero
vamos a ir agregando formulas para que todos ustedes !VUELEN! de alegria ;)

Bue, vamo a empezar.. para que tengan una idea los explosivos son sustancias
quimicas que al detonarse (Por corriente electrica, impacto, o llama) cambian
repentinamente a gases calientes. Estos gases se expanden con terrible fuerza y
presion hacia sus alrededores. Cuando la polvora se detona la presion aumenta
hasta 6000 veces de lo normal Los explosivos mas "Fuertes"como la dinamita el
T.N.T (Trinitotolueno) y la nitroglicerina generas mucha mas cantidad de
presion alrededor de 300 toneladas por centimetro cuadrado!.
Que causa esta tremenda liberacion de gases ? Bueno, para entenderlo tenes que
pensar que muchos liquidos y solidos estan compuestos por gases, como el agua
que esta compuesto por Oxigeno e Hidrogeno. El fulminato de Mercurio esta
compuesto por Mercurio, Oxigeno, Carbon y Nitrogeno.  El agua Obviamente no es
explosiva (Aclaracion para los que van a acercar un fosforito a la canilla)
pero el fulminato de mercurio si.Esto es porque el Hidrogeno y el oxigeno
generan una gran fuerza de atraccion y no pueden ser separados sin energia. Sin
embargo el fulminato de Mercurio es un compuesto inestable y sus componentes no
generan mucha atraccion entre si, y estan buscando siempre una excusa para
separarse.

Al Detonarse el fulminato de mercurio se generan dos gases , nitrogeno y
monoxido de carbono, ademas se genera vapor de mercurio. Estos gases ocupan mas
espacio que cuando estaban en estado solido y su repentina y violenta expansion
es la que causa la explosion. (me salio con versito nomas)

Una definicion de explosivo puede ser "cualquier substancia que al romperse
generan rapida y violentamente, grandes cantidades de gas."

Tomando en cuenta la velocidad de explosion, los explosivos se pueden
clasificar en dos tipos. El primero es el de los rapidos. como el fulminato
de mercurio el segundo es el de los lentos como la piroxilina y etc.
Tambien se puede hablar de un tercer tipo, el de los que segun el tipo de
detonacion reaccionan mas o menos, como el Trinitotolueno que solo no es un
gran explosivo, pero que acompa�ado por un explosivo primario como detonador
puede llegar a generar una gran explosion.


                   COMPARACION DE VELOCIDADES DE DETONACION
    +------------------------------------------------------------------------+
8600 !                                                                        !
8500 !             %%%%%%%%%%                                                 !
8400 !             %%%%%%%%%%                                                 !
8300 !             %%%%%%%%%%                                                 !
8200 !             %%%%%%%%%%                                                 !
8100 !             %%%%%%%%%%                                      %%%%%%%%%% !
8000 !             %%%%%%%%%%                                      %%%%%%%%%% !
7900 !             %%%%%%%%%%  %%%%%%%%%%                          %%%%%%%%%% !
7800 !             %%%%%%%%%%  %%%%%%%%%%                          %%%%%%%%%% !
7700 !             %%%%%%%%%%  %%%%%%%%%%              %%%%%%%%%%  %%%%%%%%%% !
7600 !             %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%% !
7500 !             %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%% !
7400 !             %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%% !
7300 !             %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%% !
7200 !             %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%% !
7100 !             %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%% !
7000 !             %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%% !
6900 ! %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%% !
6800 ! %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%%  %%%%%%%%%% !
    +------------------------------------------------------------------------+
        T.N.T       R.D.X.       "C"         "C-2"       "C-3"      "C-4"



            Precauciones para el manejo de los explosivos

La preparacion de explosivos no tiene porque ser dificil o riesgosa, si se
toman en cuenta estas 20 reglas esenciales.

1) Cuando se hacen explosivos tratar de preparar poca cantidad, (no te zarpes
  haciendo 5 kilos de R.D.X porque si llega a pasar algo vas a volar la
  manzana). Acordate, mientras mas grande es la cantidad, mas "Fuerte" explota

2) Cuando se usa papel en la preparacion, no hay que tirarlo en el tacho,
  lavarlo con agua. Asi se disuelven los compuestos y no son peligrosos.

3) Trata de tener lo mas ordenado posible tu lugar de trabajo, y no dejes
  los frascos abiertos.

4) Si se va a usar un mortero, lavarlo y !No piques los quimicos juntos!

5) Al mezclar quimicos se lo debe hacer al aire libre, cuidando de no usar
  recipientes de metal(por las chispas), de la temperatura, de no tener
  ninguna llama cerca y de la estatica.

6) Al guardar los quimicos cuidar de que al tapar el tubo. no este frotando
  con el mismo.

7) Guardar los ingredientes en envases de plastico. lejos del fuego, del calor
  y si puede ser al aire libre (pero a la sombra)

8) Usar siempre envases limpios.

9) Usar siempre una anteojos de trabajo, para cubrir los ojos.

10) Si se trabaja con gases, vapores y polvo. usar una mascara antigas.

11) Siempre usa guantes.

12) Siempre usa guardapolvo o impermeable.

13) Si se va a trabajar dentro de una casa. tener buena ventilacion.

14) Siempre trabaja con alguien mas.

15) Siempre tene cerca agua y un matafuego.

16) Nunca se debe usar frascos de metal para guardar los explosivos.
   Mucha gente murio por las famosas bombas de los cartuchos de CO2
   que al explotar salen volando pedazos cortantes de metal.

17) Lavarse las manos y cara antes y despues de trabajar.

18) Si una aparto falla, dejarlo, hasta estar seguro que no explotara.

19) Saber bien el procedimiento antes de intentar algo.

20) Nunca golpear o dejar caer mezclas que tienen percloratos o nitratos.



                              Ejemplos simples
                              ----------------


Triyodo amoniaco (Explosivo de contacto)
----------------------------------------

1) Poner Yodo solido (en cristales) en un recipiente.
2) Introducir Amoniaco en el recipiente hasta cubrir el Yodo.
3) Dejar reposar de 1 a 2 hs.
4) Filtrar la solucion con un filtro de papel. lo que queda en el filtro, unos
cristales marrones, es nuestro explosivo..
5) Dejar secar los cristales

Aclaraciones:
1)El tipo de amoniaco influye en la sensibilidad del explosivo. Si se utiliza
Peroxido amoniaco, el explosivo sera "Intocable" con tan solo un soplido puede
estallar. Si se utiliza Amoniaco puro pierde sensibilidad, igualmente !Es muy
sensible! asi que yo recomiendo usar el segundo
2) Hay que tener en cuenta que el yodo mancha muchisimo asi que tanto como el
recipiente o sus manos pueden quedar manchadas. asi que usen de recipiente un
vaso de porqueria u otra cosa, y cuando saquen los cristales del filtro usen
una cuchara o algo por el estilo.
3)Cuando los cristales queden secos. el explosivo ya esta listo, acuerdense de
que es !MUY SENSIBLE! y tengan cuidado.

Polvora
-------
Existen tres tipos distintos de polvora.
F
FF
FFF
De menor a mayor velocidad de detonacion
La formula del mas simple y mas usado (Petardos etc.) es :

75% Nitrato de potasio
15% Carbon
10% Azufre

esta mezcla se puede hacer en seco o para mayor homogeneidad en mojado y
despues dejandolo secar.
(tengan en cuenta que todo esto es en polvo)

Clorato de potasio
------------------
El clorato de potasio se puede combinar con azucar o azufre para hacer
un componente muy parecido a la polvora.
Con azufre se convierte en un explosivo de friccion o impacto.
Con azucar se quema rapidamente con una llama muy fuerte.

Nitrocelulosa
-------------
La nitrocelulosa is usualmente llamada "algodon polvora" o "piroxilina".
Es mas estable que la polvora, produce mucho mas gas caliente y se quema mas
rapido que la polvora.

1) Poner 10 cc de acido sulfurico con 10 cc de acido nitico en un recipiente.
  (no de metal porque se lo morfa)

2) Inmediatamente poner 0.5 gm de algodon y dejarlo reposar por 3 minutos.

3) Sacar la nitrocelulosa y lavarla con agua. repetir este proceso varias veces
  (Lo ideal seria fijarse si es neutro con un reactivo, pero...)

4) Dejar secar el material y usar!

En los proximos numeros se incluiran formulas mas avanzadas como T.N.T., R.D.X.
C-4, PETN y etc.

Kender.
MINOTAURO MAGAZINE #10

                               Telefonia Celular
                               Conceptos Basicos

% Introduccion %

       Actualmente en Argentina (mas precisamente en Buenos Aires) se esta
utilizando el sistema NAMPS (New Advanced Movile Phone System) que puede
manejar 832 canales. Este sistema es el sucesor del AMPS que solo soportaba 666
canales. El total de canales es dividido en dos bandas A y B, cada una a cargo
de un provider (Movicom y Miniphone en Bs. As.) y cada banda recibe el nombre
de Non-Wireline y Wireline respectivamente ya que la segunda estaria reservada
para la compa�ia de telefonos local (Telefonica y/o Telecom). Cada banda consta
de 416 canales (832/2) y cada uno tiene un uso especifico. Por ejemplo, de cada
banda, 21 canales son usados como Canales de Control (CC) y el resto como
Canales de Voz (VC). Pero todo esto lo vamos a hablar mas adelante.

Lo importante es que todo el sistema de celulares esta conectado (OBVIAMENTE)
al sistema telefonico convencional por medio de COs (Central Offices u Oficinas
Centrales) que hacen las veces de Switches comunes y corrientes, pero que estan
conectadas a MTSOs (Movile Telephone Switching Offices) que es desde donde se
maneja toda la asignacion de canales, y por donde pasan todas las
comunicaciones de una determinada zona.

% Providers %

       Cada proveedor (o carrier) tiene arreglos con fabricantes para que
los provea de equipo. En el caso de Movi, ni siquiera, ya que no es propiedad
de Juan Movicom, sino es una empresa conjunta de dos empresas yankees y dos
nacionales: Motorola, Southern Bell, BGH y Socatel. La inversion inicial fue
de $150 millones, y en 1993 ya estaban facturando esa cantidad por A�O. Mal
negocio eh? En el caso de Miniphone, es una empresa de Movistar, formada
50% y 50% por Telefonica Y Telecom. Estos dos carriers son los que brindan
el servicio en Capital Federal y Conurbano Bonaerense. Toda la Zona Norte
del pais la controla CPPI y la Zona Sur y Gran Bs. As. la maneja Unifon,
empresa de Telefonica. Estas tres ultimas empresas son "socias" para no decir
que son lo mismo. Por cada zona siempre hay dos empresas que compiten, por
ejemplo en Capital y Conurbano Miniphone y Movicom se viven tirando mierda ;)
En el Norte la competidora de CPPI es CTI (Comunicaciones Telefonicas del
Interior) y asi cada carrier tiene su competencia. En el Sur no tengo
informacion sobre quien es la competencia de Unifon, pero despues de todo no es
un tema demasiado imporante.
Bueno como ya dijimos, Movicom se maneja con equipamiento Motorola, mientras
que Miniphone se tendria que manejar con Ericson. Aunque digo tendria porque
tambien manejan muchos equipos Motorola.

% Seguridad %

Eh, bueno. Son mis comunicaciones celulares confiables? o cualquier boludo
con un handy, scanner, o incluso con cualquier celular puede escucharme?
Efectivamente, cualquiera (no con _cualquier_ handy o scanner, pero) puede
escuchar asi de facil cualquier comunicacion celular. (no se si habra
legislacion al respecto, pero por las dudas no lo hagan :-). Asi que quizas
uno sea muy capo pero en cuanto se ponga a hablar por un movi hay grandes
posibilidades que lo esten escuchando... Ah, pero esto es un problema.
Entonces se reunieron los expertos de USA y convirtieron la escucha de la banda
de 800mhz en ilegal, y solucionaron el problema. hahaha
O como cuando querian prohibir el uso de beepers en Estados Unidos, porque los
usaban los narcos. haha, un tipo que trafica merca va a dejar de usar un beeper
porque es ilegal? bueh, asi estamos no?

% Asignacion de canales (frecuencias) %

Como dijimos antes, cada provider tiene asignada una banda de 416 canales,
venidos de un total de 832 canales. Estos estan numerados desde el 1 hasta el
1023 con un agujero en el medio desde el canal 800 al 990 que estan sin uso,
para poder codificar cada canal con una palabra de 10 bits. Sin embargo parece
que tienen pensado upgradear o al menos lo tuvieron en cuenta, ya que todas
las palabras transmitidas que se refieren a channel numbers, son palabras de
11 bits con el MSB en 0. Cada canal tiene una frecuencia asociada, por lo que
hablar de canal es lo mismo que hablar de frecuencia. A continuacion la tabla
de asignacion de frecuencias por canal:

Chan   Mobile   Cell Site              RECs: Reverse Channels
 n�    RECs     FOCs                         (de Movi A Torre)
-------------------------              FOCs: Forward Channels
  1 -- 825.03 -- 870.03                      (de Torre A Movi)
  2 -- 825.06 -- 870.06                Entre RECs y FOCs hay una diferencia
  3 -- 825.09 -- 870.09                de 45 Mhz
  4 -- 825.12 -- 870.12
  5 -- 825.15 -- 870.15                (Frecuencias en Mhz)
  6 -- 825.18 -- 870.18
  7 -- 825.21 -- 870.21                Banda A:
  8 -- 825.24 -- 870.24                de canal 1 hasta canal 333 +
  9 -- 825.27 -- 870.27                + de canal 667 hasta canal 716 +
 10 -- 825.30 -- 870.30                + de canal 991 hasta canal 1023 =
 11 -- 825.33 -- 870.33                = 416 canales
 12 -- 825.36 -- 870.36
 13 -- 825.39 -- 870.39                Banda B:
 14 -- 825.42 -- 870.42                todo el resto de los canales asignados
 15 -- 825.45 -- 870.45
 16 -- 825.48 -- 870.48                Canales separados entre si por 30Khz
 17 -- 825.51 -- 870.51
 18 -- 825.54 -- 870.54
 19 -- 825.57 -- 870.57
 20 -- 825.60 -- 870.60
 21 -- 825.63 -- 870.63
 22 -- 825.66 -- 870.66
 23 -- 825.69 -- 870.69
 24 -- 825.72 -- 870.72
 25 -- 825.75 -- 870.75
 26 -- 825.78 -- 870.78
 27 -- 825.81 -- 870.81
 28 -- 825.84 -- 870.84
 29 -- 825.87 -- 870.87
 30 -- 825.90 -- 870.90
 31 -- 825.93 -- 870.93
 32 -- 825.96 -- 870.96
 33 -- 825.99 -- 870.99
 34 -- 826.02 -- 871.02
 35 -- 826.05 -- 871.05
 36 -- 826.08 -- 871.08
 37 -- 826.11 -- 871.11
 38 -- 826.14 -- 871.14
 39 -- 826.17 -- 871.17
 40 -- 826.20 -- 871.20
 41 -- 826.23 -- 871.23
 42 -- 826.26 -- 871.26
 43 -- 826.29 -- 871.29
 44 -- 826.32 -- 871.32
 45 -- 826.35 -- 871.35
 46 -- 826.38 -- 871.38
 47 -- 826.41 -- 871.41
 48 -- 826.44 -- 871.44
 49 -- 826.47 -- 871.47
 50 -- 826.50 -- 871.50
 51 -- 826.53 -- 871.53
 52 -- 826.56 -- 871.56
 53 -- 826.59 -- 871.59
 54 -- 826.62 -- 871.62
 55 -- 826.65 -- 871.65
 56 -- 826.68 -- 871.68
 57 -- 826.71 -- 871.71
 58 -- 826.74 -- 871.74
 59 -- 826.77 -- 871.77
 60 -- 826.80 -- 871.80
 61 -- 826.83 -- 871.83
 62 -- 826.86 -- 871.86
 63 -- 826.89 -- 871.89
 64 -- 826.92 -- 871.92
 65 -- 826.95 -- 871.95
 66 -- 826.98 -- 871.98
 67 -- 827.01 -- 872.01
 68 -- 827.04 -- 872.04
 69 -- 827.07 -- 872.07
 70 -- 827.10 -- 872.10
 71 -- 827.13 -- 872.13
 72 -- 827.16 -- 872.16
 73 -- 827.19 -- 872.19
 74 -- 827.22 -- 872.22
 75 -- 827.25 -- 872.25
 76 -- 827.28 -- 872.28
 77 -- 827.31 -- 872.31
 78 -- 827.34 -- 872.34
 79 -- 827.37 -- 872.37
 80 -- 827.40 -- 872.40
 81 -- 827.43 -- 872.43
 82 -- 827.46 -- 872.46
 83 -- 827.49 -- 872.49
 84 -- 827.52 -- 872.52
 85 -- 827.55 -- 872.55
 86 -- 827.58 -- 872.58
 87 -- 827.61 -- 872.61
 88 -- 827.64 -- 872.64
 89 -- 827.67 -- 872.67
 90 -- 827.70 -- 872.70
 91 -- 827.73 -- 872.73
 92 -- 827.76 -- 872.76
 93 -- 827.79 -- 872.79
 94 -- 827.82 -- 872.82
 95 -- 827.85 -- 872.85
 96 -- 827.88 -- 872.88
 97 -- 827.91 -- 872.91
 98 -- 827.94 -- 872.94
 99 -- 827.97 -- 872.97
100 -- 828.00 -- 873.00
101 -- 828.03 -- 873.03
102 -- 828.06 -- 873.06
103 -- 828.09 -- 873.09
104 -- 828.12 -- 873.12
105 -- 828.15 -- 873.15
106 -- 828.18 -- 873.18
107 -- 828.21 -- 873.21
108 -- 828.24 -- 873.24
109 -- 828.27 -- 873.27
110 -- 828.30 -- 873.30
111 -- 828.33 -- 873.33
112 -- 828.36 -- 873.36
113 -- 828.39 -- 873.39
114 -- 828.42 -- 873.42
115 -- 828.45 -- 873.45
116 -- 828.48 -- 873.48
117 -- 828.51 -- 873.51
118 -- 828.54 -- 873.54
119 -- 828.57 -- 873.57
120 -- 828.60 -- 873.60
121 -- 828.63 -- 873.63
122 -- 828.66 -- 873.66
123 -- 828.69 -- 873.69
124 -- 828.72 -- 873.72
125 -- 828.75 -- 873.75
126 -- 828.78 -- 873.78
127 -- 828.81 -- 873.81
128 -- 828.84 -- 873.84
129 -- 828.87 -- 873.87
130 -- 828.90 -- 873.90
131 -- 828.93 -- 873.93
132 -- 828.96 -- 873.96
133 -- 828.99 -- 873.99
134 -- 829.02 -- 874.02
135 -- 829.05 -- 874.05
136 -- 829.08 -- 874.08
137 -- 829.11 -- 874.11
138 -- 829.14 -- 874.14
139 -- 829.17 -- 874.17
140 -- 829.20 -- 874.20
141 -- 829.23 -- 874.23
142 -- 829.26 -- 874.26
143 -- 829.29 -- 874.29
144 -- 829.32 -- 874.32
145 -- 829.35 -- 874.35
146 -- 829.38 -- 874.38
147 -- 829.41 -- 874.41
148 -- 829.44 -- 874.44
149 -- 829.47 -- 874.47
150 -- 829.50 -- 874.50
151 -- 829.53 -- 874.53
152 -- 829.56 -- 874.56
153 -- 829.59 -- 874.59
154 -- 829.62 -- 874.62
155 -- 829.65 -- 874.65
156 -- 829.68 -- 874.68
157 -- 829.71 -- 874.71
158 -- 829.74 -- 874.74
159 -- 829.77 -- 874.77
160 -- 829.80 -- 874.80
161 -- 829.83 -- 874.83
162 -- 829.86 -- 874.86
163 -- 829.89 -- 874.89
164 -- 829.92 -- 874.92
165 -- 829.95 -- 874.95
166 -- 829.98 -- 874.98
167 -- 830.01 -- 875.01
168 -- 830.04 -- 875.04
169 -- 830.07 -- 875.07
170 -- 830.10 -- 875.10
171 -- 830.13 -- 875.13
172 -- 830.16 -- 875.16
173 -- 830.19 -- 875.19
174 -- 830.22 -- 875.22
175 -- 830.25 -- 875.25
176 -- 830.28 -- 875.28
177 -- 830.31 -- 875.31
178 -- 830.34 -- 875.34
179 -- 830.37 -- 875.37
180 -- 830.40 -- 875.40
181 -- 830.43 -- 875.43
182 -- 830.46 -- 875.46
183 -- 830.49 -- 875.49
184 -- 830.52 -- 875.52
185 -- 830.55 -- 875.55
186 -- 830.58 -- 875.58
187 -- 830.61 -- 875.61
188 -- 830.64 -- 875.64
189 -- 830.67 -- 875.67
190 -- 830.70 -- 875.70
191 -- 830.73 -- 875.73
192 -- 830.76 -- 875.76
193 -- 830.79 -- 875.79
194 -- 830.82 -- 875.82
195 -- 830.85 -- 875.85
196 -- 830.88 -- 875.88
197 -- 830.91 -- 875.91
198 -- 830.94 -- 875.94
199 -- 830.97 -- 875.97
200 -- 831.00 -- 876.00
201 -- 831.03 -- 876.03
202 -- 831.06 -- 876.06
203 -- 831.09 -- 876.09
204 -- 831.12 -- 876.12
205 -- 831.15 -- 876.15
206 -- 831.18 -- 876.18
207 -- 831.21 -- 876.21
208 -- 831.24 -- 876.24
209 -- 831.27 -- 876.27
210 -- 831.30 -- 876.30
211 -- 831.33 -- 876.33
212 -- 831.36 -- 876.36
213 -- 831.39 -- 876.39
214 -- 831.42 -- 876.42
215 -- 831.45 -- 876.45
216 -- 831.48 -- 876.48
217 -- 831.51 -- 876.51
218 -- 831.54 -- 876.54
219 -- 831.57 -- 876.57
220 -- 831.60 -- 876.60
221 -- 831.63 -- 876.63
222 -- 831.66 -- 876.66
223 -- 831.69 -- 876.69
224 -- 831.72 -- 876.72
225 -- 831.75 -- 876.75
226 -- 831.78 -- 876.78
227 -- 831.81 -- 876.81
228 -- 831.84 -- 876.84
229 -- 831.87 -- 876.87
230 -- 831.90 -- 876.90
231 -- 831.93 -- 876.93
232 -- 831.96 -- 876.96
233 -- 831.99 -- 876.99
234 -- 832.02 -- 877.02
235 -- 832.05 -- 877.05
236 -- 832.08 -- 877.08
237 -- 832.11 -- 877.11
238 -- 832.14 -- 877.14
239 -- 832.17 -- 877.17
240 -- 832.20 -- 877.20
241 -- 832.23 -- 877.23
242 -- 832.26 -- 877.26
243 -- 832.29 -- 877.29
244 -- 832.32 -- 877.32
245 -- 832.35 -- 877.35
246 -- 832.38 -- 877.38
247 -- 832.41 -- 877.41
248 -- 832.44 -- 877.44
249 -- 832.47 -- 877.47
250 -- 832.50 -- 877.50
251 -- 832.53 -- 877.53
252 -- 832.56 -- 877.56
253 -- 832.59 -- 877.59
254 -- 832.62 -- 877.62
255 -- 832.65 -- 877.65
256 -- 832.68 -- 877.68
257 -- 832.71 -- 877.71
258 -- 832.74 -- 877.74
259 -- 832.77 -- 877.77
260 -- 832.80 -- 877.80
261 -- 832.83 -- 877.83
262 -- 832.86 -- 877.86
263 -- 832.89 -- 877.89
264 -- 832.92 -- 877.92
265 -- 832.95 -- 877.95
266 -- 832.98 -- 877.98
267 -- 833.01 -- 878.01
268 -- 833.04 -- 878.04
269 -- 833.07 -- 878.07
270 -- 833.10 -- 878.10
271 -- 833.13 -- 878.13
272 -- 833.16 -- 878.16
273 -- 833.19 -- 878.19
274 -- 833.22 -- 878.22
275 -- 833.25 -- 878.25
276 -- 833.28 -- 878.28
277 -- 833.31 -- 878.31
278 -- 833.34 -- 878.34
279 -- 833.37 -- 878.37
280 -- 833.40 -- 878.40
281 -- 833.43 -- 878.43
282 -- 833.46 -- 878.46
283 -- 833.49 -- 878.49
284 -- 833.52 -- 878.52
285 -- 833.55 -- 878.55
286 -- 833.58 -- 878.58
287 -- 833.61 -- 878.61
288 -- 833.64 -- 878.64
289 -- 833.67 -- 878.67
290 -- 833.70 -- 878.70
291 -- 833.73 -- 878.73
292 -- 833.76 -- 878.76
293 -- 833.79 -- 878.79
294 -- 833.82 -- 878.82
295 -- 833.85 -- 878.85
296 -- 833.88 -- 878.88
297 -- 833.91 -- 878.91
298 -- 833.94 -- 878.94
299 -- 833.97 -- 878.97
300 -- 834.00 -- 879.00
301 -- 834.03 -- 879.03
302 -- 834.06 -- 879.06
303 -- 834.09 -- 879.09
304 -- 834.12 -- 879.12
305 -- 834.15 -- 879.15
306 -- 834.18 -- 879.18
307 -- 834.21 -- 879.21
308 -- 834.24 -- 879.24
309 -- 834.27 -- 879.27
310 -- 834.30 -- 879.30
311 -- 834.33 -- 879.33
312 -- 834.36 -- 879.36

313 -- 834.39 -- 879.39        +----------> Start: Canales de Control banda A
314 -- 834.42 -- 879.42        |
315 -- 834.45 -- 879.45        |
316 -- 834.48 -- 879.48        |
317 -- 834.51 -- 879.51        |
318 -- 834.54 -- 879.54        |
319 -- 834.57 -- 879.57        |
320 -- 834.60 -- 879.60        |
321 -- 834.63 -- 879.63        |
322 -- 834.66 -- 879.66        |
323 -- 834.69 -- 879.69        |
324 -- 834.72 -- 879.72        |
325 -- 834.75 -- 879.75        |
326 -- 834.78 -- 879.78        |
327 -- 834.81 -- 879.81        |
328 -- 834.84 -- 879.84        |
329 -- 834.87 -- 879.87        |
330 -- 834.90 -- 879.90        |
331 -- 834.93 -- 879.93        |
332 -- 834.96 -- 879.96        |
333 -- 834.99 -- 879.99        +------------------------------> End

334 -- 835.02 -- 880.02        +----------> Start: Canales de Control Banda B
335 -- 835.05 -- 880.05        |
336 -- 835.08 -- 880.08        |
337 -- 835.11 -- 880.11        |
338 -- 835.14 -- 880.14        |
339 -- 835.17 -- 880.17        |
340 -- 835.20 -- 880.20        |
341 -- 835.23 -- 880.23        |
342 -- 835.26 -- 880.26        |
343 -- 835.29 -- 880.29        |
344 -- 835.32 -- 880.32        |
345 -- 835.35 -- 880.35        |
346 -- 835.38 -- 880.38        |
347 -- 835.41 -- 880.41        |
348 -- 835.44 -- 880.44        |
349 -- 835.47 -- 880.47        |
350 -- 835.50 -- 880.50        |
351 -- 835.53 -- 880.53        |
352 -- 835.56 -- 880.56        |
353 -- 835.59 -- 880.59        |
354 -- 835.62 -- 880.62        +------------------------------> End

355 -- 835.65 -- 880.65
356 -- 835.68 -- 880.68
357 -- 835.71 -- 880.71
358 -- 835.74 -- 880.74
359 -- 835.77 -- 880.77
360 -- 835.80 -- 880.80
361 -- 835.83 -- 880.83
362 -- 835.86 -- 880.86
363 -- 835.89 -- 880.89
364 -- 835.92 -- 880.92
365 -- 835.95 -- 880.95
366 -- 835.98 -- 880.98
367 -- 836.01 -- 881.01
368 -- 836.04 -- 881.04
369 -- 836.07 -- 881.07
370 -- 836.10 -- 881.10
371 -- 836.13 -- 881.13
372 -- 836.16 -- 881.16
373 -- 836.19 -- 881.19
374 -- 836.22 -- 881.22
375 -- 836.25 -- 881.25
376 -- 836.28 -- 881.28
377 -- 836.31 -- 881.31
378 -- 836.34 -- 881.34
379 -- 836.37 -- 881.37
380 -- 836.40 -- 881.40
381 -- 836.43 -- 881.43
382 -- 836.46 -- 881.46
383 -- 836.49 -- 881.49
384 -- 836.52 -- 881.52
385 -- 836.55 -- 881.55
386 -- 836.58 -- 881.58
387 -- 836.61 -- 881.61
388 -- 836.64 -- 881.64
389 -- 836.67 -- 881.67
390 -- 836.70 -- 881.70
391 -- 836.73 -- 881.73
392 -- 836.76 -- 881.76
393 -- 836.79 -- 881.79
394 -- 836.82 -- 881.82
395 -- 836.85 -- 881.85
396 -- 836.88 -- 881.88
397 -- 836.91 -- 881.91
398 -- 836.94 -- 881.94
399 -- 836.97 -- 881.97
400 -- 837.00 -- 882.00
401 -- 837.03 -- 882.03
402 -- 837.06 -- 882.06
403 -- 837.09 -- 882.09
404 -- 837.12 -- 882.12
405 -- 837.15 -- 882.15
406 -- 837.18 -- 882.18
407 -- 837.21 -- 882.21
408 -- 837.24 -- 882.24
409 -- 837.27 -- 882.27
410 -- 837.30 -- 882.30
411 -- 837.33 -- 882.33
412 -- 837.36 -- 882.36
413 -- 837.39 -- 882.39
414 -- 837.42 -- 882.42
415 -- 837.45 -- 882.45
416 -- 837.48 -- 882.48
417 -- 837.51 -- 882.51
418 -- 837.54 -- 882.54
419 -- 837.57 -- 882.57
420 -- 837.60 -- 882.60
421 -- 837.63 -- 882.63
422 -- 837.66 -- 882.66
423 -- 837.69 -- 882.69
424 -- 837.72 -- 882.72
425 -- 837.75 -- 882.75
426 -- 837.78 -- 882.78
427 -- 837.81 -- 882.81
428 -- 837.84 -- 882.84
429 -- 837.87 -- 882.87
430 -- 837.90 -- 882.90
431 -- 837.93 -- 882.93
432 -- 837.96 -- 882.96
433 -- 837.99 -- 882.99
434 -- 838.02 -- 883.02
435 -- 838.05 -- 883.05
436 -- 838.08 -- 883.08
437 -- 838.11 -- 883.11
438 -- 838.14 -- 883.14
439 -- 838.17 -- 883.17
440 -- 838.20 -- 883.20
441 -- 838.23 -- 883.23
442 -- 838.26 -- 883.26
443 -- 838.29 -- 883.29
444 -- 838.32 -- 883.32
445 -- 838.35 -- 883.35
446 -- 838.38 -- 883.38
447 -- 838.41 -- 883.41
448 -- 838.44 -- 883.44
449 -- 838.47 -- 883.47
450 -- 838.50 -- 883.50
451 -- 838.53 -- 883.53
452 -- 838.56 -- 883.56
453 -- 838.59 -- 883.59
454 -- 838.62 -- 883.62
455 -- 838.65 -- 883.65
456 -- 838.68 -- 883.68
457 -- 838.71 -- 883.71
458 -- 838.74 -- 883.74
459 -- 838.77 -- 883.77
460 -- 838.80 -- 883.80
461 -- 838.83 -- 883.83
462 -- 838.86 -- 883.86
463 -- 838.89 -- 883.89
464 -- 838.92 -- 883.92
465 -- 838.95 -- 883.95
466 -- 838.98 -- 883.98
467 -- 839.01 -- 884.01
468 -- 839.04 -- 884.04
469 -- 839.07 -- 884.07
470 -- 839.10 -- 884.10
471 -- 839.13 -- 884.13
472 -- 839.16 -- 884.16
473 -- 839.19 -- 884.19
474 -- 839.22 -- 884.22
475 -- 839.25 -- 884.25
476 -- 839.28 -- 884.28
477 -- 839.31 -- 884.31
478 -- 839.34 -- 884.34
479 -- 839.37 -- 884.37
480 -- 839.40 -- 884.40
481 -- 839.43 -- 884.43
482 -- 839.46 -- 884.46
483 -- 839.49 -- 884.49
484 -- 839.52 -- 884.52
485 -- 839.55 -- 884.55
486 -- 839.58 -- 884.58
487 -- 839.61 -- 884.61
488 -- 839.64 -- 884.64
489 -- 839.67 -- 884.67
490 -- 839.70 -- 884.70
491 -- 839.73 -- 884.73
492 -- 839.76 -- 884.76
493 -- 839.79 -- 884.79
494 -- 839.82 -- 884.82
495 -- 839.85 -- 884.85
496 -- 839.88 -- 884.88
497 -- 839.91 -- 884.91
498 -- 839.94 -- 884.94
499 -- 839.97 -- 884.97
500 -- 840.00 -- 885.00
501 -- 840.03 -- 885.03
502 -- 840.06 -- 885.06
503 -- 840.09 -- 885.09
504 -- 840.12 -- 885.12
505 -- 840.15 -- 885.15
506 -- 840.18 -- 885.18
507 -- 840.21 -- 885.21
508 -- 840.24 -- 885.24
509 -- 840.27 -- 885.27
510 -- 840.30 -- 885.30
511 -- 840.33 -- 885.33
512 -- 840.36 -- 885.36
513 -- 840.39 -- 885.39
514 -- 840.42 -- 885.42
515 -- 840.45 -- 885.45
516 -- 840.48 -- 885.48
517 -- 840.51 -- 885.51
518 -- 840.54 -- 885.54
519 -- 840.57 -- 885.57
520 -- 840.60 -- 885.60
521 -- 840.63 -- 885.63
522 -- 840.66 -- 885.66
523 -- 840.69 -- 885.69
524 -- 840.72 -- 885.72
525 -- 840.75 -- 885.75
526 -- 840.78 -- 885.78
527 -- 840.81 -- 885.81
528 -- 840.84 -- 885.84
529 -- 840.87 -- 885.87
530 -- 840.90 -- 885.90
531 -- 840.93 -- 885.93
532 -- 840.96 -- 885.96
533 -- 840.99 -- 885.99
534 -- 841.02 -- 886.02
535 -- 841.05 -- 886.05
536 -- 841.08 -- 886.08
537 -- 841.11 -- 886.11
538 -- 841.14 -- 886.14
539 -- 841.17 -- 886.17
540 -- 841.20 -- 886.20
541 -- 841.23 -- 886.23
542 -- 841.26 -- 886.26
543 -- 841.29 -- 886.29
544 -- 841.32 -- 886.32
545 -- 841.35 -- 886.35
546 -- 841.38 -- 886.38
547 -- 841.41 -- 886.41
548 -- 841.44 -- 886.44
549 -- 841.47 -- 886.47
550 -- 841.50 -- 886.50
551 -- 841.53 -- 886.53
552 -- 841.56 -- 886.56
553 -- 841.59 -- 886.59
554 -- 841.62 -- 886.62
555 -- 841.65 -- 886.65
556 -- 841.68 -- 886.68
557 -- 841.71 -- 886.71
558 -- 841.74 -- 886.74
559 -- 841.77 -- 886.77
560 -- 841.80 -- 886.80
561 -- 841.83 -- 886.83
562 -- 841.86 -- 886.86
563 -- 841.89 -- 886.89
564 -- 841.92 -- 886.92
565 -- 841.95 -- 886.95
566 -- 841.98 -- 886.98
567 -- 842.01 -- 887.01
568 -- 842.04 -- 887.04
569 -- 842.07 -- 887.07
570 -- 842.10 -- 887.10
571 -- 842.13 -- 887.13
572 -- 842.16 -- 887.16
573 -- 842.19 -- 887.19
574 -- 842.22 -- 887.22
575 -- 842.25 -- 887.25
576 -- 842.28 -- 887.28
577 -- 842.31 -- 887.31
578 -- 842.34 -- 887.34
579 -- 842.37 -- 887.37
580 -- 842.40 -- 887.40
581 -- 842.43 -- 887.43
582 -- 842.46 -- 887.46
583 -- 842.49 -- 887.49
584 -- 842.52 -- 887.52
585 -- 842.55 -- 887.55
586 -- 842.58 -- 887.58
587 -- 842.61 -- 887.61
588 -- 842.64 -- 887.64
589 -- 842.67 -- 887.67
590 -- 842.70 -- 887.70
591 -- 842.73 -- 887.73
592 -- 842.76 -- 887.76
593 -- 842.79 -- 887.79
594 -- 842.82 -- 887.82
595 -- 842.85 -- 887.85
596 -- 842.88 -- 887.88
597 -- 842.91 -- 887.91
598 -- 842.94 -- 887.94
599 -- 842.97 -- 887.97
600 -- 843.00 -- 888.00
601 -- 843.03 -- 888.03
602 -- 843.06 -- 888.06
603 -- 843.09 -- 888.09
604 -- 843.12 -- 888.12
605 -- 843.15 -- 888.15
606 -- 843.18 -- 888.18
607 -- 843.21 -- 888.21
608 -- 843.24 -- 888.24
609 -- 843.27 -- 888.27
610 -- 843.30 -- 888.30
611 -- 843.33 -- 888.33
612 -- 843.36 -- 888.36
613 -- 843.39 -- 888.39
614 -- 843.42 -- 888.42
615 -- 843.45 -- 888.45
616 -- 843.48 -- 888.48
617 -- 843.51 -- 888.51
618 -- 843.54 -- 888.54
619 -- 843.57 -- 888.57
620 -- 843.60 -- 888.60
621 -- 843.63 -- 888.63
622 -- 843.66 -- 888.66
623 -- 843.69 -- 888.69
624 -- 843.72 -- 888.72
625 -- 843.75 -- 888.75
626 -- 843.78 -- 888.78
627 -- 843.81 -- 888.81
628 -- 843.84 -- 888.84
629 -- 843.87 -- 888.87
630 -- 843.90 -- 888.90
631 -- 843.93 -- 888.93
632 -- 843.96 -- 888.96
633 -- 843.99 -- 888.99
634 -- 844.02 -- 889.02
635 -- 844.05 -- 889.05
636 -- 844.08 -- 889.08
637 -- 844.11 -- 889.11
638 -- 844.14 -- 889.14
639 -- 844.17 -- 889.17
640 -- 844.20 -- 889.20
641 -- 844.23 -- 889.23
642 -- 844.26 -- 889.26
643 -- 844.29 -- 889.29
644 -- 844.32 -- 889.32
645 -- 844.35 -- 889.35
646 -- 844.38 -- 889.38
647 -- 844.41 -- 889.41
648 -- 844.44 -- 889.44
649 -- 844.47 -- 889.47
650 -- 844.50 -- 889.50
651 -- 844.53 -- 889.53
652 -- 844.56 -- 889.56
653 -- 844.59 -- 889.59
654 -- 844.62 -- 889.62
655 -- 844.65 -- 889.65
656 -- 844.68 -- 889.68
657 -- 844.71 -- 889.71
658 -- 844.74 -- 889.74
659 -- 844.77 -- 889.77
660 -- 844.80 -- 889.80
661 -- 844.83 -- 889.83
662 -- 844.86 -- 889.86
663 -- 844.89 -- 889.89
664 -- 844.92 -- 889.92
665 -- 844.95 -- 889.95
666 -- 844.98 -- 889.98
667 -- 845.01 -- 890.01
668 -- 845.04 -- 890.04
669 -- 845.07 -- 890.07
670 -- 845.10 -- 890.10
671 -- 845.13 -- 890.13
672 -- 845.16 -- 890.16
673 -- 845.19 -- 890.19
674 -- 845.22 -- 890.22
675 -- 845.25 -- 890.25
676 -- 845.28 -- 890.28
677 -- 845.31 -- 890.31
678 -- 845.34 -- 890.34
679 -- 845.37 -- 890.37
680 -- 845.40 -- 890.40
681 -- 845.43 -- 890.43
682 -- 845.46 -- 890.46
683 -- 845.49 -- 890.49
684 -- 845.52 -- 890.52
685 -- 845.55 -- 890.55
686 -- 845.58 -- 890.58
687 -- 845.61 -- 890.61
688 -- 845.64 -- 890.64
689 -- 845.67 -- 890.67
690 -- 845.70 -- 890.70
691 -- 845.73 -- 890.73
692 -- 845.76 -- 890.76
693 -- 845.79 -- 890.79
694 -- 845.82 -- 890.82
695 -- 845.85 -- 890.85
696 -- 845.88 -- 890.88
697 -- 845.91 -- 890.91
698 -- 845.94 -- 890.94
699 -- 845.97 -- 890.97
700 -- 846.00 -- 891.00
701 -- 846.03 -- 891.03
702 -- 846.06 -- 891.06
703 -- 846.09 -- 891.09
704 -- 846.12 -- 891.12
705 -- 846.15 -- 891.15
706 -- 846.18 -- 891.18
707 -- 846.21 -- 891.21
708 -- 846.24 -- 891.24
709 -- 846.27 -- 891.27
710 -- 846.30 -- 891.30
711 -- 846.33 -- 891.33
712 -- 846.36 -- 891.36
713 -- 846.39 -- 891.39
714 -- 846.42 -- 891.42
715 -- 846.45 -- 891.45
716 -- 846.48 -- 891.48
717 -- 846.51 -- 891.51
718 -- 846.54 -- 891.54
719 -- 846.57 -- 891.57
720 -- 846.60 -- 891.60
721 -- 846.63 -- 891.63
722 -- 846.66 -- 891.66
723 -- 846.69 -- 891.69
724 -- 846.72 -- 891.72
725 -- 846.75 -- 891.75
726 -- 846.78 -- 891.78
727 -- 846.81 -- 891.81
728 -- 846.84 -- 891.84
729 -- 846.87 -- 891.87
730 -- 846.90 -- 891.90
731 -- 846.93 -- 891.93
732 -- 846.96 -- 891.96
733 -- 846.99 -- 891.99
734 -- 847.02 -- 892.02
735 -- 847.05 -- 892.05
736 -- 847.08 -- 892.08
737 -- 847.11 -- 892.11
738 -- 847.14 -- 892.14
739 -- 847.17 -- 892.17
740 -- 847.20 -- 892.20
741 -- 847.23 -- 892.23
742 -- 847.26 -- 892.26
743 -- 847.29 -- 892.29
744 -- 847.32 -- 892.32
745 -- 847.35 -- 892.35
746 -- 847.38 -- 892.38
747 -- 847.41 -- 892.41
748 -- 847.44 -- 892.44
749 -- 847.47 -- 892.47
750 -- 847.50 -- 892.50
751 -- 847.53 -- 892.53
752 -- 847.56 -- 892.56
753 -- 847.59 -- 892.59
754 -- 847.62 -- 892.62
755 -- 847.65 -- 892.65
756 -- 847.68 -- 892.68
757 -- 847.71 -- 892.71
758 -- 847.74 -- 892.74
759 -- 847.77 -- 892.77
760 -- 847.80 -- 892.80
761 -- 847.83 -- 892.83
762 -- 847.86 -- 892.86
763 -- 847.89 -- 892.89
764 -- 847.92 -- 892.92
765 -- 847.95 -- 892.95
766 -- 847.98 -- 892.98
767 -- 848.01 -- 893.01
768 -- 848.04 -- 893.04
769 -- 848.07 -- 893.07
770 -- 848.10 -- 893.10
771 -- 848.13 -- 893.13
772 -- 848.16 -- 893.16
773 -- 848.19 -- 893.19
774 -- 848.22 -- 893.22
775 -- 848.25 -- 893.25
776 -- 848.28 -- 893.28
777 -- 848.31 -- 893.31
778 -- 848.34 -- 893.34
779 -- 848.37 -- 893.37
780 -- 848.40 -- 893.40
781 -- 848.43 -- 893.43
782 -- 848.46 -- 893.46
783 -- 848.49 -- 893.49
784 -- 848.52 -- 893.52
785 -- 848.55 -- 893.55
786 -- 848.58 -- 893.58
787 -- 848.61 -- 893.61
788 -- 848.64 -- 893.64
789 -- 848.67 -- 893.67
790 -- 848.70 -- 893.70
791 -- 848.73 -- 893.73
792 -- 848.76 -- 893.76
793 -- 848.79 -- 893.79
794 -- 848.82 -- 893.82
795 -- 848.85 -- 893.85
796 -- 848.88 -- 893.88
797 -- 848.91 -- 893.91
798 -- 848.94 -- 893.94
799 -- 848.97 -- 893.97
;------------------------------------------------------
; canales sin asignacion de frecuencias del 800 al 990
;------------------------------------------------------
991 -- 824.04 -- 869.04
992 -- 824.07 -- 869.07
993 -- 824.10 -- 869.10
994 -- 824.13 -- 869.13
995 -- 824.16 -- 869.16
996 -- 824.19 -- 869.19
997 -- 824.22 -- 869.22
998 -- 824.25 -- 869.25
999 -- 824.28 -- 869.28
1000 -- 824.31 -- 869.31
1001 -- 824.34 -- 869.34
1002 -- 824.37 -- 869.37
1003 -- 824.40 -- 869.40
1004 -- 824.43 -- 869.43
1005 -- 824.46 -- 869.46
1006 -- 824.49 -- 869.49
1007 -- 824.52 -- 869.52
1008 -- 824.55 -- 869.55
1009 -- 824.58 -- 869.58
1010 -- 824.61 -- 869.61
1011 -- 824.64 -- 869.64
1012 -- 824.67 -- 869.67
1013 -- 824.70 -- 869.70
1014 -- 824.73 -- 869.73
1015 -- 824.76 -- 869.76
1016 -- 824.79 -- 869.79
1017 -- 824.82 -- 869.82
1018 -- 824.85 -- 869.85
1019 -- 824.88 -- 869.88
1020 -- 824.91 -- 869.91
1021 -- 824.94 -- 869.94
1022 -- 824.97 -- 869.97
1023 -- 825.00 -- 870.00

Como veran, son dos frecuencias por canal:
Una para que el movi se comunique con la Torre, y una para que la Torre se
comunique con el movi. A los primeros se los conoce con el nombre de REVERSE
Channels o RECs. A los segundos, como FORWARD Channels o FOCs. Como se nota
en la tabla, entre un FOC asociado a un canal determinado y su REC hay una
diferencia de 45Mhz. Interesante. Fijense tambien que el desplazamiento entre
canales adyasentes es de 30 Khz.

Se preguntaran por que todo el quilombo de frecuencias, que por ejemplo el
canal 1023 esta por los 825 Mhz pegado al canal 1?
Supongo que se debe a que originalmente el sistema estaba dise�ado para 666
canales, y despues con el advenimiento de los nuevos canales del NAMPS (y como
era de esperar), los metieron d�nde y c�mo pudieron:

banda original de 666 canales:

       825.03/870.03Mhz        834.99/879.99Mhz
             canal 1-----------canal 333
               +==================+==================+
               |      Banda A     |     Banda B      |
               +==================+==================+
                                canal 334---------canal 666
                       835.02/880.02Mhz        844.98/899.98Mhz


banda manoseada y re-cogida de 832 canales:

              canal 1---------canal 333         canal 667-canal 716
       +=======+==================+==================+=======+==============+
       |Banda A|   Banda A org.   |   Banda B org.   |Banda A| Banda B      |
       +=======+==================+==================+=======+==============+
 canal 991---canal 1023         canal 334------canal 666
                                                          canal 717-canal 799

% Conceptos de Celdas, y asignacion de canales por Celda %

Ya que estamos hablando de esto vamos a explicarlo. El nombre de Telefonia
Celular deriva de la forma en que estan geograficamente dispuestas las antenas
de un sistema. Como todos sabran existe una antena por zona, dedicada a manejar
ciertos canales. Por lo menos existe 1 Canal de Control por Torre, Celda,
Antena o como quieran decirle, un sistema puede ser el siguiente:

                   __
                __/D \__                       Como ven hay solo 4 tipos de
               /B \__/C \__                    celdas: A, B, C y D. Cada TIPO
               \__/A \__/D \__                 maneja frecuencias distintas.
               /C \__/B \__/C \                nunca hay dos celdas que usen
               \__/D \__/A \__/                el mismo set de frecuencias
               /B \__/C \__/                   juntas. Siempre al menos hay
               \__/  \__/                      otra celda distinta en medio.


El total de canales se dividiria en 4 grupos, uno para cada tipo de celda: A,
B, C y D. Este modelo se lo conoce como "Patron de Reutilizacion de 4 Celdas"
y al menos hasta 1993 estaba en uso por Movicom con un total de 60 celdas
(ahora manejran segun ellos unas 150 antenas). SUPONGAMOS que de los 416
canales (21 de control y 395 de voz) los repartimos en 4 juegos distintos:

6 de control    :       desde 313 hasta 318     ;<==== Juego A
100 de voz      :       desde 1 hasta 100

5 de control    :       desde 319 hasta 323     ;<==== Juego B
100 de voz      :       desde 101 hasta 200

5 de control    :       desde 324 hasta 328     ;<==== Juego C
100 de voz      :       desde 201 hasta 300

5 de control    :       desde 329 hasta 333     ;<==== Juego D
95 de voz       :       desde 301 hasta 312 +
                       + desde 667 hasta 716 +
                       + desde 991 hasta 1023
-----------------       -----------------------
416 canales             416 canales

La forma con la que se asocia comunmente el termino Celda, es un hex�gono.
En realidad debido a la naturaleza de las radio se�ales, son circulares, pero
gracias a la ubicacion de las antenas se puede analizar como si fueran
hexagonos perfectamente. Hay entonces, zonas donde hay un solapamiento de
se�ales de dos o mas antenas, zonas donde no queda claro si se va a quedar
con una antena o con la otra (siempre tiende a quedarse con la de mas potencia)
justamente por los bordes de los hexagonos. Si nosotros estuviesemos hablando
en un cierto canal, de una cierta antena (celda) y nos pasaramos a otra celda
(es muy comun cuando uno esta manejando), se produciria lo que se llama un
handoff. Esto es posible gracias a varios sistemas que interactuan:
Primero, la base de la celda esta constantemente chequeando la potencia con que
llega la se�al del movi y esta continuamente pasandosela al MTSO pertinente.
Esta informacion la transmite por se�ales de micro-onda o whatever que
recibe el MTSO. Al MTSO, asi como le llega esta informaciom, le llega el
mismo tipo de informacion de las otras antenas, y tiene los datos suficientes
para determinar a que celda se paso, haciendo los arreglos para que el movi
empiece a trabajar en el nuevo canal de la nueva antena. Esta informacion
de alguna manera se la tiene que hacer llegar la antena ACTUAL al movi, por
medio del canal de VOZ ACTUAL (porque seria ridiculo mantener un canal asociado
de control por cada canal de voz que se esta usando). Si se pudiera interceptar
ese mensaje, se podria determinar el nuevo canal en el que sigue la
conversacion y evitar que se perdiera por un handoff. Interesante.

El mayor problema es determinar que canal pertenece a que antena. Para esto
es fundamental saber donde esta cada antena, al menos las de su zona de accion
o de la zona que quieras intervenir. Intervenir? hahaha suena muy FBI. Pero
todo depende de que es lo que se quiera hacer, obviamente. Generalmente
no es necesario saber todo esto.

% Una Comunicacion Tipica %

Encendemos el aparato, discamos el numero al que nos queremos comunicar,
no nos atienden, puteamos, cortamos. Y redial hasta que nos atienden.
Parece un procedimiento absolutamente normal, como si fuese lo mas normal
del mundo. Pero si se ponen a pensar en lo complejo del sistema que permite
ese accionar, dirian uh, mierda. Por ejemplo en el primer paso, en algo tan
bobo como encender el aparato y discar, ya se estan poniendo en funcionamiento
un monton de transmisores, receptores, decodificadores, se ponen en
funcionamiento un monton de cosas. Evidentemente, en el momento de querer
iniciar una comunicacion, el movil debe identificarse con el sistema.
Se puede decir entonces que cada movil, tiene una identificacion unica (hehehe)
Esta identificacion consiste en some data, pero en realidad solo dos datos son
verificados para habilitar la llamada:

Movile Identification Number (MIN): Numero telefonico de la unidad
Electronic Serial Number (ESN): Numero de serie electronico de la unidad

Con esta informacion se transmite tambien el SCM (Station Class Mark) que
indica las caracteristicas del movil, pero que para el caso no son relevantes.

Lo normal seria abonarse al servicio y que nuestro Provider nos tuviera
registrados en sus bases de datos. Nosotros llamariamos presentando nuestras
identidades (MIN/ESN) y nos facturarian. Pero hay casos donde se le facturan
sumas disparatadas a abonados que practicamente no utilizaron el movil...
Claro, seguramente algun "hacker" pudo obtenerle los datos del movil, y pudo
reprogramar su unidad para hacerse pasar por la unidad registrada, creando
asi un movil GEMELO (Clon)

% Que Garcha es el Roaming ? %

El Roaming basicamente consiste en la habilitacion para efectuar o recibir
llamadas FUERA del sistema del que uno es abonado. Una onda de compatibilidad
mundial donde uno podria irse a Japon con su propio movil y efectuar llamadas
desde su propio numero telefonico. Aunque asi de interesante como suena deja
de serlo al ver los precios que se manejan. Los proveedores se aprovechan de
esta situacion y te/le rompen el orto al que este Roameando. Porque siempre
el abonado es el que paga todo el ruteo fuera de su Sistema Hogar.
Por ejemplo, supongamos que Federico Gido se va para Tucuman con su telefono
celular y alguien lo quiere llamar. Este lo llama y pueden suceder dos cosas
dependiendo del cliente:

a) Que el titular tenga habilitado el servicio de Call Delivery:

       El sistema de Call Delivery es un sistema de rastreo de celular
mediante una red de computadoras llamada Red Nacional Celular. Una vez que se
lo localiza el cliente paga:

       a) la utilizacion de las antenas locales (facturada por el carrier de
          tucuman al carrier local del cliente que a su vez se lo fRactura al
          cliente)

       b) la comunicacion telefonica terrestre desde el Home System hasta
          donde el se encuentra.


b) O que sencillamente lo tenga desactivado:

       Si este fuese el caso todavia tiene metodos de ser localizado, pero
ahora el que hace la llamada necesita saber a donde fue a parar. Previo aviso
o como sea. Entonces el interesado en comunicarse debe bancarse la llamada
interurbana hasta el Numero de Acceso Local de la zona donde se encuentre el
cliente y este solo pagaria un uso normal del telefono.

El roaming se puede usar tambien para la generacion de llamadas. Estando
fuera del area de servicio local, poder usar el propio movil para hacer
llamadas. El problema (hehe) es que el carrier al no tener una lista de
abonados de TODOS los sistemas con acuerdo mutuo de roaming, primero permitiria
efectuar la llamada y despues la cobraria. Muchas veces cuando quieren
cobrarle al carrier home, le dicen que esa identificacion de abonado no es
valida y queda la cuenta pagando.

Lei que en USA estaban por implementar una base de datos Nacional donde
cada carrier pudiera chequear los datos del movil ANTES de habilitar la llamada
pero no se hasta que punto se podria implementar a nivel internacional.

% Palabras finales %

Ok, este tema de telefonia celular es muy interesante. Mas alla del cloning
o del phreaking. Este articulo fue mas bien de Background sobre el sistema
telefonico celular. Si algo estuviese erroneo o faltaria precisar no duden
en hacermelo saber que me interesaria saberlo. En el proximo numero vamos a
intentar profundizar un poco mas.

% Saludos, fuentes y agradecimientos %

- a mi vieja que me esta mirando
- a mi mismo por ser como soy
- a pixel y manzanita por siempre andar consiguiendo cosas interesantes
- a todos los que donaron "sus" telefonos celulares para experimentos :)
- a todos los que me molestan todos los dias :)
- un caluroso saludo a todos de los que aprendi bocha from:
  dr.who, damien thorn, tattooman, bootleg, brian oblivion y muchos mas

drako, digital anarchy
MINOTAURO MAGAZINE #10

                       Algunas tarjetas compatibles
                        con el sistema argentino
                        de tarjetas telefonicas

Estos son mapas de algunas tarjetas que me hicieron llegar, compatibles con
el sistema que se utiliza en telefonia en la argentina. Son archivos de 32
bytes con la informacion del MAPA de las tarjetas. En base a esta informacion
podrian re-programar el archiconocido 705K1 y emularlas tranquilamente.

* Telefonica de Argentina y Telecom Argentina *

Ok, a modo de meter todo junto les damos algunas lecturas de tarjetas de
telefonica de argentina y telecom argentina. Son tarjetas de uso corriente
que se pueden conseguir en cualquier kiosco. La informacion de que significa
cada byte (o casi) del header ya lo publicamos antes. Asi que si no tuvieron
tiempo o ganas de armar el lector, aca les damos algunas lecturas de tarjetas
comunes para que analicen. Todos los .MEM los levantan con el programa lector
tambien ya publicado.

===== Start: Cut here =========================================================
; mapas en mapas.arj
===== End: Cut here ===========================================================

* Telefonica de Espa�a *

En este numero publicamos 2 tarjetas de Telefonica de Espa�a: una de
1000 pts y la otra de (2000+100) pts (100 de yapa). En el byte 09h de la
segunda tarjeta donde tenemos la informacion de cantidad de creditos, tenemos
el byte 06h (interpretado como 60 creditos), pero en la de 1000 pts (poco menos
de la mitad que la otra) marca A8h y no tengo ni idea de como interpretarlo.
La tarjeta igualmente ya paso a mejor vida, asi que tampoco puedo saber si
estaba cagada o qu�. Pero es un dato para que tengan en cuenta nada mas.
Quizas all� hubiera andado lo mas bien, quien sabe. Volviendo al tema, la
forma de quemar los creditos es igual que la de Telefonica de Argentina, o
deberiamos decir que T. de Arg. usa el mismo sistema que T. de Esp.?
What the hell

Logicamente el codigo de pais es distinto, pero todo lo demas se mantiene
igual. La proteccion por fusible de los primeros 96 bits tambien se mantiene.

===== Start: Cut here =========================================================
; mapas en mapas.arj
===== End: Cut here ===========================================================

* France Telecom *

Con esta (solo me llego una) tuve problemas para leerla. Pudieron haber pasado
dos cosas:
a) Que la tarjeta halla estado hecha mierda, lo mas probable
b) Que sencillamente alla se use otro sistema, lo veo poco probable, teniendo
en cuenta que telecom de argentina utiliza el mismo sistema. bah, no estoy
seguro.

La forma del conector es de cintura de avispa, pero con la misma distribucion
de contactos que cualquier tarjeta comun pero de color plateado onda
transparente (son las que se usan aca hace unos meses)

===== Start: Cut here =========================================================
; no hay mapas disponibles
===== End: Cut here ===========================================================

* Tarjeta Acceso Cerro Catedral, Bariloche *

Cuentan que esta tarjeta se utiliza para el acceso a las aerosillas del Cerro
Catedral en Bariloche.

Tiene el mismo conector que la de France Telecom, por eso al verla hubo un
poco de desilusion, pero cuando la qusimos leer anduvo lo mas bien.
No tenemos idea de que significa la informacion de header que tiene mas que
nada por el hecho de tener una sola y no poder compararla con ninguna otra.
Su estado es de "uso normal". Se uso por lo menos una vez, y eso es todo lo que
sabemos sobre estas tarjetas. Si alguien quiere mandarnos algun mapa quizas
nos tomemos el laburo de hacer los s19 para el circuito de la mino 8.

===== Start: Cut here =========================================================
;mapa en mapas.arj
===== End: Cut here ===========================================================

Saludos, drako