Portal Chamar Táxi

Openbox V6 F7S V8S etc Firmware para ALI3511

Status
Não está aberto para novas respostas.

flash242424

GF Bronze
Membro Inactivo
Entrou
Dez 10, 2010
Mensagens
39
Gostos Recebidos
0
No pouco tempo que pude dedicar acho que começo ver a Matrix.
Estive analisar os sniffings e parece-me que as boxes respondem ao "getsn 8" com "GSN" + 1 Byte de separador + informação N bytes que serão o numero de serie.
Reparem que se repetem no "burnsn 8 64 32" aquele primeiro 8 é o numero de serie.
Não pode ser coincidência pois não?

Box do Diogovictoriano
Código:
[I][FONT=Courier New]getsn 8 -> GSN¦¦xH+[/FONT][/I]

Inicio --------- "GSN"
Separador ---- "¦"
SNumber ----- "¦xH+"

burnsn começa por "¦xH+"

Box do Qu4k3
Código:
getsn 8 -> GSNª.8.«....
Inicio --------- "GSN"
Separador ---- "ª"
SNumber ----- ".8.«...."

burnsn começa por ".8.«...."

Por outro lado a resposta da box do Qu4k3 ao "getsn 8" parece incoerente pois temos 3 respostas diferentes ou serão erros na comunicação?

Peguei nesses N Bytes e enviei ao servidor de licenças mas ele respondeu com erro 404.
Tenho de percorrer o código Python a ver se descubro mais pistas sobre o formato.

@Qu4k3
A tua box não deu "burnok"?
Quando puderes partilha o resultado de varios "getsn 8" pelo Termite numa box não autenticada e sniffing da respectiva autenticação se tiveres.
 

crackofranc

GF Bronze
Membro Inactivo
Entrou
Mar 5, 2019
Mensagens
6
Gostos Recebidos
0
flash242424 não te consigo acompanhar porque não tenho os conhecimentos e pedalada para ti, mas já vi que és uma máquina do caraças! :)
 

zemar

GF Prata
Entrou
Set 24, 2006
Mensagens
278
Gostos Recebidos
0
Já experimentaram com este firmware OPENOX_V8S_3511HD_CMT_15081006B7?
Este é um dos ultimos com modificações, eu tenho-o, mas não o coloco porque ainda ninguem me disse como é que o coloco aqui.
Eu digo alguma coisa disto, porque já me passou uma box destas por as mãos, mas agora não tenho acesso a ela porque não sei onde está.
 

crackofranc

GF Bronze
Membro Inactivo
Entrou
Mar 5, 2019
Mensagens
6
Gostos Recebidos
0
Já experimentaram com este firmware OPENOX_V8S_3511HD_CMT_15081006B7?
Este é um dos ultimos com modificações, eu tenho-o, mas não o coloco porque ainda ninguem me disse como é que o coloco aqui.
Eu digo alguma coisa disto, porque já me passou uma box destas por as mãos, mas agora não tenho acesso a ela porque não sei onde está.


O qu4k3 já te tinha respondido com este link:

https://www.geralforum.com/board/sh...egisto-criar-topico-ler-regras-e-apresentacao


É o tutorial de como utilizar as várias ferramentas do fórum.

Obrigado
 

Qu4k3

Super-Moderador
Team GForum
Entrou
Abr 9, 2009
Mensagens
214
Gostos Recebidos
137
No pouco tempo que pude dedicar acho que começo ver a Matrix.
Estive analisar os sniffings e parece-me que as boxes respondem ao "getsn 8" com "GSN" + 1 Byte de separador + informação N bytes que serão o numero de serie.
Reparem que se repetem no "burnsn 8 64 32" aquele primeiro 8 é o numero de serie.
Não pode ser coincidência pois não?

Box do Diogovictoriano
Código:
[I][FONT=Courier New]getsn 8 -> GSN¦¦xH+[/FONT][/I]

Inicio --------- "GSN"
Separador ---- "¦"
SNumber ----- "¦xH+"

burnsn começa por "¦xH+"

Box do Qu4k3
Código:
getsn 8 -> GSNª.8.«....
Inicio --------- "GSN"
Separador ---- "ª"
SNumber ----- ".8.«...."

burnsn começa por ".8.«...."

Por outro lado a resposta da box do Qu4k3 ao "getsn 8" parece incoerente pois temos 3 respostas diferentes ou serão erros na comunicação?

Peguei nesses N Bytes e enviei ao servidor de licenças mas ele respondeu com erro 404.
Tenho de percorrer o código Python a ver se descubro mais pistas sobre o formato.

@Qu4k3
A tua box não deu "burnok"?
Quando puderes partilha o resultado de varios "getsn 8" pelo Termite numa box não autenticada e sniffing da respectiva autenticação se tiveres.

Bom dia.
Ainda nao tive opurtunidade de testar outra box nao autenticada. Assim que tiver novidades coloco aqui.
Quanto ao erro 404 enviado pelo servidor, deve se ao chip_sn ter um tamanho de 3 caracteres. Se experimentares tioo chip_sn=000 ou abc ou 0ff, vai dar internal error 500.

Peco a todos os utilizadores para respeitarem o objectivo do topico e nao o encherem de spam sff.

Cumps
 

Qu4k3

Super-Moderador
Team GForum
Entrou
Abr 9, 2009
Mensagens
214
Gostos Recebidos
137
Box do Diogovictoriano
Código:
getsn 8 -> GSN¦¦xH+
Inicio --------- "GSN¦"
Separador ---- "¦"
SNumber ----- "xH+"

burnsn começa por "xH+"

Box do Qu4k3
Código:
getsn 8 -> GSNª.8.«....

Inicio --------- "GSNª"
Separador ---- "."
SNumber ----- "8.«...."

burnsn começa por "8.«...."

Penso que seja mais assim...
 

Diogovictoriano

GF Bronze
Entrou
Jun 30, 2018
Mensagens
25
Gostos Recebidos
0
boas, fiz o getsn_8 antes do auth:

getsn_8 antes auth.PNG

e depois do auth:

getsn_8 depois auth.PNG

e também fiz mais um sniff:

