Przejdz do strony glownej  

Dekodowanie EPROM-u - 1998-08-19

Pobierz wersje spakowana


 >> Phreak It
    > strona glowna
    > newsy
    > o serwisie
 >> Automaty
    > mapy i spisy
    > niebieski [TSP91]
    > srebrny [TPE97]
    > jajko [CTP]
    > żółty [eXANTO]
    > Netia
    > Dialog
    > karty chipowe
    > klucze
 >> W eterze
    > GSM
    > tranking
 >> Stuff
    > teksty (FAQ)
    > narzędzia
    > elektronika
    > nagrywarki
    > strony Variego
 >> Inne
    > multimedia
    > phreak-muzeum
    > hacked
    > linki



Dekodowanie EPROM-u z URMET-a:

 Kazdy bit bajtu zakodowanego odpowiada bitowi rozkodowanemu wg tabeli:

   |---|---|---|---|---|---|---|---|
   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | numer bitu w bajcie zakodowanym
   |---|---|---|---|---|---|---|---|
   | 5 | 3 | 1 | 0 | 2 | 4 | 7 | 6 | numer bitu w bajcie rozkodowanym
   |---|---|---|---|---|---|---|---|

 Analogicznie:

   |---|---|---|---|---|---|---|---|
   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | numer bitu w bajcie rozkodowanym
   |---|---|---|---|---|---|---|---|
   | 3 | 2 | 4 | 1 | 5 | 0 | 7 | 6 | numer bitu w bajcie zakodowanym
   |---|---|---|---|---|---|---|---|

Zapis petli rozkodowujacej (a=bajt zakodowany, b=bajt rozkodowany):

------------------------------------------------------------------------------

C:

 unsigned char i,a,b;
 unsigned char d[8]={3,2,4,1,5,0,7,6};

 b=0;
 for(i=0;i<8;i++) b+=((a & (int)pow(2,d[i])) >> d[i]) * (int)pow(2,i);

------------------------------------------------------------------------------

PASCAL:

 var i,a,b:Byte;
 const d:array [0..7] of Byte = (3,2,4,1,5,0,7,6);

 b:=0;
 for i:=0 to 7 do b:=b + ((a and (1 shl d[i])) shr d[i]) * (1 shl i);

------------------------------------------------------------------------------

ASSEMBLER:

a         db ?
b         db ?
d         db ?,3,2,4,1,5,0,7,6

   mov ax,seg d            ; ds:[bx] = adres d
   mov ds,ax
   lea bx,d

   mov cl,a
   xor ah,ah
   mov dl,8
Permut:
   mov al,dl
   xlatb
   bt cx,ax
   rcl dh,1
   dec dl
   jnz Permut
   mov b,dh

------------------------------------------------------------------------------

Aby zakodowac dane, wystarczy zamienic tablice permutacji na przeciwne.


                                                                         Quax