Follow along with the video below to see how to install our site as a web app on your home screen.
Note: this_feature_currently_requires_accessing_site_using_safari
il faut tout simplement dumper le module pmcia canal ready ou déco labelisé et faire dump apres leur mise a jour ^ ^ ! le cube concerne uniquement off 018
Salut,
Le cube c'est pour la carte 018 et non la 039.
Rien à voir.
bas si que sa a voir lol la nano est utilisé dans le cube de Csat avec la carte 018, c'est le même procédé qu'ils veulent faire dans les déco canal ready, il possède déjà un dump de mon déco mais il lui faut encore 2 autre dump car malheuresement j'ai pas envoyer ma carte car mon abo avez pris fin le 31 juillet et en attendant de rendre le déco je lui avez envoyer
#include "globals.h" | |
2 | #ifdef READER_VIACCESS |
---|---|
3 | #include "reader-common.h" |
4 | |
5 | struct via_date { |
6 | uint16_t day_s : 5; |
7 | uint16_t month_s : 4; |
8 | uint16_t year_s : 7; |
9 | |
10 | uint16_t day_e : 5; |
11 | uint16_t month_e : 4; |
12 | uint16_t year_e : 7; |
13 | }; |
14 | |
15 | static void parse_via_date(const uchar *buf, struct via_date *vd, int32_t fend) |
16 | { |
17 | uint16_t date; |
18 | |
19 | date = (buf[0]<<8) | buf[1]; |
20 | vd->day_s = date & 0x1f; |
21 | vd->month_s = (date>>5) & 0x0f; |
22 | vd->year_s = (date>>9) & 0x7f; |
23 | |
24 | if( fend ) |
25 | { |
26 | date = (buf[2]<<8) | buf[3]; |
27 | vd->day_e = date & 0x1f; |
28 | vd->month_e = (date>>5) & 0x0f; |
29 | vd->year_e = (date>>9) & 0x7f; |
30 | } |
31 | } |
32 | |
33 | //static void get_via_data(const uchar *b, int32_t l, time_t *start_t, time_t *end_t, uchar *cls) |
34 | //{ |
35 | // int32_t i, j; |
36 | // struct via_date vd; |
37 | // struct tm tm; |
38 | // memset(&vd, 0, sizeof(struct via_date)); |
39 | // |
40 | // // b -> via date (4 bytes) |
41 | // b+=4; |
42 | // l-=4; |
43 | // |
44 | // j=l-1; |
45 | // for (; j>=0; j--) |
46 | // for (i=0; i<8; i++) |
47 | // if (b[j] & (1 << (i&7))) |
48 | // { |
49 | // parse_via_date(b-4, &vd, 1); |
50 | // *cls=(l-(j+1))*8+i; |
51 | // } |
52 | // |
53 | // memset(&tm, 0, sizeof(struct tm)); |
54 | // tm.tm_year = vd.year_s + 80; //via year starts in 1980, tm_year starts in 1900 |
55 | // tm.tm_mon = vd.month_s - 1; // january is 0 in tm_mon |
56 | // tm.tm_mday = vd.day_s; |
57 | // *start_t = mktime(&tm); |
58 | // |
59 | // tm.tm_year = vd.year_e + 80; |
60 | // tm.tm_mon = vd.month_e - 1; |
61 | // tm.tm_mday = vd.day_e; |
62 | // *end_t = mktime(&tm); |
63 | // |
64 | //} |
65 | |
66 | static void show_class(struct s_reader *reader, const char *p, uint32_t provid, const uchar *b, int32_t l) |
67 | { |
68 | int32_t i, j; |
69 | |
70 | // b -> via date (4 bytes) |
71 | b+=4; |
72 | l-=4; |
73 | |
74 | j=l-1; |
75 | for (; j>=0; j--) |
76 | for (i=0; i<8; i++) |
77 | if (b[j] & (1 << (i&7))) |
78 | { |
79 | uchar cls; |
80 | struct via_date vd; |
81 | parse_via_date(b-4, &vd, 1); |
82 | cls=(l-(j+1))*8+i; |
83 | if (p) |
84 | rdr_log(reader, "%sclass: %02X, expiry date: %04d/%02d/%02d - %04d/%02d/%02d", p, cls, |
85 | vd.year_s+1980, vd.month_s, vd.day_s, |
86 | vd.year_e+1980, vd.month_e, vd.day_e); |
87 | else { |
88 | rdr_log(reader, "class: %02X, expiry date: %04d/%02d/%02d - %04d/%02d/%02d", cls, |
89 | vd.year_s+1980, vd.month_s, vd.day_s, |
90 | vd.year_e+1980, vd.month_e, vd.day_e); |
91 | |
92 | time_t start_t, end_t; |
93 | struct tm tm; |
94 | //convert time: |
95 | memset(&tm, 0, sizeof(tm)); |
96 | tm.tm_year = vd.year_s+80; //via year starts in 1980, tm_year starts in 1900 |
97 | tm.tm_mon = vd.month_s-1; // january is 0 in tm_mon |
98 | tm.tm_mday = vd.day_s; |
99 | start_t = cs_timegm(&tm); |
100 | |
101 | tm.tm_year = vd.year_e+80; //via year starts in 1980, tm_year starts in 1900 |
102 | tm.tm_mon = vd.month_e-1; // january is 0 in tm_mon |
103 | tm.tm_mday = vd.day_e; |
104 | end_t = cs_timegm(&tm); |
105 | |
106 | cs_add_entitlement(reader, reader->caid, provid, cls, cls, start_t, end_t, 5); |
107 | } |
108 | } |
109 | } |
110 | |
111 | static void show_subs(struct s_reader * reader, const uchar *emm) |
112 | { |
113 | // emm -> A9, A6, B6 |
114 | |
115 | switch( emm[0] ) |
116 | { |
117 | case 0xA9: |
118 | show_class(reader, "nano A9: ", 0, emm+2, emm[1]); |
119 | break; |
120 | /* |
121 | { |
122 | int32_t i, j, byts; |
123 | const uchar *oemm; |
124 | |
125 | oemm = emm; |
126 | byts = emm[1]-4; |
127 | emm+=6; |
128 | |
129 | j=byts-1; |
130 | for( ; j>=0; j-- ) |
131 | for( i=0; i<8; i++ ) |
132 | if( emm[j] & (1 << (i&7)) ) |
133 | { |
134 | uchar cls; |
135 | struct via_date vd; |
136 | parse_via_date(emm-4, &vd, 1); |
137 | cls=(byts-(j+1))*8+i; |
138 | rdr_log(reader, "%sclass %02X: expiry date: %02d/%02d/%04d - %02d/%02d/%04d", |
139 | fnano?"nano A9: ":"", cls, |
140 | vd.day_s, vd.month_s, vd.year_s+1980, |
141 | vd.day_e, vd.month_e, vd.year_e+1980); |
142 | } |
143 | break; |
144 | } |
145 | */ |
146 | case 0xA6: |
147 | { |
148 | char szGeo[256]; |
149 | |
150 | memset(szGeo, 0, 256); |
151 | strncpy(szGeo, (char *)emm+2, emm[1]); |
152 | rdr_log(reader, "nano A6: geo %s", szGeo); |
153 | break; |
154 | } |
155 | case 0xB6: |
156 | { |
157 | uchar m; // modexp |
158 | struct via_date vd; |
159 | |
160 | m=emm[emm[1]+1]; |
161 | parse_via_date(emm+2, &vd, 0); |
162 | rdr_log(reader, "nano B6: modexp %d%d%d%d%d%d: %02d/%02d/%04d", (m&0x20)?1:0, |
163 | (m&0x10)?1:0,(m&0x08)?1:0,(m&0x04)?1:0,(m&0x02)?1:0,(m&0x01)?1:0, |
164 | vd.day_s, vd.month_s, vd.year_s+1980); |
165 | break; |
166 | } |
167 | } |
168 | } |
169 | |
170 | static int32_t chk_prov(struct s_reader * reader, uchar *id, uchar keynr) |
171 | { |
172 | int32_t i, j, rc; |
173 | for (rc=i=0; (!rc) && (i<reader->nprov); i++) |
174 | if(!memcmp(&reader->prid[1], id, 3)) |
#include "globals.h" | |
2 | #ifdef READER_VIACCESS |
---|---|
3 | #include "reader-common.h" |
4 | |
5 | struct via_date { |
6 | uint16_t day_s : 5; |
7 | uint16_t month_s : 4; |
8 | uint16_t year_s : 7; |
9 | |
10 | uint16_t day_e : 5; |
11 | uint16_t month_e : 4; |
12 | uint16_t year_e : 7; |
13 | }; |
14 | |
15 | static void parse_via_date(const uchar *buf, struct via_date *vd, int32_t fend) |
16 | { |
17 | uint16_t date; |
18 | |
19 | date = (buf[0]<<8) | buf[1]; |
20 | vd->day_s = date & 0x1f; |
21 | vd->month_s = (date>>5) & 0x0f; |
22 | vd->year_s = (date>>9) & 0x7f; |
23 | |
24 | if( fend ) |
25 | { |
26 | date = (buf[2]<<8) | buf[3]; |
27 | vd->day_e = date & 0x1f; |
28 | vd->month_e = (date>>5) & 0x0f; |
29 | vd->year_e = (date>>9) & 0x7f; |
30 | } |
31 | } |
32 | |
33 | //static void get_via_data(const uchar *b, int32_t l, time_t *start_t, time_t *end_t, uchar *cls) |
34 | //{ |
35 | // int32_t i, j; |
36 | // struct via_date vd; |
37 | // struct tm tm; |
38 | // memset(&vd, 0, sizeof(struct via_date)); |
39 | // |
40 | // // b -> via date (4 bytes) |
41 | // b+=4; |
42 | // l-=4; |
43 | // |
44 | // j=l-1; |
45 | // for (; j>=0; j--) |
46 | // for (i=0; i<8; i++) |
47 | // if (b[j] & (1 << (i&7))) |
48 | // { |
49 | // parse_via_date(b-4, &vd, 1); |
50 | // *cls=(l-(j+1))*8+i; |
51 | // } |
52 | // |
53 | // memset(&tm, 0, sizeof(struct tm)); |
54 | // tm.tm_year = vd.year_s + 80; //via year starts in 1980, tm_year starts in 1900 |
55 | // tm.tm_mon = vd.month_s - 1; // january is 0 in tm_mon |
56 | // tm.tm_mday = vd.day_s; |
57 | // *start_t = mktime(&tm); |
58 | // |
59 | // tm.tm_year = vd.year_e + 80; |
60 | // tm.tm_mon = vd.month_e - 1; |
61 | // tm.tm_mday = vd.day_e; |
62 | // *end_t = mktime(&tm); |
63 | // |
64 | //} |
65 | |
66 | static void show_class(struct s_reader *reader, const char *p, uint32_t provid, const uchar *b, int32_t l) |
67 | { |
68 | int32_t i, j; |
69 | |
70 | // b -> via date (4 bytes) |
71 | b+=4; |
72 | l-=4; |
73 | |
74 | j=l-1; |
75 | for (; j>=0; j--) |
76 | for (i=0; i<8; i++) |
77 | if (b[j] & (1 << (i&7))) |
78 | { |
79 | uchar cls; |
80 | struct via_date vd; |
81 | parse_via_date(b-4, &vd, 1); |
82 | cls=(l-(j+1))*8+i; |
83 | if (p) |
84 | rdr_log(reader, "%sclass: %02X, expiry date: %04d/%02d/%02d - %04d/%02d/%02d", p, cls, |
85 | vd.year_s+1980, vd.month_s, vd.day_s, |
86 | vd.year_e+1980, vd.month_e, vd.day_e); |
87 | else { |
88 | rdr_log(reader, "class: %02X, expiry date: %04d/%02d/%02d - %04d/%02d/%02d", cls, |
89 | vd.year_s+1980, vd.month_s, vd.day_s, |
90 | vd.year_e+1980, vd.month_e, vd.day_e); |
91 | |
92 | time_t start_t, end_t; |
93 | struct tm tm; |
94 | //convert time: |
95 | memset(&tm, 0, sizeof(tm)); |
96 | tm.tm_year = vd.year_s+80; //via year starts in 1980, tm_year starts in 1900 |
97 | tm.tm_mon = vd.month_s-1; // january is 0 in tm_mon |
98 | tm.tm_mday = vd.day_s; |
99 | start_t = cs_timegm(&tm); |
100 | |
101 | tm.tm_year = vd.year_e+80; //via year starts in 1980, tm_year starts in 1900 |
102 | tm.tm_mon = vd.month_e-1; // january is 0 in tm_mon |
103 | tm.tm_mday = vd.day_e; |
104 | end_t = cs_timegm(&tm); |
105 | |
106 | cs_add_entitlement(reader, reader->caid, provid, cls, cls, start_t, end_t, 5); |
107 | } |
108 | } |
109 | } |
110 | |
111 | static void show_subs(struct s_reader * reader, const uchar *emm) |
112 | { |
113 | // emm -> A9, A6, B6 |
114 | |
115 | switch( emm[0] ) |
116 | { |
117 | case 0xA9: |
118 | show_class(reader, "nano A9: ", 0, emm+2, emm[1]); |
119 | break; |
120 | /* |
121 | { |
122 | int32_t i, j, byts; |
123 | const uchar *oemm; |
124 | |
125 | oemm = emm; |
126 | byts = emm[1]-4; |
127 | emm+=6; |
128 | |
129 | j=byts-1; |
130 | for( ; j>=0; j-- ) |
131 | for( i=0; i<8; i++ ) |
132 | if( emm[j] & (1 << (i&7)) ) |
133 | { |
134 | uchar cls; |
135 | struct via_date vd; |
136 | parse_via_date(emm-4, &vd, 1); |
137 | cls=(byts-(j+1))*8+i; |
138 | rdr_log(reader, "%sclass %02X: expiry date: %02d/%02d/%04d - %02d/%02d/%04d", |
139 | fnano?"nano A9: ":"", cls, |
140 | vd.day_s, vd.month_s, vd.year_s+1980, |
141 | vd.day_e, vd.month_e, vd.year_e+1980); |
142 | } |
143 | break; |
144 | } |
145 | */ |
146 | case 0xA6: |
147 | { |
148 | char szGeo[256]; |
149 | |
150 | memset(szGeo, 0, 256); |
151 | strncpy(szGeo, (char *)emm+2, emm[1]); |
152 | rdr_log(reader, "nano A6: geo %s", szGeo); |
153 | break; |
154 | } |
155 | case 0xB6: |
156 | { |
157 | uchar m; // modexp |
158 | struct via_date vd; |
159 | |
160 | m=emm[emm[1]+1]; |
161 | parse_via_date(emm+2, &vd, 0); |
162 | rdr_log(reader, "nano B6: modexp %d%d%d%d%d%d: %02d/%02d/%04d", (m&0x20)?1:0, |
163 | (m&0x10)?1:0,(m&0x08)?1:0,(m&0x04)?1:0,(m&0x02)?1:0,(m&0x01)?1:0, |
164 | vd.day_s, vd.month_s, vd.year_s+1980); |
165 | break; |
166 | } |
167 | } |
168 | } |
169 | |
170 | static int32_t chk_prov(struct s_reader * reader, uchar *id, uchar keynr) |
171 | { |
172 | int32_t i, j, rc; |
173 | for (rc=i=0; (!rc) && (i<reader->nprov); i++) |
174 | if(!memcmp(&reader->prid[1], id, 3)) |
Tu sais constance,
Il est inutile que tu nous fasse des copier/coller des autres forum alors que tu ne sais pas de quoi tu parles.
Le viacess est plus simple de le craquer que le seca?
Va faire un tour du coter du forum oscam.to et tu verras de quoi on parle stp car on est loin d'être sorti d'affaire.
La mise à jour injectée dans les Canal Ready est uniquement envoyée au terminaux de nouvelle génération qui ceux-ci possèdent un J-Tag Locké et une password dans la signature du firmware en lui même.
Il ne feront aucune MAJ sur les anciennes générations car il est facile de faire un DUMP car le J-Tag est accessible.
Donc stp, ou tu apportes des infos concrètes ou alors tu ne poste pas pour rien dire et surtout du charabia qui rempli ce post inutilement veux-tu?
Sans rancune, merci.
salut
ah bon ceux qui ont prit un abonnement carte seul
et qu'ils ont acheté un démo canal ready HD de premiere generation
ils pourront plus s'en servir ?
de mieux en mieux
J'ai acheté le SAGEM DTR94160S HD avant que l'on ne parle du label "canal ready" il y a presque 4 ans,
donc on peut dire qu'il est de "première génération".
Toutes les mises à jours on été faite par satellite et toutes les chaines sont lue avec la carte 039 !
le balmet 9960 et de premiere générations car pas de canal ready marquer dessus . par contre 1 ans aprés j ai recus le meme balmet avec canal ready dessus et aucune différence matériel ni différence coté mise a jour .J'ai acheté le SAGEM DTR94160S HD avant que l'on ne parle du label "canal ready" il y a presque 4 ans,
donc on peut dire qu'il est de "première génération".
Toutes les mises à jours on été faite par satellite et toutes les chaines sont lue avec la carte 039 !
mort de rire si les constructeur retire le rs232 + le jtag comment font t il pour remettre une mise a jour au save lol . dit toi que je suis développer chez moresat
j ai programmer pour proteck , technomat . édisions alors que je suis sur que tu savais meme pas ce que veux dire firmware . en aucun cas le forum oscam font du développement
algorythmique. il ne font que de l améliorations oscam grace a d autre personne qui poste des ticket de conversions . et tous cela ce passe ici et non pas sur oscam forum .
si on regarde le forum oscam versions francais il a beaucoup de blabla et aucun raisonnement valabe alors si tu veux vraiment une souce qui tien la route vas la lol
http://streamboard.de.vu:8001/browser/trunk#
le poste et tous a fais juste car le ce systeme et identique a celui que nous avions implanté dans no décodeur . mais comme le texte aussi le dit avec un décodeur linux il a toujour possibilitéMerci pour tes informations.
Voici un texte écris par Qosmio et tu me dis ce que tu en penses.
Merci.
Ceci se rapporte au fameux Humax TN-5050 que l'on a posté en PDF.
Voici les conclusions.
En espérant que certains, j'espère comme toi, arrivent trouver une solution:
Bonne lecture.
Le chip utilisé est plus avancé que ceux utilisé précédemment.
http://www.cs.indiana.edu/~geobrown/publications/sti7105.pdf
Et si je me trome pas en Page 11, en bas à Gauche, le rectangle identifié par le SEC => le module de sécurité qui embarque les clefs pour les algos DES/AES au niveau de la sécurisation des DW.
The STi7105 provides a solution for operators to specify a range of low-cost, high
performance HD STBs including low-cost Zappers, IP clients, Interactive STBs, DVR
standalone and DVR server/home network capable STBs, and with content delivery
possible using broadcast or broadband networks, or both (hybrid STBs). The STi7105 keeps
pace with the latest conditional access, DRM and trusted platform requirements of major
operators worldwide by incorporating the latest generation of advanced security features.
The STi7105 offers current users of STs growing family of advanced decoding ICs
enhancements in performance and features whilst reducing cost and time-to-market for the
next generation deployments.
Et le moins marrant -> Advanced security - Secure control words, Code authentication, JTAG locking,
Network/DVR copy protection, SVP, VGS, DTCP-IP, MS-DRM, MSTV
Alors pour faire simple, le décodeur boot sur une Flash dont le boot vérifie l'intégrité de la flash à l'aide du Crypto SoC, seul solution => exploiter un modchip sur la Flash ( si c'est possible ) pour basculer sur une flash alternative, Flash BGA surement bien collée avec de l'expoxy.
Ensuite même si le Jtag est présent -> le jtag est locké , fusé avec un mot de passe unique, chaque décodeur à son propre mot de passe selon l'ID du décodeur.
Et pour finir les clefs secure sont masquées si tu veux lire l'espace mémoire.
1 ) Hijacker le déco , pour avoir accés à un terminal ( si linux ).
2 ) Executer son propre code , et injecter son propre U-Boot
3 ) lancer un kernel linux non sécurisé pour executer du code en Userland pour tester le secure SoC, avec l'arrivée
Il y a beaucoup plus de chance de trouver des failles dans les premiéres Gamme, voila ce que je voulais dire au départ, et ce n'est surement pas un hazard si Canal veut remplacer les DSI 81 , Flash non protégée contre le dump (???) , pas d'expoxy ???? ou accés directe au déco par l'intermédiaire d'un connecteur RS232 ou autre ???
le poste et tous a fais juste car le ce systeme et identique a celui que nous avions implanté dans no décodeur . mais comme le texte aussi le dit avec un décodeur linux il a toujour possibilité
il faux juste vous dire que tous syteme a une porte d entrée et de sortie . et cela et obligatoire pour tous systeme . mais en aucun cas canal + peux demander au client de changer leur décodeur et encore moin si le label canal ready et dessus . de + le label canal ready et pour les hd obligatoirement et en aucun cas les hd .
de + pour les décodeur canal ready non hd ,il posséde un systeme qui interdit la recherche des fréquence des chaine hd .
je ne comprend pas pourquoi autant de monde s inquiète car comme le dit constance il y as toujours une porte d entrée et une porte de sortie et il en seras toujours ainsi et tant qu il y auras ces 2 portes il y auras toujours une solution .vous pouvez prendre tout les systèmes ils sont ainsi fait une entrée et une sortie
djammm
La team kyng sera la première a décrypté ce nano , parce que eux même l'utilise sur le atlas HD pour sécurisé les clés de canalsat