getsn 8
GSN¦¦¦8M
burnsn 8 64 32
¦¦8M/¦]¦¦[¦¦¦X¦awM¦¦¦9td¦?'¦¦K¦¦k¦¦¦n¦¦¦¦o¦o¦¦¦WF`$

¦c¦¦?¦8!¦#¦¦¦ab¦g\¦9=+¦¦¦?@¦W`vBSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
g etsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
gets n 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
G SN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦
getsn 8
GSN¦

este é relativamente diferente do primeiro
 
Última edição:

flash242424

GF Bronze
Membro Inactivo
Entrou
Dez 10, 2010
Mensagens
39
Gostos Recebidos
0
Bom dia.
Ainda nao tive opurtunidade de testar outra box nao autenticada. Assim que tiver novidades coloco aqui.
Quanto ao erro 404 enviado pelo servidor, deve se ao chip_sn ter um tamanho de 3 caracteres. Se experimentares tioo chip_sn=000 ou abc ou 0ff, vai dar internal error 500.

Peco a todos os utilizadores para respeitarem o objectivo do topico e nao o encherem de spam sff.

Cumps
Ao analisar mais uma vez o código Python descobri uma serie de coisas e ainda há lá muito mais info e pistas.
Esta e outra informação esteve sempre à frente dos meus olhos mas só agora a vi.
  1. O endpoint "/chip_with_sn_production" tem 3 argumentos e não 2 como pensava estes são "key", "chip_sn" e "successed"
    Isto faz-me começar acreditar novamente na tua ideia que podemos usar uma key e gerar infinitas autenticações até os chineses detectarem só temos é de enviar successed = 0 eheh
    Exemplo https://45.248.86.44/dpt/api/chip_with_sn_production?key=bbd43b00-a99e-55e3-9828-71ba26097347&chip_sn=MTQzODE1QUIwMzAzMDAwMA==&successed=0
    Quando descobrir o formato do chip_sn ao certo testo se isto é verdade.

  2. O servidor devolve erros pelo Header da resposta ao pedido HTTP
    Info retirada do Header "reason → Error: Invalid chip sn len"

  3. O numero de serie que é extraído da box é enviado ao servidor codificado por base64
    Info retirada código python do software de autenticação "chipsn_sign = base64.b64encode(chipsn_sign)"

Com uma ferramenta tipo Postman ou Chrome DevTools com opção "Preserve Log" podemos ver a informação de erro.


boas, fiz o getsn_8 antes do auth:

Ver anexo 156540

e depois do auth:

Ver anexo 156541

e também fiz mais um sniff:

este é bastante diferente do primeiro snif

Excelente Diogovictoriano com esta informação já consigo avançar....
Analise preliminar é que o teu sniffer está com problemas de codificação ou tem alguns erros na comunicação mas consigo ver o padrão.

Temos de olhar para isto como hexadecimal e não ASCII.
O separador indica se a box já foi autenticada ou não.
  • "ª" ou 0xAA (hexadecimal) significa não autenticada e em seguida vai o numero de serie de 8 Bytes, agora tenho a certeza são 8 Bytes
  • "®" ou 0xAE (hexadecimal) significa autenticada e em seguida 8 Bytes de zeros

"getsn 8" com resposta "GSNª.8.«...." ou "47 53 4E AA 14 38 15 AB 03 03 00 00" significa numero de serie "14 38 15 AB 03 03 00 00" em hexadecimal 0x143815AB03030000

"getsn 8" com resposta "GSNªàà8M[04][03][00][00]" ou "47 53 4E AA E0 E0 38 4D 04 03 00 00" significa numero de serie "E0 E0 38 4D 04 03 00 00" em hexadecimal 0xE0E0384D04030000

"getsn 8" com resposta "GSN®........" ou "47 53 4E AE 00 00 00 00 00 00 00 00" significa que a box está codificada, isto acontece nas duas boxes, separador "®" ou 0xAE e numero de serie "00 00 00 00 00 00 00 00"

Este novo sniffing confirma que no "burnsn" os primeiros 8 Bytes são o numero de serie.
O que me leva a pensar.... será que estão a reescrever o numero de serie?
Se assim for podemos usar um comando "burnsn" sniffado para todas as boxes como Qu4k3 sugeriu.

Se alguém puder testar esta teoria que envie este hexadecimal a uma box não autenticada com o Termite mas tem de instalar o plugin Hex View Ver anexo Hex_View.zip e ativar termite hex view.PNG em Settings -> Plugins
Código:
0x0A6275726E736E20382036342033320A143815AB030300006D647DA4D602994DFF878E70D8374BFF0B55194B060B0B7C682E742AEE2D4651BC4AA5FA359ACA5733638E8C76F20581AE9E39603F66D14BE9FC1263B037ACC37F14E64ABE736C9C4FD54F97C03B6AB5806B25293FBE6B616C72B4083E6B9984

A solução até pode ser esta mas vou continuar a tentar explorar o servidor da solovox.
 
Última edição:

Qu4k3

Super-Moderador
Team GForum
Entrou
Abr 9, 2009
Mensagens
214
Gostos Recebidos
137
Ao analisar mais uma vez o código Python descobri uma serie de coisas e ainda há lá muito mais info e pistas.
Esta e outra informação esteve sempre à frente dos meus olhos mas só agora a vi.
  1. O endpoint "/chip_with_sn_production" tem 3 argumentos e não 2 como pensava estes são "key", "chip_sn" e "successed"
    Isto faz-me começar acreditar novamente na tua ideia que podemos usar uma key e gerar infinitas autenticações até os chineses detectarem só temos é de enviar successed = 0 eheh
    Exemplo https://45.248.86.44/dpt/api/chip_with_sn_production?key=bbd43b00-a99e-55e3-9828-71ba26097347&chip_sn=MTQzODE1QUIwMzAzMDAwMA==&successed=0
    Quando descobrir o formato do chip_sn ao certo testo se isto é verdade.

  2. O servidor devolve erros pelo Header da resposta ao pedido HTTP
    Info retirada do Header "reason → Error: Invalid chip sn len"

  3. O numero de serie que é extraído da box é enviado ao servidor codificado por base64
    Info retirada código python do software de autenticação "chipsn_sign = base64.b64encode(chipsn_sign)"

Com uma ferramenta tipo Postman ou Chrome DevTools com opção "Preserve Log" podemos ver a informação de erro.




Excelente Diogovictoriano com esta informação já consigo avançar....
Analise preliminar é que o teu sniffer está com problemas de codificação ou tem alguns erros na comunicação mas consigo ver o padrão.

Temos de olhar para isto como hexadecimal e não ASCII.
O separador indica se a box já foi autenticada ou não.
  • "ª" ou 0xAA (hexadecimal) significa não autenticada e em seguida vai o numero de serie de 8 Bytes, agora tenho a certeza são 8 Bytes
  • "®" ou 0xAE (hexadecimal) significa autenticada e em seguida 8 Bytes de zeros

"getsn 8" com resposta "GSNª.8.«...." ou "47 53 4E AA 14 38 15 AB 03 03 00 00" significa numero de serie "14 38 15 AB 03 03 00 00" em hexadecimal 0x143815AB03030000

"getsn 8" com resposta "GSNªàà8M[04][03][00][00]" ou "47 53 4E AA E0 E0 38 4D 04 03 00 00" significa numero de serie "E0 E0 38 4D 04 03 00 00" em hexadecimal 0xE0E0384D04030000

"getsn 8" com resposta "GSN®........" ou "47 53 4E AE 00 00 00 00 00 00 00 00" significa que a box está codificada, isto acontece nas duas boxes, separador "®" ou 0xAE e numero de serie "00 00 00 00 00 00 00 00"

Este novo sniffing confirma que no "burnsn" os primeiros 8 Bytes são o numero de serie.
O que me leva a pensar.... será que estão a reescrever o numero de serie?
Se assim for podemos usar um comando "burnsn" sniffado para todas as boxes como Qu4k3 sugeriu.

Se alguém puder testar esta teoria que envie este hexadecimal a uma box não autenticada com o Termite mas tem de instalar o plugin Hex View Ver anexo 156543 e ativar Ver anexo 156544 em Settings -> Plugins
Código:
0x0A6275726E736E20382036342033320A143815AB030300006D647DA4D602994DFF878E70D8374BFF0B55194B060B0B7C682E742AEE2D4651BC4AA5FA359ACA5733638E8C76F20581AE9E39603F66D14BE9FC1263B037ACC37F14E64ABE736C9C4FD54F97C03B6AB5806B25293FBE6B616C72B4083E6B9984

A solução até pode ser esta mas vou continuar a tentar explorar o servidor da solovox.



A parte do successed ja tinha visto e testei com 0 e 1.. pensei que sabias, esta no codigo :)

Eu xeguei a mesma conclusao.. eles estao a reescrever o serial number.. como se fossem produzidos pela solovox..
 
Última edição:

Qu4k3

Super-Moderador
Team GForum
Entrou
Abr 9, 2009
Mensagens
214
Gostos Recebidos
137
@Diogovictoriano

Se conseguires outro sniff mas em hexadecimal posta aqui.. o ascii fica ilegivel.
Cumps
 

Diogovictoriano

