Este é o comando rabbitsign que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
rabbitsign - assinar aplicativos para calculadoras gráficas TI
SINOPSE
Rabbitsign [ opções ] [ -o arquivo de aplicativo ] [ -k arquivo-chave ] arquivo hexadecimal ...
Rabbitsign [ opções ] [ -k arquivo-chave ] -c arquivo hexadecimal ...
DESCRIÇÃO
Rabbitsign é uma implementação dos algoritmos de assinatura Rabin e RSA da Texas Instruments, como
usado nas calculadoras gráficas TI-73, TI-83 Plus, TI-84 Plus, TI-89 e TI-92 Plus.
Esses algoritmos são usados para assinar aplicativos e sistemas operacionais Flash para que o
calculadora pode reconhecê-los como válidos.
Rabbitsign, como os programas de assinatura oficial da Texas Instruments, precisa de uma chave privada (um par
de grandes números primos) para assinar aplicativos. Para que o aplicativo seja aceito, o
a chave pública correspondente (seu produto) deve estar presente na calculadora. A partir disso
escrita, o `` shareware '' número da chave privada 0104, usado para assinar aplicativos para o
TI-83 Plus e TI-84 Plus, estão disponíveis através do SDK da TI. Infelizmente, a assinatura do sistema operacional
chaves, bem como as chaves de assinatura de aplicativos para a TI-73, TI-89 e TI-92 Plus, não foram
lançado, o que significa que apenas TI pode assinar aplicativos e sistemas operacionais para essas calculadoras.
OPÇÕES
-a Tentar igualar a saída de Peter-Martijn Kuipers ' assinatura programa, para teste
finalidades. O arquivo de saída resultante terá terminação de linha no estilo Unix, e
portanto, não será compatível com todos os programas. Esta opção não é recomendada para
uso normal.
-b Suponha que os arquivos de entrada sejam arquivos binários brutos. Se esta opção não for fornecida, o arquivo
tipo é detectado automaticamente.
-c Não assine aplicativos; em vez disso, verifique se as assinaturas dos aplicativos especificados são
válido. O status de saída é 0 se todos os aplicativos forem válidos, 1 se um ou mais aplicativos falharem ou 2 se
há um erro não matemático.
-f Ignore os erros não fatais e force a assinatura do aplicativo, se possível. (Tudo
dessas mensagens existem por um motivo, no entanto, e as chances são de que, se seu aplicativo
gera qualquer um deles, ele também irá falhar na validação ou travar a calculadora.
Você foi avisado.)
-g Grave o arquivo de saída no formato GraphLink `` TIFL ''. (Por padrão e para histórico
motivos, aplicativos e sistemas operacionais para a TI-73 e TI-83 Plus são escritos em TI Hex simples
em vez disso, formate; você pode usar pacotexxk(1) para converter esses arquivos em formato TIFL.)
Os aplicativos e sistemas operacionais da TI-89 e TI-92 Plus são sempre escritos no formato TIFL. Ver
APLICAÇÃO ARQUIVO FORMATOS abaixo para obter mais informações.
-k arquivo-chave
Leia as chaves de assinatura e / ou validação do arquivo fornecido. Este arquivo deve estar em um
dos formatos usados pelas ferramentas SDK da TI. (Ver KEY ARQUIVO FORMATOS abaixo.) Por padrão,
Rabbitsign procura a chave nomeada no cabeçalho do aplicativo (por exemplo, 0104.key para
aplicativos `` shareware '' TI-83 Plus.)
-K id Procure a chave com o dado id (um pequeno número hexadecimal) em vez do
ID especificado no cabeçalho do aplicativo.
-n Tente assinar o programa como está, sem modificar o cabeçalho. (Esta opção pode
não produz um arquivo que a calculadora realmente aceite; é destinado a
teste e assinaturas para fins especiais, não para assinatura de app comum.)
-o arquivo de saída
Especifique o arquivo de saída. Por padrão, os arquivos de saída são nomeados com o nome de
o arquivo de entrada, removendo qualquer sufixo e adicionando um sufixo `.app 'ou` .8xk' dependendo
em se -g é especificado. (Se o arquivo de entrada já tiver um `.app 'ou` .8xk'
sufixo, `-signed 'é inserido, então` myapp.8xk' torna-se `myapp-assinado.8xk '.)
Se `- 'for especificado como um arquivo de entrada, isso indica a entrada padrão, e o
o resultado com sinal é gravado por padrão na saída padrão.
-p Corrija o cabeçalho das páginas do aplicativo. Isso não é feito por padrão porque uma página incorreta
o cabeçalho é geralmente um sinal de um problema muito mais sério.
-P Se a aplicação termina perto de um limite de página, adicione uma página adicional para manter
a assinatura. (Assinaturas de aplicativos na TI-73 e TI-83 Plus não são permitidas
para ultrapassar o limite de uma página.) Lembre-se de que isso é um grande desperdício, pois
consome 16384 bytes de Flash para armazenar aproximadamente 69 bytes de dados; se seu
aplicativo está nesta situação, você deve considerar tentar reduzir seu tamanho
ligeiramente, ou alternativamente, adicionando mais dados para aproveitar as vantagens do Flash extra
Disputas de Comerciais.
-q Não imprima mensagens de aviso não fatais.
-r Assinar novamente um aplicativo assinado anteriormente (ou seja, descartar a assinatura anterior antes
assinatura.)
-R n Para assinar os aplicativos TI-73 e TI-83 Plus, use o número raiz n (0 ≤ n ≤ 3) em vez
do que o padrão, o número raiz 0. Todas as quatro raízes são válidas, embora distintas,
assinaturas, portanto, esta opção é principalmente para depuração.
A raiz 0 é calculada de modo a ser congruente com m^ [(p+1) / 4] módulo p e m^ [(q+1) / 4]
módulo q. A raiz 1 é a negação do módulo da raiz 0 p, root 2 o módulo de negação q,
e a raiz 3, a negação, ambos módulo p e módulo q.
Esta opção não tem efeito ao assinar sistemas operacionais ou aplicativos TI-89/92 Plus, que
use o algoritmo RSA em vez de Rabin.
-t tipo
Especifique explicitamente o tipo de programa (por exemplo, `8xk 'para uma aplicação TI-83 Plus,
ou `73u 'para um sistema operacional TI-73.) O comportamento padrão é inferir o
tipo de programa a partir do nome do arquivo de entrada. (Se o arquivo de entrada não tiver um
sufixo reconhecido, o tipo é adivinhado com base no conteúdo do programa
cabeçalho.)
-u Desative a detecção automática de página e presuma que os arquivos de entrada não estão classificados. Isso significa
que os limites da página devem ser definidos explicitamente. (Ver APLICAÇÃO ARQUIVO FORMATOS
abaixo.) Esta opção não tem efeito no binário (-b) modo.
-v Seja prolixo; imprima os nomes dos aplicativos e suas assinaturas à medida que são assinados.
Use -vv para obter informações mais detalhadas sobre o cálculo.
--Socorro Imprima um resumo das opções.
--versão
Imprima as informações da versão.
APLICAÇÃO ARQUIVO FORMATOS
Intel Feitiço
Intel hex é um formato de arquivo ASCII padrão usado por muitos programadores PROM e um comum
formato de saída do assembler. Cada linha (ou `` registro '') consiste no seguinte:
:NNAAAATTDDDDDD ... CC
: O primeiro caractere da linha é dois pontos; isso é usado apenas para identificar o
formato.
NN Os próximos dois caracteres são o número de bytes de dados nesta linha, escritos em
hexadecimal ASCII maiúsculo.
AAAA Os próximos quatro dígitos são o endereço dos dados nesta linha. Rabbitsign só
olha para os 14 bits baixos desse valor.
TT Esses dois dígitos identificam o `` tipo '' do registro. Hex da Intel define vários
tipos de registro para vários modelos de endereçamento; os únicos tipos que são significativos para
As calculadoras TI são do tipo 00 (dados comuns) e 01 (fim do arquivo).
DD ... 2*NN seguem-se os dígitos hexadecimais, os dados reais.
CC Finalmente, a soma de verificação invertida é adicionada, de modo que somar todos os bytes no
linha dá um total de zero módulo 256. (Como uma extensão, Rabbitsign permite que você
use dois `Xs maiúsculos no lugar de uma soma de verificação.)
Uma vez que o endereço tem apenas 16 bits, este formato não pode representar aplicativos de forma inequívoca
maior que 64 kilobytes. Para permitir que aplicativos de várias páginas sejam criados, Rabbitsign
tenta detectar limites de página automaticamente, iniciando uma nova página para cada campo com
um endereço zero. Assim, para criar um aplicativo de várias páginas, você pode simplesmente concatenar vários aplicativos Intel
Arquivos hexadecimais, por exemplo
gato página0.hex página1.hex | coelhosign - -o complete.app
Isso só funcionará se os registros estiverem classificados corretamente em cada página. (Se o
assembler não gera registros em ordem, você mesmo pode classificar os campos usando um
comando como `sort -k1.8,1.9 -k1.4,1.7 '.)
Para desligar esta detecção automática de página, use o -u opção. Neste caso, você deve
definir limites de página explicitamente usando o formato TI Hex.
TI Feitiço
Hex `` TI '' é uma extensão para hex da Intel que fornece representação inequívoca de
aplicativos de várias páginas. Adiciona registros do formulário
: 0200000200NNCC
que indicam que os dados subsequentes são colocados no número da página relativa NN. (Tenha em mente
que a TI-83 e 84 Plus instalam aplicativos `` ao contrário '', portanto, se a página 0 relativa for
armazenado na página absoluta 69, a página relativa 1 será armazenada na página absoluta 68, e assim
adiante.)
Alguns montadores podem gerar dados de várias páginas usando registros do tipo 4 em vez do tipo 2;
Rabbitsign trata-os como equivalentes ao tipo 2.
Para compatibilidade com outro software que faz certas suposições sobre o formato,
Rabbitsign irá escrever 32 bytes por linha, e irá terminar as linhas com um carro ao estilo DOS
retorno e alimentação de linha.
Link do gráfico TIFL
O formato GraphLink padrão (mais recente) consiste em um cabeçalho binário de 78 bytes que é adicionado
para o início de um arquivo hexadecimal ou binário. O conteúdo deste cabeçalho é o seguinte:
0x00-07
A string `** TIFL ** '.
0x08 O número da versão principal (`` App ID '') do aplicativo.
0x09 O número da versão secundária (`` App Build '') do aplicativo.
0x0A Flags; aparentemente com a intenção de indicar se o conteúdo do arquivo é binário
(0) ou TI Hex (1). Este valor não é, entretanto, definido de forma consistente por outro software.
0x0B campo `` Tipo de objeto ''; aparentemente indica algo sobre o tipo de dados. Definir
para 0x88 na maioria dos arquivos TI-73 e TI-83 Plus; definido como 0 nos arquivos TI-89 e TI-92 Plus.
0x0C-0F
Mês decimal com codificação binária (um byte), dia (um byte) e ano (dois bytes, grande
endian) quando o aplicativo foi assinado.
0x10 Comprimento do nome do aplicativo.
0x11-18
Nome do aplicativo.
0x19-2F
Reservado, sempre definido como zero.
0x30 Tipo de calculadora (0x73 = TI-83 Plus, 0x74 = TI-73, 0x88 = TI-92 Plus, 0x98 = TI-89.)
0x31 Tipo de dados (0x23 = atualização do sistema operacional, 0x24 = aplicativo, 0x25 = certificado.)
0x32-49
Reservado, sempre definido como zero.
0x4A-4D
Pequeno comprimento endian dos seguintes dados (o comprimento do arquivo hex, não o
calculadora tamanho do aplicativo.)
Também existem arquivos TIFL de várias partes, que consistem simplesmente em dois ou mais arquivos TIFL
concatentados juntos. (Por exemplo, um contrato de licença de software ou um arquivo de certificado
pode ser anexado a um aplicativo.) Rabbitsign lida com esses arquivos de forma limitada:
irá ler apenas a primeira seção com um tipo de dados reconhecido, ignorando quaisquer outros dados em
o arquivo. Rabbitsign não pode criar arquivos TIFL de várias partes, mas eles podem ser criados usando
pacotexxk(1) (ou simplesmente usando gato(1).)
Binário
Rabbitsign também pode ler arquivos binários de aplicativos; eles são considerados contíguos, então, quando
assinar um aplicativo de várias páginas, cada página, exceto a última, deve ser preenchida até 16k.
KEY ARQUIVO FORMATOS
Os arquivos de chave contêm os dados necessários para assinar e validar aplicativos. (A porção
do arquivo de chave usado para validação é conhecido como a chave `` pública ''; a parte usada para
a assinatura é a chave `` privada ''. Apenas a chave pública é armazenada na própria calculadora.)
Os arquivos-chave oficiais da TI vêm em duas variedades, conhecidas como formatos `` Rabin '' e `` RSA ''.
Observe que Rabbitsign atualmente suporta o uso de arquivos-chave do tipo Rabin para gerar RSA
assinaturas, mas não o contrário.
Rabin chave formato
O formato de arquivo da chave Rabin é normalmente usado para assinatura de aplicativos TI-73 e TI-83 Plus
chaves. Consiste em três linhas, cada uma contendo um grande número inteiro. A primeira linha é a
chave pública, n; o segundo e o terceiro são seus dois fatores, p e q.
Cada linha começa com dois dígitos hexadecimais, fornecendo o comprimento do número em bytes,
seguido pelos próprios bytes, escritos em hexadecimal na ordem little-endian.
RSA chave formato
O formato de arquivo de chave RSA é normalmente usado para assinatura de aplicativos TI-89 e TI-92 Plus
chaves. Consiste em três linhas: o ID da chave, a chave pública n, e o expoente de assinatura
d. (d é o inverso do expoente de validação, 17, módulo ϕ (n), e assim calculando d
é computacionalmente equivalente a fatorar n.)
O ID da chave é um número hexadecimal curto, que deve corresponder ao conteúdo do 811x
campo de cabeçalho. Os números n e d são escritos como números inteiros grandes, como na chave de Rabin
formato.
Use rabbitsign online usando serviços onworks.net