Ga naar inhoud


[Strong 8100] final Revolution 8100


interpol

Aanbevolen berichten

sorry niet helemaal <img src="/forums/images/graemlins/shocked.gif" alt="" />

 

als jij dit weet te verwerken in de firmware dan ben je er. <img src="/forums/images/graemlins/grin.gif" alt="" />

Het algoritme van de seca2card!

____________________________________________________________

 

unit ALG_SECA;

{

Procedure Encode; Entrées var Wordkey,Worddata : String; sortie dc :Integer

Procedure Decode; Entrées var Wordkey,Worddata : String; sortie dc :Integer

Procedure Signature ; Entrées var Wordkey,Worddata : String; sortie ll:Integer

Procedure Supespace(var word1:string); plus espace + Uppercase

}

 

 

{ ********* déclarations des tableaux et variables *************}

interface

uses

SysUtils ,Dialogs;

Var

Wordkey,Worddata ,Worddata1 : String;

//

 

Dc: array [1..8] of byte; { Data signature }

Di: array [1..8] of byte; { data calcule }

ws: array [1..16] of byte; {sortie xor}

Stmp: array [1..16] of byte; {stockage tmp}

Bufxor : array [1..1000] of string; { stockage pour signature}

Buf: array [1..1000] of byte; { stockage}

{ tableau des 64 KEY creés par le decodage }

Ku : array [0..136] of byte;

 

