| Przejdz do strony glownej |

>> 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 |