GF Bronze
Entrou
Jun 30, 2018
Mensagens
25
Gostos Recebidos
0
Ao analisar mais uma vez o código Python descobri uma serie de coisas e ainda há lá muito mais info e pistas.
Esta e outra informação esteve sempre à frente dos meus olhos mas só agora a vi.
  1. O endpoint "/chip_with_sn_production" tem 3 argumentos e não 2 como pensava estes são "key", "chip_sn" e "successed"
    Isto faz-me começar acreditar novamente na tua ideia que podemos usar uma key e gerar infinitas autenticações até os chineses detectarem só temos é de enviar successed = 0 eheh
    Exemplo https://45.248.86.44/dpt/api/chip_with_sn_production?key=bbd43b00-a99e-55e3-9828-71ba26097347&chip_sn=MTQzODE1QUIwMzAzMDAwMA==&successed=0
    Quando descobrir o formato do chip_sn ao certo testo se isto é verdade.

  2. O servidor devolve erros pelo Header da resposta ao pedido HTTP
    Info retirada do Header "reason → Error: Invalid chip sn len"

  3. O numero de serie que é extraído da box é enviado ao servidor codificado por base64
    Info retirada código python do software de autenticação "chipsn_sign = base64.b64encode(chipsn_sign)"

Com uma ferramenta tipo Postman ou Chrome DevTools com opção "Preserve Log" podemos ver a informação de erro.




Excelente Diogovictoriano com esta informação já consigo avançar....
Analise preliminar é que o teu sniffer está com problemas de codificação ou tem alguns erros na comunicação mas consigo ver o padrão.

Temos de olhar para isto como hexadecimal e não ASCII.
O separador indica se a box já foi autenticada ou não.
  • "ª" ou 0xAA (hexadecimal) significa não autenticada e em seguida vai o numero de serie de 8 Bytes, agora tenho a certeza são 8 Bytes
  • "®" ou 0xAE (hexadecimal) significa autenticada e em seguida 8 Bytes de zeros

"getsn 8" com resposta "GSNª.8.«...." ou "47 53 4E AA 14 38 15 AB 03 03 00 00" significa numero de serie "14 38 15 AB 03 03 00 00" em hexadecimal 0x143815AB03030000

"getsn 8" com resposta "GSNªàà8M[04][03][00][00]" ou "47 53 4E AA E0 E0 38 4D 04 03 00 00" significa numero de serie "E0 E0 38 4D 04 03 00 00" em hexadecimal 0xE0E0384D04030000

"getsn 8" com resposta "GSN®........" ou "47 53 4E AE 00 00 00 00 00 00 00 00" significa que a box está codificada, isto acontece nas duas boxes, separador "®" ou 0xAE e numero de serie "00 00 00 00 00 00 00 00"

Este novo sniffing confirma que no "burnsn" os primeiros 8 Bytes são o numero de serie.
O que me leva a pensar.... será que estão a reescrever o numero de serie?
Se assim for podemos usar um comando "burnsn" sniffado para todas as boxes como Qu4k3 sugeriu.

Se alguém puder testar esta teoria que envie este hexadecimal a uma box não autenticada com o Termite mas tem de instalar o plugin Hex View Ver anexo 156543 e ativar Ver anexo 156544 em Settings -> Plugins
Código:
0x0A6275726E736E20382036342033320A143815AB030300006D647DA4D602994DFF878E70D8374BFF0B55194B060B0B7C682E742AEE2D4651BC4AA5FA359ACA5733638E8C76F20581AE9E39603F66D14BE9FC1263B037ACC37F14E64ABE736C9C4FD54F97C03B6AB5806B25293FBE6B616C72B4083E6B9984

A solução até pode ser esta mas vou continuar a tentar explorar o servidor da solovox.

O meu sniffer é por cabo, será por isso?

Eu testei enviar um comando pelo putty e o sniffer respondeu corretamente, vou testar com outra box ;)
 

Qu4k3

Super-Moderador
Team GForum
Entrou
Abr 9, 2009
Mensagens
214
Gostos Recebidos
137
Estamos a dar bantante importancia ao chipsn.
Mas analisem isto:

Código:
def serial_read_chipsn(self, chip_sn_len = 0):
        if chip_sn_len == 0:
            self.error = self.worker.tr('Error: serial_read_chipsn chip_sn_len == 0')
            return
        if not self.serial_inited:
            self.error = self.worker.tr('Error: serial_read_chipsn serial not inited')
            return
        chip_sn_size = c_uint32(chip_sn_len)
        chip_sn_buff = create_string_buffer(chip_sn_size.value)
       [COLOR="#FF0000"] ret = self.serial.production_read_chip_sn(chip_sn_buff, chip_sn_size)
        if ret == 0:
            chip_sn = string_at(chip_sn_buff, chip_sn_size.value)[/COLOR]
            return chip_sn

o programa cria o chipsn se o retour for igual a 0

se puderem enviar o hex do burnsn diretamente para uma box nao autenticada e darem feedback era bom. nao consegui ter uma box para testes. possivelmente so domingo.
 

flash242424

GF Bronze
Membro Inactivo
Entrou
Dez 10, 2010
Mensagens
39
Gostos Recebidos
0
sim, logo ou amanhã vou tentar testar com outra box :)

Faz o mesmo que fizes-te para a anterior, envia-lhe "getsn 8" pelo Termite e guarda a resposta, assim temos mais dados.
Contudo antes de fazeres a autenticação oficial e sniffing, experimenta enviar com o Termite o hexadecimal que deixei no post anterior se funcionar já temos solução.
Não te esqueças de instalar o plugin e ativar, senão vais estar a enviar ASCII e não Hex ;)

Estamos a dar bantante importancia ao chipsn.
Mas analisem isto:

Código:
def serial_read_chipsn(self, chip_sn_len = 0):
        if chip_sn_len == 0:
            self.error = self.worker.tr('Error: serial_read_chipsn chip_sn_len == 0')
            return
        if not self.serial_inited:
            self.error = self.worker.tr('Error: serial_read_chipsn serial not inited')
            return
        chip_sn_size = c_uint32(chip_sn_len)
        chip_sn_buff = create_string_buffer(chip_sn_size.value)
       [COLOR="#FF0000"] ret = self.serial.production_read_chip_sn(chip_sn_buff, chip_sn_size)
        if ret == 0:
            chip_sn = string_at(chip_sn_buff, chip_sn_size.value)[/COLOR]
            return chip_sn

o programa cria o chipsn se o retour for igual a 0

se puderem enviar o hex do burnsn diretamente para uma box nao autenticada e darem feedback era bom. nao consegui ter uma box para testes. possivelmente so domingo.

Esse método é o responsável pela leitura do numero de serie ele nunca cria o numero de serie, vai buscar ai buffer 8 Bytes e mais nada.
Se ret não for 0 ele nunca retorna nada, o que vai acontecer é mais uma repetição do comando getsn até que consiga recolher o numero de serie.

Não estás a ler bem o código mas concordo que provavelmente já temos o problema solucionado basta enviar o comando hex completo do burnsn, só experimentando.
 

Diogovictoriano

GF Bronze
Entrou
Jun 30, 2018
Mensagens
25
Gostos Recebidos
0
Pessoal já tentei enviar o código para uma box não autenticada, mas não deu, apareceu na tv: "burn OTP fail" :/ logo já envio os sniffs e as respostas dos comandos enviados :)
 

Diogovictoriano

GF Bronze
Entrou
Jun 30, 2018
Mensagens
25
Gostos Recebidos
0
Cá vão os dados :)

getsn 8 antes do auth:

Código:
67 65 74 73 6e 38 0a                             getsn8.         
                                                                 
                                                                 
67 65 74 73 6e 20 38 0a                          getsn 8.        
47 53 4e aa 10 28 91 2a 2a 02 00 00              GSNª.(‘**...    
                                                                 
67 65 74 73 6e 20 38 0a                          getsn 8.        
47 53 4e aa 10 28 91 2a 2a 02 00 00              GSNª.(‘**...

getsn 8 depois do auth:

Código:
67 65 74 73 6e 20 38 0a                          getsn 8.        
                                                                 
                                                                 
67 65 74 73 6e 20 38 0a                          getsn 8.

código do @Flash242424:

Código:
20 00 90 02 94 10 90 02 38 20 36 34 20 33 32 0a   .�.”.�.8 64 32.
14 38 15 ab 03 03 00 00 6d 64 7d a4 d6 02 99 4d  .8.«....md}¤Ö.™M
ff 87 8e 70 d8 37 4b ff 0b 55 19 4b 06 0b 0b 7c  ÿ‡ŽpØ7Kÿ.U.K...|
68 2e 74 2a ee 2d 46 51 bc 4a a5 fa 35 9a ca 57  h.t*î-FQ¼J¥ú5šÊW
33 63 8e 8c 76 f2 05 81 ae 9e 39 60 3f 66 d1 4b  3cŽŒvò.�®ž9`?fÑK
e9 fc 12 63 b0 37 ac c3 7f 14 e6 4a be 73 6c 9c  éü.c°7¬Ã.æJ¾slœ
4f d5 4f 97 c0 3b 6a b5 80 6b 25 29 3f be 6b 61  OÕO—À;jµ€k%)?¾ka
6c 72 b4 08 3e 6b 99 84 0a                       lr´.>k™„.       
42 53 4e e4                                      BSNä

erro apresentado na tv:


burn otp fail.PNG


sniff do auth:

Código:
0a 67 65 74 73 6e 20 38 0a 47 53 4e aa 10 28 91  .getsn 8.GSNª.(‘
2a 2a 02 00 00 0a 62 75 72 6e 73 6e 20 38 20 36  **....burnsn 8 6
34 20 33 32 0a 10 28 91 2a 2a 02 00 00 19 44 81  4 32..(‘**....D�
d0 2c 98 a0 98 89 8c fc ac 44 e3 03 8f bd 2d b2  Ð,˜ ˜‰Œü¬Dã.�½-²
af 44 bc 75 4f a6 c0 2c 75 3d 37 24 e8 c2 af 98  ¯D¼uO¦À,u=7$诘
c6 f8 d0 ee a5 86 c2 a3 93 d8 81 3c f0 37 ab 7a  ÆøÐ£“Ø�<ð7«z
2e 1c 55 62 57 ad 33 af a1 07 0f 4b bd 05 33 8b  ..UbW­3¯¡..K½.3‹
9f 7f 2c 27 bb 0d fa 57 2e 52 45 92 b8 68 c7 e1  Ÿ,'».úW.RE’¸hÇá
e3 13 e8 74 c7 b0 94 4d e2 e5 f1 cf 68           ã.ètǰ”MâåñÏh   
42 53 4e aa                                      BSNª            
0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00  .getsn 8.GSN®...
00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53  ......getsn 8.GS
4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e  N®.........getsn
20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a   8.GSN®.........
67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00  getsn 8.GSN®....
00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e  .....getsn 8.GSN
ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20  ®.........getsn 
38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67  8.GSN®.........g
65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00  etsn 8.GSN®.....
00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae  ....getsn 8.GSN®
00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38  .........getsn 8
0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65  .GSN®.........ge
74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00  tsn 8.GSN®......
00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00  ...getsn 8.GSN®.
00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a  ........getsn 8.
47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74  GSN®.........get
73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00  sn 8.GSN®.......
00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00  ..getsn 8.GSN®..
00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47  .......getsn 8.G
53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73  SN®.........gets
6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00  n 8.GSN®........
0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00  .getsn 8.GSN®...
00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53  ......getsn 8.GS
4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e  N®.........getsn
20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a   8.GSN®.........
67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00  getsn 8.GSN®....
00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e  .....getsn 8.GSN
ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20  ®.........getsn 
38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67  8.GSN®.........g
65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00  etsn 8.GSN®.....
00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae  ....getsn 8.GSN®
00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38  .........getsn 8
0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65  .GSN®.........ge
74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00  tsn 8.GSN®......
00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00  ...getsn 8.GSN®.
00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a  ........getsn 8.
47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74  GSN®.........get
73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00  sn 8.GSN®.......
00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00  ..getsn 8.GSN®..
00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47  .......getsn 8.G
53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73  SN®.........gets
6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00  n 8.GSN®........
0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00  .getsn 8.GSN®...
00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53  ......getsn 8.GS
4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e  N®.........getsn
20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a   8.GSN®.........
67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00  getsn 8.GSN®....
00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e  .....getsn 8.GSN
ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20  ®.........getsn 
38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67  8.GSN®.........g
65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00  etsn 8.GSN®.....
00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae  ....getsn 8.GSN®
00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38  .........getsn 8
0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65  .GSN®.........ge
74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00  tsn 8.GSN®......
00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00  ...getsn 8.GSN®.
00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a  ........getsn 8.
47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74  GSN®.........get
73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00  sn 8.GSN®.......
00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00  ..getsn 8.GSN®..
00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47  .......getsn 8.G
53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73  SN®.........gets
6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00  n 8.GSN®........
0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00  .getsn 8.GSN®...
00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53  ......getsn 8.GS
4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e  N®.........getsn
20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a   8.GSN®.........
67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00  getsn 8.GSN®....
00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e  .....getsn 8.GSN
ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20  ®.........getsn 
38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67  8.GSN®.........g
65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00  etsn 8.GSN®.....
00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae  ....getsn 8.GSN®
00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38  .........getsn 8
0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65  .GSN®.........ge
74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00  tsn 8.GSN®......
00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00  ...getsn 8.GSN®.
00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a  ........getsn 8.
47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74  GSN®.........get
73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00  sn 8.GSN®.......
00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00  ..getsn 8.GSN®..
00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47  .......getsn 8.G
53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73  SN®.........gets
6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00  n 8.GSN®........
0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00  .getsn 8.GSN®...
00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53  ......getsn 8.GS
4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e  N®.........getsn
20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a   8.GSN®.........
67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00  getsn 8.GSN®....
00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e  .....getsn 8.GSN
ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20  ®.........getsn 
38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67  8.GSN®.........g
65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00  etsn 8.GSN®.....
00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae  ....getsn 8.GSN®
00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38  .........getsn 8
0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65  .GSN®.........ge
74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00  tsn 8.GSN®......
00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00  ...getsn 8.GSN®.
00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a  ........getsn 8.
47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74  GSN®.........get
73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00  sn 8.GSN®.......
00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00  ..getsn 8.GSN®..
00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47  .......getsn 8.G
53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73  SN®.........gets
6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00  n 8.GSN®........
0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00  .getsn 8.GSN®...
00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53  ......getsn 8.GS
4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e  N®.........getsn
20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a   8.GSN®.........
67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00  getsn 8.GSN®....
00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e  .....getsn 8.GSN
ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20  ®.........getsn 
38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67  8.GSN®.........g
65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00  etsn 8.GSN®.....
00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae  ....getsn 8.GSN®
00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38  .........getsn 8
0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65  .GSN®.........ge
74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00  tsn 8.GSN®......
00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00  ...getsn 8.GSN®.
00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a  ........getsn 8.
47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74  GSN®.........get
73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00  sn 8.GSN®.......
00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00  ..getsn 8.GSN®..
00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47  .......getsn 8.G
53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73  SN®.........gets
6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00  n 8.GSN®........
0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00  .getsn 8.GSN®...
00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53  ......getsn 8.GS
4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e  N®.........getsn
20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a   8.GSN®.........
67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00  getsn 8.GSN®....
00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e  .....getsn 8.GSN
ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20  ®.........getsn 
38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67  8.GSN®.........g
65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00  etsn 8.GSN®.....
00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae  ....getsn 8.GSN®
00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38  .........getsn 8
0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65  .GSN®.........ge
74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00  tsn 8.GSN®......
00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00  ...getsn 8.GSN®.
00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a  ........getsn 8.
47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74  GSN®.........get
73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00  sn 8.GSN®.......
00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00  ..getsn 8.GSN®..
00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47  .......getsn 8.G
53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73  SN®.........gets
6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00  n 8.GSN®........
0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00  .getsn 8.GSN®...
00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53  ......getsn 8.GS
4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e  N®.........getsn
20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a   8.GSN®.........
67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00  getsn 8.GSN®....
00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e  .....getsn 8.GSN
ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20  ®.........getsn 
38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67  8.GSN®.........g
65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00  etsn 8.GSN®.....
00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae  ....getsn 8.GSN®
00 00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38  .........getsn 8
0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65  .GSN®.........ge
74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00  tsn 8.GSN®......
00 00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00  ...getsn 8.GSN®.
00 00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a  ........getsn 8.
47 53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74  GSN®.........get
73 6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00  sn 8.GSN®.......
00 0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00  ..getsn 8.GSN®..
00 00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47  .......getsn 8.G
53 4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73  SN®.........gets
6e 20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00  n 8.GSN®........
0a 67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00  .getsn 8.GSN®...
00 00 00 00 00 0a 67 65 74 73 6e 20 38 0a 47 53  ......getsn 8.GS
4e ae 00 00 00 00 00 00 00 00 0a 67 65 74 73 6e  N®.........getsn
20 38 0a 47 53 4e ae 00 00 00 00 00 00 00 00 0a   8.GSN®.........
67 65 74 73 6e 20 38 0a 47 53 4e ae 00 00 00 00  getsn 8.GSN®....
00 00 00 00                                      ....
 
Última edição:

flash242424

GF Bronze
Membro Inactivo
Entrou
Dez 10, 2010
Mensagens
39
Gostos Recebidos
0
Pessoal já tentei enviar o código para uma box não autenticada, mas não deu, apareceu na tv: "burn OTP fail" :/ logo já envio os sniffs e as respostas dos comandos enviados :)

Excelente trabalho e sniffing :)
Não será necessário mais sniffings de autenticaçoes oficiais.
Amanhã noite ou segunda já me dedico a analisar.
Pena o burnsn não ter funcionado mas fico na dúvida se o comando foi bem enviado ou interpretado porque a parte inicial do hex não coincide com o do sniffing. O que se terá passado?
 

Diogovictoriano

GF Bronze
Entrou
Jun 30, 2018
Mensagens
25
Gostos Recebidos
0
Excelente trabalho e sniffing :)
Não será necessário mais sniffings de autenticaçoes oficiais.
Amanhã noite ou segunda já me dedico a analisar.
Pena o burnsn não ter funcionado mas fico na dúvida se o comando foi bem enviado ou interpretado porque a parte inicial do hex não coincide com o do sniffing. O que se terá passado?

Também não percebi, tentei enviar várias vezes o código, mudei os parâmetros de serie a ver se resolvia, mas a resposta era sempre a mesma e a box dava sempre o burn otp fail :/
 

Qu4k3

Super-Moderador
Team GForum
Entrou
Abr 9, 2009
Mensagens
214
Gostos Recebidos
137
Excelente trabalho e sniffing :)
Não será necessário mais sniffings de autenticaçoes oficiais.
Amanhã noite ou segunda já me dedico a analisar.
Pena o burnsn não ter funcionado mas fico na dúvida se o comando foi bem enviado ou interpretado porque a parte inicial do hex não coincide com o do sniffing. O que se terá passado?

Boas. Penso que comeco a entender..
Tem a ver com o burnsn 8 64 32.
Teremos que enviar o codigo separadamente.. tipo
burnsn 8 64 32
Codigo de 8 bits = hex do getsn da box
Codigo 64 bits = hex de um sniff
Codigo 32 bits = hex de um sniff

Tudo em hex.
 

Qu4k3

Super-Moderador
Team GForum
Entrou
Abr 9, 2009
Mensagens
214
Gostos Recebidos
137
Boas. Penso que comeco a entender..
Tem a ver com o burnsn 8 64 32.
Teremos que enviar o codigo separadamente.. tipo
burnsn 8 64 32
Codigo de 8 bits = hex do getsn da box
Codigo 64 bits = hex de um sniff
Codigo 32 bits = hex de um sniff

Tudo em hex.

Bytes.. perdao ;)
 

flash242424

GF Bronze
Membro Inactivo
Entrou
Dez 10, 2010
Mensagens
39
Gostos Recebidos
0
Tenho boas noticias aqui deixo os progressos.

Estive analisar o processo usado pela solovox e já o percebi todo.
O que fazem é o seguinte (deixo o processo todo para que fique documentado):
  1. Vão buscar à box o numero de serie do chip pela porta serie com o comando "getsn 8" (são os 8 Bytes menos significativos)
  2. Assinam o numero de serie do chip com o método sign_chip_sn(c_char_p, c_char_p, c_uint32, c_void_p) da biblioteca "Mp_Serial.dll"
  3. Convertem o numero de serie do chip assinado para base64
  4. Enviam ao servidor de licenças o numero de serie do chip assinado e em base64
  5. O servidor de licenças devolve o numero de serie do chip encriptado e em base64
    Estou a tentar descobrir o algoritmo que usam para cifrar o numero de serie do chip assinado.
    Usa coisa que sei é que usam a data (timestamp) no algoritmo porque a resposta muda se fizermos vários pedidos.
    Outra coisa boa é que se enviar pedidos com "successed=0" parece-me que não são descontadas licenças
    Ou será apenas porque está a ser utilizado um numero de serie que já foi autenticado?
    Código:
    [COLOR="#00FF00"]https://45.248.86.44/dpt/api/chip_with_sn_production?key=[COLOR="#FF0000"][usar_key_valida][/COLOR]&chip_sn=ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==&successed=0[/COLOR]
    Resposta 1:
    [COLOR="#FFA500"]   {
          "echipsn": "ECiRKioCAAALhJGTYhdaMJbi0AzUD8WYJeObNo4gjK74duwoEN9esSWXuymilX8Z8vPFGojxJsll4Zs3CIkvWcHw0BhTMnSNlpBin2xJnj7C/1yAR5ZG/VMJDO9yH5AOxHcXC0Qv2Dc="
       }[/COLOR]
    
    Resposta 2:
    [COLOR="#FFA500"]   {
           "echipsn": "ECiRKioCAAAxznLQijCGavfSMoeLwTEYAE5ixr+DBVXPDRoDFkNr92Qv3Ya7suuiCWm2MrHWNh8bcxynlPwnkBBSVu2iQMP144KoCGqQYZ4/3Qcg0lziXcJf6m6P3H0GINt2syla+zk="
       }[/COLOR]
    
    Resposta 3:
    [COLOR="#FFA500"]   {  
           "echipsn": "ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0="
       }[/COLOR]
    
    [COLOR="#FF0000"]ATENÇÃO[/COLOR][COLOR="#FFA500"] --- Cuidado ao usar esta chamada ao servidor, não consigo garantir que não vá ser descontada uma licença[/COLOR]
    [COLOR="#00FF00"]https://45.248.86.44/dpt/api/chip_with_sn_production?key=[usar_key_valida]&chip_sn=ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==&successed=1[/COLOR]
    Resposta:
    [COLOR="#FFA500"]   {  
           "producted": [numero de licenças gastas],
           "number": 30,
           "successed": 1
       }[/COLOR]
  6. Convertem o numero de serie do chip encriptado em bytes
  7. Enviam à box por porta serie o comando "burnsn 8 64 32" + Bytes do numero de serie do chip encriptado

Tentei descompilar a "Mp_Serial.dll" para perceber como assinam o numero de serie do chip mas sem sucesso, sei que está escrita em C mas ainda não consegui ter código legível.
Então segui a estratégia de a usar tal como está, para isso escrevi um script em python que simula o processo descrito acima e tudo bate certo.

Código:
import sys
import os
path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(path)
from ctypes import *
import json
import random
import binascii
import string
import base64
import time

SN_SIZE = 8
DEGEST_SIZE = 32

def main():
    libfile = os.getcwd() + '/Mp_Serial.dll'
    serial = CDLL(libfile)
    serial.sign_chip_sn.argtypes = [c_char_p, c_char_p, c_uint32, c_void_p]
    
    ## colar hex da resposta ao getsn8
    #getsn8 = '47 53 4E AA 14 38 15 AB 03 03 00 00'
    getsn8 = '47 53 4e aa 10 28 91 2a 2a 02 00 00'
    
    getsn8 = bytes.fromhex(getsn8)
    chipsn = getsn8.strip()[-SN_SIZE:]
    print('\n chipsn hex')
    print(chipsn.hex())

    chipsn_sign = ''
    data_in = c_char_p(chipsn)
    in_size = c_uint32(len(chipsn))
    out_size = c_uint32(in_size.value + DEGEST_SIZE)
    data_out = create_string_buffer(out_size.value)
    if 0 == serial.sign_chip_sn(data_in, data_out, in_size, byref(out_size)):
        chipsn_sign = string_at(data_out, out_size.value)
    else:
        print('Error: request_key_data sign chip sn failed!')
        return
    print('\n chipsn_sign hex')
    print(chipsn_sign.hex())

    chipsn_sign = base64.b64encode(chipsn_sign)
    print('\n chipsn_sign base64')
    print(chipsn_sign.decode("utf-8"))

    ## colar aqui e_chip_sn vindo do servidor da solovox
    ## https://45.248.86.44/dpt/api/chip_with_sn_production?key=[usar_key_valida]&chip_sn=ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==&successed=0
    #   {
    #       "echipsn": "ECiRKioCAAALhJGTYhdaMJbi0AzUD8WYJeObNo4gjK74duwoEN9esSWXuymilX8Z8vPFGojxJsll4Zs3CIkvWcHw0BhTMnSNlpBin2xJnj7C/1yAR5ZG/VMJDO9yH5AOxHcXC0Qv2Dc="
    #   }
    #   {
    #       "echipsn": "ECiRKioCAAAxznLQijCGavfSMoeLwTEYAE5ixr+DBVXPDRoDFkNr92Qv3Ya7suuiCWm2MrHWNh8bcxynlPwnkBBSVu2iQMP144KoCGqQYZ4/3Qcg0lziXcJf6m6P3H0GINt2syla+zk="
    #   }
    #   {   
    #       "echipsn": "ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0="
    #   }
    e_chip_sn = 'ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0='
    print('\n e_chip_sn base64')
    print(e_chip_sn)
    e_chip_sn = base64.b64decode(e_chip_sn)
    print('\n e_chip_sn hex')
    print(e_chip_sn.hex())

    len_e_chip_sn = len(e_chip_sn) - SN_SIZE - DEGEST_SIZE
    print('\n len_e_chip_sn')
    print(len_e_chip_sn)

    print('\n COMANDO BURN hex')
    print((bytes('\x0Aburnsn %s %s %s\x0A'%(SN_SIZE, len_e_chip_sn, DEGEST_SIZE), 'utf-8')+e_chip_sn).hex())

if __name__ == '__main__':
  main()

Ao correr o script para box (47 53 4e aa 10 28 91 2a 2a 02 00 00) do Diogovictoriano temos:
Código:
 chipsn hex
1028912a2a020000

 chipsn_sign hex
1028912a2a0200006fd3525d956c1264c72612246748d687321b0b40d27238853c344568adbd6a32

 chipsn_sign base64
ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==

 e_chip_sn base64
ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0=

 e_chip_sn hex
1028912a2a02000026003e7a2df033806887ecc38cbeb28204e2b009fde33633fb7070f7221360f061f29ef29efb22d73d71ebc26eb18c46f335dca7fdfd1d3d34565eb48c49ff585568eb47184abd414aba8ec7a410a06f2cf67d1ff60fb0f27f0d9347a45b16bd

 len_e_chip_sn
64

 COMANDO BURN hex
0a6275726e736e20382036342033320a1028912a2a02000026003e7a2df033806887ecc38cbeb28204e2b009fde33633fb7070f7221360f061f29ef29efb22d73d71ebc26eb18c46f335dca7fdfd1d3d34565eb48c49ff585568eb47184abd414aba8ec7a410a06f2cf67d1ff60fb0f27f0d9347a45b16bd

Já dominamos o processo deles, só o e_chip_sn não bate certo com os sniffings mas é normal porque a cifra é dinâmica.
Vou continuar a trabalhar no sentido de quebrar a cifra vinda do servidor.

Podemos testar se podemos usar uma key para todas as autenticações porque enviamos "successed=0" quando interrogamos o servidor para obter o numero de serie do chip encriptado.
Para tal preciso que partilhem o numero de serie de uma box que não esteja autenticada.
Depois gero o comando burnsn para a autenticar e testamos se desconta uma licença ou não.
Alguém consegue um numero de serie de uma box que não esteja autenticada?
 

Diogovictoriano

GF Bronze
Entrou
Jun 30, 2018
Mensagens
25
Gostos Recebidos
0
Tenho boas noticias aqui deixo os progressos.

Estive analisar o processo usado pela solovox e já o percebi todo.
O que fazem é o seguinte (deixo o processo todo para que fique documentado):
  1. Vão buscar à box o numero de serie do chip pela porta serie com o comando "getsn 8" (são os 8 Bytes menos significativos)
  2. Assinam o numero de serie do chip com o método sign_chip_sn(c_char_p, c_char_p, c_uint32, c_void_p) da biblioteca "Mp_Serial.dll"
  3. Convertem o numero de serie do chip assinado para base64
  4. Enviam ao servidor de licenças o numero de serie do chip assinado e em base64
  5. O servidor de licenças devolve o numero de serie do chip encriptado e em base64
    Estou a tentar descobrir o algoritmo que usam para cifrar o numero de serie do chip assinado.
    Usa coisa que sei é que usam a data (timestamp) no algoritmo porque a resposta muda se fizermos vários pedidos.
    Outra coisa boa é que se enviar pedidos com "successed=0" parece-me que não são descontadas licenças
    Ou será apenas porque está a ser utilizado um numero de serie que já foi autenticado?
    Código:
    [COLOR="#00FF00"]https://45.248.86.44/dpt/api/chip_with_sn_production?key=[COLOR="#FF0000"][usar_key_valida][/COLOR]&chip_sn=ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==&successed=0[/COLOR]
    Resposta 1:
    [COLOR="#FFA500"]   {
          "echipsn": "ECiRKioCAAALhJGTYhdaMJbi0AzUD8WYJeObNo4gjK74duwoEN9esSWXuymilX8Z8vPFGojxJsll4Zs3CIkvWcHw0BhTMnSNlpBin2xJnj7C/1yAR5ZG/VMJDO9yH5AOxHcXC0Qv2Dc="
       }[/COLOR]
    
    Resposta 2:
    [COLOR="#FFA500"]   {
           "echipsn": "ECiRKioCAAAxznLQijCGavfSMoeLwTEYAE5ixr+DBVXPDRoDFkNr92Qv3Ya7suuiCWm2MrHWNh8bcxynlPwnkBBSVu2iQMP144KoCGqQYZ4/3Qcg0lziXcJf6m6P3H0GINt2syla+zk="
       }[/COLOR]
    
    Resposta 3:
    [COLOR="#FFA500"]   {  
           "echipsn": "ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0="
       }[/COLOR]
    
    [COLOR="#FF0000"]ATENÇÃO[/COLOR][COLOR="#FFA500"] --- Cuidado ao usar esta chamada ao servidor, não consigo garantir que não vá ser descontada uma licença[/COLOR]
    [COLOR="#00FF00"]https://45.248.86.44/dpt/api/chip_with_sn_production?key=[usar_key_valida]&chip_sn=ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==&successed=1[/COLOR]
    Resposta:
    [COLOR="#FFA500"]   {  
           "producted": [numero de licenças gastas],
           "number": 30,
           "successed": 1
       }[/COLOR]
  6. Convertem o numero de serie do chip encriptado em bytes
  7. Enviam à box por porta serie o comando "burnsn 8 64 32" + Bytes do numero de serie do chip encriptado

Tentei descompilar a "Mp_Serial.dll" para perceber como assinam o numero de serie do chip mas sem sucesso, sei que está escrita em C mas ainda não consegui ter código legível.
Então segui a estratégia de a usar tal como está, para isso escrevi um script em python que simula o processo descrito acima e tudo bate certo.

Código:
import sys
import os
path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(path)
from ctypes import *
import json
import random
import binascii
import string
import base64
import time

SN_SIZE = 8
DEGEST_SIZE = 32

def main():
    libfile = os.getcwd() + '/Mp_Serial.dll'
    serial = CDLL(libfile)
    serial.sign_chip_sn.argtypes = [c_char_p, c_char_p, c_uint32, c_void_p]
    
    ## colar hex da resposta ao getsn8
    #getsn8 = '47 53 4E AA 14 38 15 AB 03 03 00 00'
    getsn8 = '47 53 4e aa 10 28 91 2a 2a 02 00 00'
    
    getsn8 = bytes.fromhex(getsn8)
    chipsn = getsn8.strip()[-SN_SIZE:]
    print('\n chipsn hex')
    print(chipsn.hex())

    chipsn_sign = ''
    data_in = c_char_p(chipsn)
    in_size = c_uint32(len(chipsn))
    out_size = c_uint32(in_size.value + DEGEST_SIZE)
    data_out = create_string_buffer(out_size.value)
    if 0 == serial.sign_chip_sn(data_in, data_out, in_size, byref(out_size)):
        chipsn_sign = string_at(data_out, out_size.value)
    else:
        print('Error: request_key_data sign chip sn failed!')
        return
    print('\n chipsn_sign hex')
    print(chipsn_sign.hex())

    chipsn_sign = base64.b64encode(chipsn_sign)
    print('\n chipsn_sign base64')
    print(chipsn_sign.decode("utf-8"))

    ## colar aqui e_chip_sn vindo do servidor da solovox
    ## https://45.248.86.44/dpt/api/chip_with_sn_production?key=[usar_key_valida]&chip_sn=ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==&successed=0
    #   {
    #       "echipsn": "ECiRKioCAAALhJGTYhdaMJbi0AzUD8WYJeObNo4gjK74duwoEN9esSWXuymilX8Z8vPFGojxJsll4Zs3CIkvWcHw0BhTMnSNlpBin2xJnj7C/1yAR5ZG/VMJDO9yH5AOxHcXC0Qv2Dc="
    #   }
    #   {
    #       "echipsn": "ECiRKioCAAAxznLQijCGavfSMoeLwTEYAE5ixr+DBVXPDRoDFkNr92Qv3Ya7suuiCWm2MrHWNh8bcxynlPwnkBBSVu2iQMP144KoCGqQYZ4/3Qcg0lziXcJf6m6P3H0GINt2syla+zk="
    #   }
    #   {   
    #       "echipsn": "ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0="
    #   }
    e_chip_sn = 'ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0='
    print('\n e_chip_sn base64')
    print(e_chip_sn)
    e_chip_sn = base64.b64decode(e_chip_sn)
    print('\n e_chip_sn hex')
    print(e_chip_sn.hex())

    len_e_chip_sn = len(e_chip_sn) - SN_SIZE - DEGEST_SIZE
    print('\n len_e_chip_sn')
    print(len_e_chip_sn)

    print('\n COMANDO BURN hex')
    print((bytes('\x0Aburnsn %s %s %s\x0A'%(SN_SIZE, len_e_chip_sn, DEGEST_SIZE), 'utf-8')+e_chip_sn).hex())

if __name__ == '__main__':
  main()

Ao correr o script para box (47 53 4e aa 10 28 91 2a 2a 02 00 00) do Diogovictoriano temos:
Código:
 chipsn hex
1028912a2a020000

 chipsn_sign hex
1028912a2a0200006fd3525d956c1264c72612246748d687321b0b40d27238853c344568adbd6a32

 chipsn_sign base64
ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==

 e_chip_sn base64
ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0=

 e_chip_sn hex
1028912a2a02000026003e7a2df033806887ecc38cbeb28204e2b009fde33633fb7070f7221360f061f29ef29efb22d73d71ebc26eb18c46f335dca7fdfd1d3d34565eb48c49ff585568eb47184abd414aba8ec7a410a06f2cf67d1ff60fb0f27f0d9347a45b16bd

 len_e_chip_sn
64

 COMANDO BURN hex
0a6275726e736e20382036342033320a1028912a2a02000026003e7a2df033806887ecc38cbeb28204e2b009fde33633fb7070f7221360f061f29ef29efb22d73d71ebc26eb18c46f335dca7fdfd1d3d34565eb48c49ff585568eb47184abd414aba8ec7a410a06f2cf67d1ff60fb0f27f0d9347a45b16bd

Já dominamos o processo deles, só o e_chip_sn não bate certo com os sniffings mas é normal porque a cifra é dinâmica.
Vou continuar a trabalhar no sentido de quebrar a cifra vinda do servidor.

Podemos testar se podemos usar uma key para todas as autenticações porque enviamos "successed=0" quando interrogamos o servidor para obter o numero de serie do chip encriptado.
Para tal preciso que partilhem o numero de serie de uma box que não esteja autenticada.
Depois gero o comando burnsn para a autenticar e testamos se desconta uma licença ou não.
Alguém consegue um numero de serie de uma box que não esteja autenticada?

Eu arranjo :) logo ou amanhã já devo conseguir isso ;)
 

Qu4k3

Super-Moderador
Team GForum
Entrou
Abr 9, 2009
Mensagens
214
Gostos Recebidos
137
Tenho boas noticias aqui deixo os progressos.

Estive analisar o processo usado pela solovox e já o percebi todo.
O que fazem é o seguinte (deixo o processo todo para que fique documentado):
  1. Vão buscar à box o numero de serie do chip pela porta serie com o comando "getsn 8" (são os 8 Bytes menos significativos)
  2. Assinam o numero de serie do chip com o método sign_chip_sn(c_char_p, c_char_p, c_uint32, c_void_p) da biblioteca "Mp_Serial.dll"
  3. Convertem o numero de serie do chip assinado para base64
  4. Enviam ao servidor de licenças o numero de serie do chip assinado e em base64
  5. O servidor de licenças devolve o numero de serie do chip encriptado e em base64
    Estou a tentar descobrir o algoritmo que usam para cifrar o numero de serie do chip assinado.
    Usa coisa que sei é que usam a data (timestamp) no algoritmo porque a resposta muda se fizermos vários pedidos.
    Outra coisa boa é que se enviar pedidos com "successed=0" parece-me que não são descontadas licenças
    Ou será apenas porque está a ser utilizado um numero de serie que já foi autenticado?
    Código:
    [COLOR="#00FF00"]https://45.248.86.44/dpt/api/chip_with_sn_production?key=[COLOR="#FF0000"][usar_key_valida][/COLOR]&chip_sn=ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==&successed=0[/COLOR]
    Resposta 1:
    [COLOR="#FFA500"]   {
          "echipsn": "ECiRKioCAAALhJGTYhdaMJbi0AzUD8WYJeObNo4gjK74duwoEN9esSWXuymilX8Z8vPFGojxJsll4Zs3CIkvWcHw0BhTMnSNlpBin2xJnj7C/1yAR5ZG/VMJDO9yH5AOxHcXC0Qv2Dc="
       }[/COLOR]
    
    Resposta 2:
    [COLOR="#FFA500"]   {
           "echipsn": "ECiRKioCAAAxznLQijCGavfSMoeLwTEYAE5ixr+DBVXPDRoDFkNr92Qv3Ya7suuiCWm2MrHWNh8bcxynlPwnkBBSVu2iQMP144KoCGqQYZ4/3Qcg0lziXcJf6m6P3H0GINt2syla+zk="
       }[/COLOR]
    
    Resposta 3:
    [COLOR="#FFA500"]   {  
           "echipsn": "ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0="
       }[/COLOR]
    
    [COLOR="#FF0000"]ATENÇÃO[/COLOR][COLOR="#FFA500"] --- Cuidado ao usar esta chamada ao servidor, não consigo garantir que não vá ser descontada uma licença[/COLOR]
    [COLOR="#00FF00"]https://45.248.86.44/dpt/api/chip_with_sn_production?key=[usar_key_valida]&chip_sn=ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==&successed=1[/COLOR]
    Resposta:
    [COLOR="#FFA500"]   {  
           "producted": [numero de licenças gastas],
           "number": 30,
           "successed": 1
       }[/COLOR]
  6. Convertem o numero de serie do chip encriptado em bytes
  7. Enviam à box por porta serie o comando "burnsn 8 64 32" + Bytes do numero de serie do chip encriptado

Tentei descompilar a "Mp_Serial.dll" para perceber como assinam o numero de serie do chip mas sem sucesso, sei que está escrita em C mas ainda não consegui ter código legível.
Então segui a estratégia de a usar tal como está, para isso escrevi um script em python que simula o processo descrito acima e tudo bate certo.

Código:
import sys
import os
path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(path)
from ctypes import *
import json
import random
import binascii
import string
import base64
import time

SN_SIZE = 8
DEGEST_SIZE = 32

def main():
    libfile = os.getcwd() + '/Mp_Serial.dll'
    serial = CDLL(libfile)
    serial.sign_chip_sn.argtypes = [c_char_p, c_char_p, c_uint32, c_void_p]
    
    ## colar hex da resposta ao getsn8
    #getsn8 = '47 53 4E AA 14 38 15 AB 03 03 00 00'
    getsn8 = '47 53 4e aa 10 28 91 2a 2a 02 00 00'
    
    getsn8 = bytes.fromhex(getsn8)
    chipsn = getsn8.strip()[-SN_SIZE:]
    print('\n chipsn hex')
    print(chipsn.hex())

    chipsn_sign = ''
    data_in = c_char_p(chipsn)
    in_size = c_uint32(len(chipsn))
    out_size = c_uint32(in_size.value + DEGEST_SIZE)
    data_out = create_string_buffer(out_size.value)
    if 0 == serial.sign_chip_sn(data_in, data_out, in_size, byref(out_size)):
        chipsn_sign = string_at(data_out, out_size.value)
    else:
        print('Error: request_key_data sign chip sn failed!')
        return
    print('\n chipsn_sign hex')
    print(chipsn_sign.hex())

    chipsn_sign = base64.b64encode(chipsn_sign)
    print('\n chipsn_sign base64')
    print(chipsn_sign.decode("utf-8"))

    ## colar aqui e_chip_sn vindo do servidor da solovox
    ## https://45.248.86.44/dpt/api/chip_with_sn_production?key=[usar_key_valida]&chip_sn=ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==&successed=0
    #   {
    #       "echipsn": "ECiRKioCAAALhJGTYhdaMJbi0AzUD8WYJeObNo4gjK74duwoEN9esSWXuymilX8Z8vPFGojxJsll4Zs3CIkvWcHw0BhTMnSNlpBin2xJnj7C/1yAR5ZG/VMJDO9yH5AOxHcXC0Qv2Dc="
    #   }
    #   {
    #       "echipsn": "ECiRKioCAAAxznLQijCGavfSMoeLwTEYAE5ixr+DBVXPDRoDFkNr92Qv3Ya7suuiCWm2MrHWNh8bcxynlPwnkBBSVu2iQMP144KoCGqQYZ4/3Qcg0lziXcJf6m6P3H0GINt2syla+zk="
    #   }
    #   {   
    #       "echipsn": "ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0="
    #   }
    e_chip_sn = 'ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0='
    print('\n e_chip_sn base64')
    print(e_chip_sn)
    e_chip_sn = base64.b64decode(e_chip_sn)
    print('\n e_chip_sn hex')
    print(e_chip_sn.hex())

    len_e_chip_sn = len(e_chip_sn) - SN_SIZE - DEGEST_SIZE
    print('\n len_e_chip_sn')
    print(len_e_chip_sn)

    print('\n COMANDO BURN hex')
    print((bytes('\x0Aburnsn %s %s %s\x0A'%(SN_SIZE, len_e_chip_sn, DEGEST_SIZE), 'utf-8')+e_chip_sn).hex())

if __name__ == '__main__':
  main()

Ao correr o script para box (47 53 4e aa 10 28 91 2a 2a 02 00 00) do Diogovictoriano temos:
Código:
 chipsn hex
1028912a2a020000

 chipsn_sign hex
1028912a2a0200006fd3525d956c1264c72612246748d687321b0b40d27238853c344568adbd6a32

 chipsn_sign base64
ECiRKioCAABv01JdlWwSZMcmEiRnSNaHMhsLQNJyOIU8NEVorb1qMg==

 e_chip_sn base64
ECiRKioCAAAmAD56LfAzgGiH7MOMvrKCBOKwCf3jNjP7cHD3IhNg8GHynvKe+yLXPXHrwm6xjEbzNdyn/f0dPTRWXrSMSf9YVWjrRxhKvUFKuo7HpBCgbyz2fR/2D7Dyfw2TR6RbFr0=

 e_chip_sn hex
1028912a2a02000026003e7a2df033806887ecc38cbeb28204e2b009fde33633fb7070f7221360f061f29ef29efb22d73d71ebc26eb18c46f335dca7fdfd1d3d34565eb48c49ff585568eb47184abd414aba8ec7a410a06f2cf67d1ff60fb0f27f0d9347a45b16bd

 len_e_chip_sn
64

 COMANDO BURN hex
0a6275726e736e20382036342033320a1028912a2a02000026003e7a2df033806887ecc38cbeb28204e2b009fde33633fb7070f7221360f061f29ef29efb22d73d71ebc26eb18c46f335dca7fdfd1d3d34565eb48c49ff585568eb47184abd414aba8ec7a410a06f2cf67d1ff60fb0f27f0d9347a45b16bd

Já dominamos o processo deles, só o e_chip_sn não bate certo com os sniffings mas é normal porque a cifra é dinâmica.
Vou continuar a trabalhar no sentido de quebrar a cifra vinda do servidor.

Podemos testar se podemos usar uma key para todas as autenticações porque enviamos "successed=0" quando interrogamos o servidor para obter o numero de serie do chip encriptado.
Para tal preciso que partilhem o numero de serie de uma box que não esteja autenticada.
Depois gero o comando burnsn para a autenticar e testamos se desconta uma licença ou não.
Alguém consegue um numero de serie de uma box que não esteja autenticada?

Bom trabalho.
Vou tentar arranjar uma box para teste.
 
Status
Não está aberto para novas respostas.
Topo