{ KEY et DATA (ou AUTREE) en cours d'utilisation }

K : array [1..17] of byte; { key d'encodage 16 caracteres }

D : array [1..8] of byte; { Data a traiter 8 caracteres }

ll : Integer;

//i, j, l ,

//i,j,

LL0,lc: integer; { index de boucle }

//c,

dt: byte; { compteur intermediaire }

Wdt,word1 : String ;

{ Construction des deux tables de cryptages }

Function Swp(id:byte):byte;

procedure Prepare(var Wordkey,worddata : string);

procedure Encode(var Wordkey,Worddata : String);

procedure Decode(var Wordkey,Worddata : String);

// procedure Encode;

// procedure Decode;

 

procedure Madexor(var Worddata1,Worddata : String);

procedure decale(var Worddata : String);

procedure Signature(var Wordkey,Worddata : String);

procedure Supespace(var word1:string);

CONST

T1 : array [0..255] of byte =

( $2A,$E1,$0B,$13,$3E,$6E,$32,$48,

$D3,$31,$08,$8C,$8F,$95,$BD,$D0,

$E4,$6D,$50,$81,$20,$30,$BB,$75,

$F5,$D4,$7C,$87,$2C,$4E,$E8,$F4,

$BE,$24,$9E,$4D,$80,$37,$D2,$5F,

$DB,$04,$7A,$3F,$14,$72,$67,$2D,

$CD,$15,$A6,$4C,$2E,$3B,$0C,$41,

$62,$FA,$EE,$83,$1E,$A2,$01,$0E,

$7F,$59,$C9,$B9,$C4,$9D,$9B,$1B,

$9C,$CA,$AF,$3C,$73,$1A,$65,$B1,

$76,$84,$39,$98,$E9,$53,$94,$BA,

$1D,$29,$CF,$B4,$0D,$05,$7D,$D1,

$D7,$0A,$A0,$5C,$91,$71,$92,$88,

$AB,$93,$11,$8A,$D6,$5A,$77,$B5,

$C3,$19,$C1,$C7,$8E,$F9,$EC,$35,

$4B,$CC,$D9,$4A,$18,$23,$9F,$52,

$DD,$E3,$AD,$7B,$47,$97,$60,$10,

$43,$EF,$07,$A5,$49,$C6,$B3,$55,

$28,$51,$5D,$64,$66,$FC,$44,$42,

$BC,$26,$09,$74,$6F,$F7,$6B,$4F,

$2F,$F0,$EA,$B8,$AE,$F3,$63,$6A,

$56,$B2,$02,$D8,$34,$A4,$00,$E6,

$58,$EB,$A3,$82,$85,$45,$E0,$89,

$7E,$FD,$F2,$3A,$36,$57,$FF,$06,

$69,$54,$79,$9A,$B6,$6C,$DC,$8B,

$A7,$1F,$90,$03,$17,$1C,$ED,$D5,

$AA,$5E,$FE,$DA,$78,$B0,$BF,$12,

$A8,$22,$21,$3D,$C2,$C0,$B7,$A9,

$E7,$33,$FB,$F1,$70,$E5,$17,$96,

$F8,$8D,$46,$A1,$86,$E2,$40,$38,

$F6,$68,$25,$16,$AC,$61,$27,$CB,

$5B,$C8,$2B,$0F,$99,$DE,$CE,$C5

);

 

T2 : array [0..255] of byte =

( $BF,$11,$6D,$FA,$26,$7F,$F3,$C8,

$9E,$DD,$3F,$16,$97,$BD,$08,$80,

$51,$42,$93,$49,$5B,$64,$9B,$25,

$F5,$0F,$24,$34,$44,$B8,$EE,$2E,

$DA,$8F,$31,$CC,$C0,$5E,$8A,$61,

$A1,$63,$C7,$B2,$58,$09,$4D,$46,

$81,$82,$68,$4B,$F6,$BC,$9D,$03,

$AC,$91,$E8,$3D,$94,$37,$A0,$BB,

$CE,$EB,$98,$D8,$38,$56,$E9,$6B,

$28,$FD,$84,$C6,$CD,$5F,$6E,$B6,

$32,$F7,$0E,$F1,$F8,$54,$C1,$53,

$F0,$A7,$95,$7B,$19,$21,$23,$7D,

$E1,$A9,$75,$3E,$D6,$ED,$8E,$6F,

$DB,$B7,$07,$41,$05,$77,$B4,$2D,

$45,$DF,$29,$22,$43,$89,$83,$FC,

$D5,$A4,$88,$D1,$F4,$55,$4F,$78,

$62,$1E,$1D,$B9,$E0,$2F,$01,$13,

$15,$E6,$17,$6A,$8D,$0C,$96,$7E,

$86,$27,$A6,$0D,$B5,$73,$71,$AA,

$36,$D0,$06,$66,$DC,$B1,$2A,$5A,

$72,$BE,$3A,$C5,$40,$65,$1B,$02,

$10,$9F,$3B,$F9,$2B,$18,$5C,$D7,

$12,$47,$EF,$1A,$87,$D2,$C2,$8B,

$99,$9C,$D3,$57,$E4,$76,$67,$CA,

$3C,$FB,$90,$20,$14,$48,$C9,$60,

$B0,$70,$4E,$A2,$AD,$35,$EA,$C4,

$74,$CB,$39,$DE,$E7,$D4,$A3,$A5,

$04,$92,$8C,$D9,$7C,$1C,$7A,$A8,

$52,$79,$F2,$33,$BA,$1F,$30,$9A,

$00,$50,$4C,$FF,$E5,$CF,$59,$C3,

$E3,$0A,$85,$B3,$AE,$EC,$0B,$FE,

$E2,$AB,$4A,$AF,$69,$6C,$2C,$5D

);

 

implementation

uses ULiveInet;

 

{*** creation de la chaine de 16 caracteres = KEY }

procedure Prepare(var Wordkey,Worddata : string);

var

ie,je : integer ;

Sc :string ;

tp,rst : byte ;

c: byte;

 

begin

word1 := Wordkey ;

supespace(word1) ;

wordkey := word1 ;

lc := length(Wordkey) ;

ie := 1 ;je:=1 ;

//************* Key *******************

repeat

Sc := copy(Wordkey,je,2);

Sc := '$'+Sc ;

tp := strtoint(sc);

k[ie] := (tp) ;

//k := strtoint(Sc);

ie := ie+1 ;

je := je+2 ;

until ie = 9 ;

 

K[9] := K[1] ; K[10] := K[2] ; K[11] := K[3] ;

K[12] := K[4] ; K[13] := K[5] ;K[14] := K[6] ;

K[15] := K[7] ; K[16] := K[8] ;

//************* Data *******************

word1 := Worddata ;

supespace(word1) ;

worddata := word1 ;

 

lc := length(Worddata) ;

 

rst := 16-lc; // calcul le nb de 0 a rajouter sur dernier mot

 

for ie := 1 to rst do worddata := worddata+'0' ;

 

ie := 1 ;je:=1 ;

repeat

Sc := copy(Worddata,je,2);

Sc := '$'+Sc ;

tp := strtoint(sc);

d[ie] := (tp) ;

// d := strtoint(Sc) ;

ie := ie+1 ;

je := je+2 ;

until ie = 9 ;

// Prepare Key et data

For ie := 0 to 63 do Begin

K[17] := T1[K[16] XOR K[2] XOR (ie SHR 2)] XOR K[1];

Ku[ie] := K[17];

For je := 1 to 16 do K[Je] := K[je+1];

end;

//end;

for c := 1 to 8 do Di[c] := D[c];

 

End;

//** produit un swap des 4 poids forts avec les 4 poids faibles *

 

Function Swp( id : byte) : byte;

Begin

Swp := ((D[id] AND $F) SHL 4) OR (D[id] SHR 4);

End;

 

//****************** Procedure Pour L'Encodage ****************

procedure Encode(var Wordkey,Worddata : String);

//procedure Encode;

var ie, je,l: integer;

c: byte;

Begin

 

prepare(wordkey,worddata);

{ENCODAGE STANDARD }

for l := 0 to 15 do

Begin //D data a traiter //Di data calcule

for c := 1 to 8 do D[c] := Di[c];

{ copie second data cryptes }

for c := 5 to 8 do D[c] := T1[D[c] XOR Ku[(l*4)+C-5]];

D[5] := D[5] XOR D[8];

for ie := 8 downto 6 do begin D[ie-1] := T2[(Swp(ie) + D[ie-1]) AND $FF];

D[ie] := D[ie] XOR D[ie-1]; End;

for ie := 8 downto 6 do

begin

je := ie + 1;

if je = 9 then je := 5;

D[ie] := T1[(Swp(je) + D[ie]) AND $FF];

D[je] := D[je] XOR D[ie];

End;

D[6] := D[6] XOR D[5];

For ie := 1 to 4 do D[ie] := Di[ie+4];

Di[5] := Di[1] XOR T2[D[6]];

Di[6] := Di[2] XOR T2[D[8]];

Di[7] := Di[3] XOR T2[D[5]];

Di[8] := Di[4] XOR T2[D[7]];

for ie := 1 to 4 do Di[ie] := D[ie];

End;

{rotation data finale }

For ie := 1 to 4 do D[ie] := Di[ie];

For ie := 1 to 4 do Di[ie] := Di[ie+4];

For ie := 1 to 4 do Di[ie+4] := D[ie];

for c := 1 to 8 do D[c] := Di[c];

{ copie data decrypte }

WordData:='';

for c := 1 to 8 do begin

Dc[c] := Di[c];

if Di[c]>$F then WordData:=WordData+format('%2x',[Di[c]])

else WordData:=WordData+format('0%1x',[Di[c]]);

 

end;

End;

//***************** Procedure pour Decodage *********************

procedure Decode(var Wordkey,Worddata : String);

// procedure Decode;

var ie, je, l: integer;

c: byte;

begin

prepare(wordkey,worddata);

for l := 15 downto 0 do

Begin //D data a traiter //Di data calcule

for c := 1 to 8 do D[c] := Di[c];// copie second data cryptes

for c := 5 to 8 do D[c] := T1[D[c] XOR Ku[(l*4)+C-5]];

D[5] := D[5] XOR D[8];

for ie := 8 downto 6 do begin D[ie-1] := T2[(Swp(ie) + D[ie-1]) AND $FF];

D[ie] := D[ie] XOR D[ie-1];

End;

for ie := 8 downto 6 do

begin

je := ie + 1;

if je = 9 then je := 5;

D[ie] := T1[(Swp(je) + D[ie]) AND $FF];

D[je] := D[je] XOR D[ie]; End; D[6] := D[6] XOR D[5];

For ie := 1 to 4 do D[ie] := Di[ie+4];

Di[5] := Di[1] XOR T2[D[6]];

Di[6] := Di[2] XOR T2[D[8]];

Di[7] := Di[3] XOR T2[D[5]];

Di[8] := Di[4] XOR T2[D[7]];

for ie := 1 to 4 do Di[ie] := D[ie];

End;

{rotation data finale }

For ie := 1 to 4 do D[ie] := Di[ie];

For ie := 1 to 4 do Di[ie] := Di[ie+4];

For ie := 1 to 4 do Di[ie+4] := D[ie];

for c := 1 to 8 do D[c] := Di[c];

{ copie data decrypte }

WordData:='';

for c := 1 to 8 do begin

Dc[c] := Di[c];

if Di[c]>$F then WordData:=WordData+format('%2x',[Di[c]])

else WordData:=WordData+format('0%1x',[Di[c]]);

 

end;

 

 

end;

 

// - - - - - - - Separe par Tranche de 16 data

//et ajoute des 0 pour faire un multiple de 16 - - - - - -

procedure decale(var Worddata : String);

var

Ltmp,ie,je,ictp,rest,lli: Integer;

Stmp: String ;

 

begin

Ltmp := length(Worddata) ;

LL0 := ltmp ;

dt := Ltmp div 16 ; // div par 16

ictp:= Ltmp mod 16 ;

if ictp > 0 then

begin

dt := dt+1 ; // +1 a division

rest := 16-ictp ; // calcul le nb de 0 a rajouter sur dernier mot

 

case rest of

1, 3, 5, 7, 9, 11, 13, 15:

begin

MessageDlg('La longueur Data est impaire'#13'je rajoute un 0 en fin'#13'Sinon ressaisir', mtInformation, [mbOK], 0);

LiveInetClass.DEBUGTEST1.text:='erreur:'+worddata+'0' ;

LL0 :=LL0+1; // ajoute un 0 pour obtenir nb pair

end ;

end;

LL := (LL0 div 2)+8;

for ie := 1 to rest do worddata := worddata+'0' ;

end;

lli := length(Worddata) ;

ie := 1 ;je:=1 ;

//************memo decale******************

repeat

Stmp := copy(Worddata,je,1);

//Stmp := '$'+Stmp ; //

//tp := strtoint(stmp); //

Bufxor[ie] := (Stmp) ;

ie := ie+1 ;

je := je+1 ;

until ie = Lli+1;

end;

 

// - - - - - Xor - - - - - - - - - - - -

procedure Madexor(var Worddata1,Worddata : String);

var

L1,ic, i2: Integer;

Ss : String ;

begin

L1 :=length(Worddata) ;

Begin

for ic := 1 to l1 do

begin

i2 := (strtoint('$'+(Worddata[ic]))) Xor (strtoint('$'+(Worddata1 [ic])));

Ss := Ss+IntToHex(i2,1) ;

Ws[ic]:=i2 ;

end;

end;

end;

 

//************ Procedure Signature *************

procedure Signature;

var

ix,ie,je: Integer;

Ss,St,Ww : String ;

 

begin

word1 := worddata ;

supespace(word1) ;

worddata := word1 ;

if Worddata = '' then

begin

ll := 0 ;

Encode(WordKey,WordData);

end ;

//i := 0;

je := -1 ;

decale(Worddata);

//LL := (LL0 div 2)+8;

// Idt := dt ; // ????????????????

Worddata1 := '0000000000000000' ;

repeat

je := je+1 ;

St := '' ;

Ss := '' ;

Ww := '';

for ie := 1 to 16 do Ss:= Ss+(Bufxor[ie+(je*16)]) ;

Worddata := Ss ;

Madexor(Worddata1,Worddata) ;

for ie := 1 to 16 do Ww := Ww+IntTohex(Ws[ie],1) ;

worddata := Ww ;

Encode(WordKey,WordData) ; //*

ix := 1;

repeat

St := St+IntTohex(dc[ix],2) ;

Worddata1 := St ;

ix := ix+1 ;

until ix = 9;

until je=dt-1 ;

end;

//*************** Sup espace **********************

procedure Supespace(var word1:string);

var

lwc: Integer;

ts1 : String ;

begin

Word1 := uppercase(Word1) ;

ts1 := Word1 ;

lwc := length(Word1) ;

While lwc > 0 do

begin

If copy(Word1,lwc,1) = ' ' then delete(ts1,lwc,1) ;

lwc := lwc-1 ;

end ;

Word1 := ts1 ;

end ;

End.

Openbox sg9 HD PVR

Link naar reactie
Delen op andere sites


  • Reacties 119
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

Geplaatste afbeeldingen

Dit is de algoritme van seca2 in de werkekijke vorm.

 

wanneer je dit deel uit een fw haald in bin is het makkelijker te verwerken tot een patsh.

 

dus zoekken naar een juiste fw lijkt mij een betere keus.

Eerste Strong 8000 en 8100 van NL & BE met

: Motor sm3uni 28-12-03,

: Spdif (AC3) 30-10-04,

: 3x8 mb Flash 07-02-05

Link naar reactie
Delen op andere sites

Gaat niet lukken in de revolutionfirmware.

 

Je kan niet een stukje bin uit een andere fw plakken en in de revolution stoppen. Het is geen seca gerichte firmware, of blob, multicam of sattracker.

Het based NDS firmware.

Moet juist via plugin.

 

Ik eet mijn hoed op als het je lukt...., wacht effe doe ook nog mijn schoenen daarbij.

Aan het TIS-team heb ik gevraagd of ze willen kijken of ze het seca algo kunnen integrerenin de fw.

 

Zelfs zij hebben er een hard hoofd in omdat ze niet beschikken over de open hdl.

 

groetjes van John. <img src="/forums/images/graemlins/wink.gif" alt="" />

Openbox sg9 HD PVR

Link naar reactie
Delen op andere sites

Als we van deze fw gebruik willen maken moet er toch een oplossing komen.

 

Zonder seca2 nl heeft deze fw geen waarde.

 

Als het hun niet lukt zal het ons waarschijnlijk ook niet lukken.

 

Dus blijft er maar een oplossing over!

 

Proberen delen van de nieuwe fw in de sattracker te stoppen en zo een betere fw te creeren.

 

Dat betekend dus stap voor stap vergelijken.

Eerste Strong 8000 en 8100 van NL & BE met

: Motor sm3uni 28-12-03,

: Spdif (AC3) 30-10-04,

: 3x8 mb Flash 07-02-05

Link naar reactie
Delen op andere sites

Ja en als je dat niet onder controle krijgt kan je niets met de fw.

 

Ik denk dat het niet verkeerd zou zijn meer mensen in de fw te betrekken.

 

Interpol en ik zelf hebben veel data van de fw en bijde hebben we wijnig tijd.

 

Als hij hier ook mee instemd kunnen we samen een topic openen en de fw uitpluizen tot op zekere hoogte.

 

Nu heb ik tig bestanden over 4 pc met info over de fw.

Het zou mooi zijn als we een topic hebben met daarin alle bekende data.

 

Ik ben een van de weinige die weet met welke discrembler de delen van de fw beveiligt zijn.

 

we zouden kunnen beginnen met een fw en een pogje voor het uitlezen zodat iedereen mee kan doen, zonder in dit topic te posten anders word het onleesbaar.

 

Je kan bijvoorbeeld beginnen met het uitzoekken in welk blok wat zit van de fw.

 

wand wie van jullie weet dat de void Flash_function in blok 800928CC zit?

Laat staan wat het betekend of wat het doet.

Eerste Strong 8000 en 8100 van NL & BE met

: Motor sm3uni 28-12-03,

: Spdif (AC3) 30-10-04,

: 3x8 mb Flash 07-02-05

Link naar reactie
Delen op andere sites

Als ik het goed begrijp stuurt de revo firmware de emm's of whatever de ontvanger van de kaart wil weten naar de seriele poort

 

kun je niet een phoenix kaartlezer programmer met seriele kabel of nulmodem aan de seriele poort van de strong hangen en daar de kaart in?

Bolt HD, strong srt8000 sattracker 4, srt4125 concord 1.05, hotbird, astra 1,2,3

Link naar reactie
Delen op andere sites

denk dat we misschien wel bij het bekende moeten beginnen, de mhw

Hebben "we" een lijst met alle variablen die in sattracker (en later revo) worden gebruikt en wat ze betekenen / waar ze voor staan?

Bolt HD, strong srt8000 sattracker 4, srt4125 concord 1.05, hotbird, astra 1,2,3

Link naar reactie
Delen op andere sites

je moet gewoon bij de basis beginnen dus de da3ned met lijst, dus patshen scannen en alle fw uitlezen inclusief boot.

 

Blokken uitlezen en indelen als je klaar ben doe je dit bij de sattracker en de nieuwe fw.

Eerste Strong 8000 en 8100 van NL & BE met

: Motor sm3uni 28-12-03,

: Spdif (AC3) 30-10-04,

: 3x8 mb Flash 07-02-05

Link naar reactie
Delen op andere sites

Ondertussen is er ook een patch om de snelheid van de seriële poort te verhogen. Is alleen voor de 8100! (zie bijlage)

Ik heb de snelheid kunnen verhogen tot 57600.

 

Ik wil me ook best wel verdiepen in de firmware maar ik begin dan wel echt vanaf nul..

Link naar reactie
Delen op andere sites

@Vreeswijk,

eerst overleg via msn, vooral over de te plaatsen punten. Een databanktopic is altijd positief, maar moet wel structuur inzitten.

Dit zal ook in overleg moeten met Johan45.

 

Het kan zelfs een aantrekkingskracht hebben op andere geintreseerden, maar het gevaar is dat het een topic wordt met losse opmerkingen.

 

@Smurf,

http://www.sat4all.com/forums/showflat.p...;page=0#1442469

 

Daar had ik ook al gedacht, wat dat moet kunnen.

 

@FJP,

Vanaf 0 beginnen is geen probleem.

Misschien nog wel beter.

Welkom zou ik zeggen.

 

 

groetjes van John <img src="/forums/images/graemlins/wink.gif" alt="" />

Openbox sg9 HD PVR

Link naar reactie
Delen op andere sites

Citaat:

@FJP,
Vanaf 0 beginnen is geen probleem.
Misschien nog wel beter.
Welkom zou ik zeggen.


Ik heb dan wel wat hulp nodig bij het starten.. (evt handleidingen en welke software te gebruiken)
Link naar reactie
Delen op andere sites

stuur mij dat dan ook ff aub, dat kan ook handig zijn bij die andere dingen die ik doe, omdat ik alleen nog maar wat van de MHW weet.

 

MVG. Gerard

If history repeats itself, and the unexpected always happens, how incapable must Man be of learning from experience.

 

-George Bernard Shaw

Link naar reactie
Delen op andere sites

is het al iemand gelukt deze firmware op engels in te stellen ???

kanalen scannen gaat hier idd ook niet goed de receiver blijft hangen op ongeveer 260 kanalen

via de A knop kan ik dan wel terug is dus niet een volledige hangup

dream dm7000 dm500, kathrein ufs910 en strong 8000 en 8100

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...