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 |