Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 Rabbitsign 명령입니다.
프로그램:
이름
Rabbitsign - TI 그래프 계산기용 서명 애플리케이션
개요
래빗 사인 [ 옵션 ] [ -o 앱파일 ] [ -k 키 파일 ] 헥스파일 ...
래빗 사인 [ 옵션 ] [ -k 키 파일 ] -c 헥스파일 ...
기술
래빗 사인 Texas Instruments의 Rabin 및 RSA 서명 알고리즘을 구현한 것입니다.
TI-73, TI-83 Plus, TI-84 Plus, TI-89 및 TI-92 Plus 그래프 계산기에 사용됩니다.
이러한 알고리즘은 Flash 애플리케이션과 운영 체제에 서명하는 데 사용됩니다.
계산기는 이를 유효한 것으로 인식할 수 있습니다.
래빗 사인, Texas Instruments의 공식 서명 프로그램과 마찬가지로 개인 키(한 쌍)가 필요합니다.
큰 소수)를 사용하여 앱에 서명합니다. 앱이 승인되려면
해당 공개 키(해당 제품)가 계산기에 있어야 합니다. 이로서
쓰기, ``셰어웨어'' 개인 키 번호 0104는 응용 프로그램 서명에 사용됩니다.
TI-83 Plus 및 TI-84 Plus는 TI SDK를 통해 제공됩니다. 안타깝게도 OS 서명이
TI-73, TI-89 및 TI-92 Plus의 키와 앱 서명 키는 아직
이는 TI만이 해당 계산기용 앱과 OS에 서명할 수 있음을 의미합니다.
옵션
-a Peter-Martijn Kuipers의 출력과 일치시키려는 시도 앱 사인 프로그램, 테스트용
목적. 결과 출력 파일은 Unix 스타일 줄 종료를 갖습니다.
따라서 모든 프로그램과 호환되지는 않습니다. 이 옵션은 권장되지 않습니다.
일반적인 사용.
-b 입력 파일이 원시 바이너리 파일이라고 가정합니다. 이 옵션을 지정하지 않으면 파일이
유형이 자동으로 감지됩니다.
-c 앱에 서명하지 마세요. 대신, 지정된 앱의 서명이 올바른지 확인하세요.
유효한. 종료 상태는 모든 앱이 유효하면 0, 하나 이상의 앱이 실패하면 1, 실패하면 2입니다.
수학적 오류가 없습니다.
-f 치명적이지 않은 오류는 무시하고 가능하면 애플리케이션에 강제로 서명하십시오. (모두
하지만 이러한 메시지 중 일부는 이유가 있어서 존재하며 앱이
그 중 하나를 생성하면 유효성 검사가 실패하거나 계산기가 충돌합니다.
경고를 받았습니다.)
-g GraphLink ``TIFL'' 형식으로 출력 파일을 작성합니다. (기본적으로 그리고 과거의 경우
이유, TI-73 및 TI-83 Plus용 앱과 OS는 일반 TI Hex로 작성되었습니다.
대신 형식을 지정하세요. 당신이 사용할 수있는 팩xxk(1) 이 파일을 TIFL 형식으로 변환합니다.)
TI-89 및 TI-92 Plus용 앱과 OS는 항상 TIFL 형식으로 작성됩니다. 보다
신청 FILE 형식 자세한 내용은 아래를 참조하세요.
-k 키 파일
지정된 파일에서 서명 및/또는 유효성 검사 키를 읽습니다. 이 파일은 다음 중 하나에 있어야 합니다.
TI의 SDK 도구에서 사용되는 형식 중 하나입니다. (보다 KEY FILE 형식 아래.) 기본적으로
래빗 사인 앱 헤더에 이름이 지정된 키를 검색합니다(예: 0104.key
``셰어웨어'' TI-83 Plus 앱.)
-K id 주어진 값으로 키를 검색하세요 id (작은 XNUMX진수)보다는
앱 헤더에 지정된 ID입니다.
-n 헤더를 수정하지 않고 있는 그대로 프로그램에 서명을 시도합니다. (이 옵션은
계산기가 실제로 허용할 파일을 생성하지 않습니다. 그것은을위한 것입니다
일반 앱 서명이 아닌 테스트 및 특수 목적 서명.)
-o 아웃파일
출력 파일을 지정합니다. 기본적으로 출력 파일의 이름은 다음의 이름을 따서 지정됩니다.
입력 파일에 접미사를 제거하고 '.app' 또는 '.8xk' 접미사를 추가합니다.
여부에 -g 지정됩니다. (입력 파일에 이미 `.app' 또는 `.8xk'가 있는 경우
접미사 `-signed'가 삽입되므로 `myapp.8xk'는 `myapp-signed.8xk'가 됩니다.)
'-'가 입력 파일로 지정되면 이는 표준 입력을 나타내고
서명된 결과는 기본적으로 표준 출력에 기록됩니다.
-p 앱 페이지 헤더를 수정합니다. 이는 잘못된 페이지 때문에 기본적으로 수행되지 않습니다.
헤더는 일반적으로 훨씬 더 심각한 문제의 신호입니다.
-P 애플리케이션이 페이지 경계 근처에서 끝나는 경우 추가 페이지를 추가하여 보관하세요.
서명. (TI-73 및 TI-83 Plus의 애플리케이션 서명은 허용되지 않습니다.
페이지 경계를 확장합니다.) 이는 매우 낭비적이라는 점을 명심하세요.
약 16384바이트의 데이터를 저장하기 위해 69바이트의 플래시를 사용합니다. 만약 당신의
응용 프로그램이 이 상황에 있으면 크기를 줄이는 것을 고려해야 합니다.
약간 또는 대안으로 추가 플래시를 활용하기 위해 더 많은 데이터를 추가합니다.
페이지.
-q 치명적이지 않은 경고 메시지를 인쇄하지 마십시오.
-r 이전에 서명한 앱에 다시 서명합니다(즉, 이전 서명을 삭제하기 전에
서명합니다.)
-R n TI-73 및 TI-83 Plus 애플리케이션에 서명하려면 루트 번호를 사용하세요. n (0 ≤ n ≤ 3) 오히려
기본값인 루트 번호 0과 다릅니다. 네 개의 루트는 모두 유효하지만 고유합니다.
서명이므로 이 옵션은 주로 디버깅용입니다.
루트 0은 다음과 일치하도록 계산됩니다. m^[(p+1)/4] 모듈로 p and m^[(q+1)/4]
모듈 q. 루트 1은 루트 0 모듈로의 부정입니다. p, 루트 2 부정 모듈로 q,
루트 3은 둘 다 모듈로의 부정입니다. p 그리고 모듈로 q.
이 옵션은 OS 또는 TI-89/92 Plus 애플리케이션에 서명할 때 효과가 없습니다.
Rabin 대신 RSA 알고리즘을 사용합니다.
-t 유형
프로그램 유형을 명시적으로 지정합니다(예: TI-8 Plus 애플리케이션의 경우 '83xk',
또는 TI-73 운영 체제의 경우 '73u'입니다.) 기본 동작은 다음을 추론하는 것입니다.
입력 파일 이름에서 프로그램 유형. (입력 파일에
인식된 접미사, 프로그램 내용을 기반으로 유형을 추측합니다.
머리글.)
-u 자동 페이지 감지를 비활성화하고 입력 파일이 정렬되지 않은 것으로 가정합니다. 이는 다음을 의미합니다.
페이지 경계는 명시적으로 정의되어야 합니다. (보다 신청 FILE 형식
아래.) 이 옵션은 바이너리(-b) 모드.
-v 장황하게 말하세요. 서명된 앱의 이름과 서명을 인쇄합니다.
-vv 계산에 대한 자세한 내용은 을 참조하세요.
--도움 옵션 요약을 인쇄하세요.
--번역
버전 정보를 인쇄합니다.
신청 FILE 형식
인텔 마녀
Intel hex는 많은 PROM 프로그래머가 사용하는 표준 ASCII 파일 형식이며 일반적인
어셈블러 출력 형식. 각 줄(또는 ``레코드'')은 다음으로 구성됩니다:
:NNAAAATTDDDDDD...CC
: 줄의 첫 번째 문자는 콜론입니다. 이는 단지
형식입니다.
NN 다음 두 문자는 이 줄의 데이터 바이트 수입니다.
대문자 ASCII XNUMX진수.
AAAA 다음 네 자리는 이 줄에 있는 데이터의 주소입니다. 래빗 사인 만
이 값의 하위 14비트를 살펴봅니다.
TT 이 두 자리 숫자는 기록의 '유형'을 식별합니다. 인텔 XNUMX진수는 여러 가지를 정의합니다.
다양한 주소 지정 모델에 대한 레코드 유형 의미 있는 유일한 유형
TI 계산기는 유형 00(일반 데이터)과 01(파일 끝)입니다.
DD... 2*NN XNUMX진수 뒤에는 실제 데이터가 표시됩니다.
CC 마지막으로 반전된 체크섬이 추가되어
라인은 총 256 모듈로 XNUMX을 제공합니다. (확장으로, 래빗 사인 당신을 허용합니다
체크섬 대신 두 개의 대문자 'X'를 사용하십시오.)
주소는 16비트에 불과하므로 이 형식은 애플리케이션을 명확하게 나타낼 수 없습니다.
64KB보다 큽니다. 다중 페이지 애플리케이션을 생성하려면, 래빗 사인
페이지 경계를 자동으로 감지하려고 시도하며 다음을 사용하여 각 필드에 대해 새 페이지를 시작합니다.
주소가 XNUMX입니다. 따라서 다중 페이지 앱을 만들려면 여러 Intel을 연결하면 됩니다.
XNUMX진수 파일(예:
고양이 페이지0.hex 페이지1.hex | Rabbitsign - -o 완료.app
이는 레코드가 각 페이지 내에서 올바르게 정렬된 경우에만 작동합니다. (만약
어셈블러는 레코드를 순서대로 생성하지 않으므로 다음을 사용하여 필드를 직접 정렬할 수 있습니다.
`sort -k1.8,1.9 -k1.4,1.7'과 같은 명령.)
이 자동 페이지 감지를 끄려면 -u 옵션. 이 경우에는 다음을 수행해야 합니다.
TI Hex 형식을 사용하여 페이지 경계를 명시적으로 정의합니다.
TI 마녀
``TI'' XNUMX진수는 Intel XNUMX진수에 대한 확장으로 다음의 명확한 표현을 제공합니다.
다중 페이지 앱. 양식의 레코드를 추가합니다.
: 0200000200NNCC
이는 후속 데이터가 상대 페이지 번호에 배치됨을 나타냅니다. NN. ( 명심하세요
TI-83 및 84 Plus는 애플리케이션을 '역방향'으로 설치하므로 상대 페이지 0이
절대 페이지 69에 저장되고, 상대 페이지 1은 절대 페이지 68에 저장됩니다.
앞으로.)
일부 어셈블러는 유형 4 대신 유형 2 레코드를 사용하여 다중 페이지 데이터를 생성할 수 있습니다.
래빗 사인 이를 유형 2와 동일하게 취급합니다.
형식에 대해 특정 가정을 하는 다른 소프트웨어와의 호환성을 위해
래빗 사인 한 줄에 32바이트를 쓰고 DOS 스타일 캐리지로 줄을 끝냅니다.
반환 및 줄 바꿈.
그래프링크 티플
표준(최신) GraphLink 형식은 추가된 78바이트 바이너리 헤더로 구성됩니다.
XNUMX진수 또는 바이너리 파일의 시작 부분에. 이 헤더의 내용은 다음과 같습니다.
0x00 - 07
문자열 `**TIFL**'.
0x08 애플리케이션의 주요 버전 번호(``App ID'')입니다.
0x09 애플리케이션의 부 버전 번호(``App Build'')입니다.
0x0A 플래그; 파일의 내용이 바이너리인지 여부를 나타내기 위한 것으로 보입니다.
(0) 또는 TI 1진수(XNUMX). 그러나 이 값은 다른 소프트웨어에서 일관되게 설정되지 않습니다.
0x0B ``객체 유형'' 필드; 분명히 데이터 유형에 대한 내용을 나타냅니다. 세트
대부분의 TI-0 및 TI-88 Plus 파일에서는 73x83로; TI-0 및 TI-89 Plus 파일에서는 92으로 설정됩니다.
0x0C-0F
바이너리 코드 십진수 월(XNUMX바이트), 일(XNUMX바이트), 연도(XNUMX바이트, 큰 숫자)
endian) 앱이 서명되었을 때.
0x10 앱 이름의 길이입니다.
0x11 - 18
앱의 이름입니다.
0x19-2F
예약되어 있으며 항상 XNUMX으로 설정됩니다.
0x30 계산기 유형(0x73 = TI-83 Plus, 0x74 = TI-73, 0x88 = TI-92 Plus, 0x98 = TI-89.)
0x31 데이터 유형(0x23 = OS 업그레이드, 0x24 = 애플리케이션, 0x25 = 인증서)
0x32 - 49
예약되어 있으며 항상 XNUMX으로 설정됩니다.
0x4A-4D
다음 데이터의 리틀 엔디안 길이(Hex 파일의 길이가 아닌
응용 프로그램의 계산기 크기입니다.)
단순히 두 개 이상의 TIFL 파일로 구성된 다중 부분 TIFL 파일도 있습니다.
함께 연결되었습니다. (예를 들어, 소프트웨어 라이센스 계약이나 인증서 파일
신청서에 첨부할 수 있습니다.) 래빗 사인 제한된 방식으로 이러한 파일을 처리합니다.
인식된 데이터 유형의 첫 번째 섹션만 읽고 다른 데이터는 무시합니다.
파일. 래빗 사인 여러 부분으로 구성된 TIFL 파일을 만들 수는 없지만 다음을 사용하여 만들 수 있습니다.
팩xxk(1) (또는 간단히 사용하여 방법(1).)
이진
래빗 사인 바이너리 앱 파일도 읽을 수 있습니다. 연속된 것으로 가정하므로,
여러 페이지로 구성된 앱에 서명하려면 마지막 페이지를 제외한 각 페이지를 16k로 채워야 합니다.
KEY FILE 형식
키 파일에는 애플리케이션 서명 및 유효성 검사에 필요한 데이터가 포함되어 있습니다. (부분
검증에 사용되는 키 파일은 ``공개'' 키로 알려져 있습니다. 에 사용되는 부분
서명은 '개인' 키입니다. 공개키만 계산기 자체에 저장됩니다.)
TI의 공식 키 파일은 'Rabin'' 및 'RSA'' 형식이라는 두 가지 종류로 제공됩니다.
참고 래빗 사인 현재 RSA 생성을 위해 Rabin 유형 키 파일 사용을 지원합니다.
서명을 하지만 그 반대는 아닙니다.
라빈 키 체재
Rabin 키 파일 형식은 일반적으로 TI-73 및 TI-83 Plus 애플리케이션 서명에 사용됩니다.
열쇠. 이는 각각 큰 정수를 포함하는 세 줄로 구성됩니다. 첫 번째 줄은
공개 키, n; 두 번째와 세 번째는 두 가지 요소입니다. p and q.
각 줄은 두 개의 XNUMX진수 숫자로 시작하여 숫자의 길이를 바이트 단위로 나타냅니다.
그 뒤에는 리틀 엔디안 순서로 XNUMX진수로 작성된 바이트 자체가 옵니다.
RSA 키 체재
RSA 키 파일 형식은 일반적으로 TI-89 및 TI-92 Plus 애플리케이션 서명에 사용됩니다.
열쇠. 키 ID, 공개 키의 세 줄로 구성됩니다. n및 서명 지수
d. (d 검증 지수 17의 역수, 모듈로 ф(n), 따라서 계산 d
계산적으로 인수분해와 동일합니다. n.)
키 ID는 짧은 811진수이며 XNUMXx의 내용과 일치해야 합니다.
헤더 필드. 숫자들 n and d Rabin 키에서와 같이 큰 정수로 작성됩니다.
형식입니다.
onworks.net 서비스를 사용하여 온라인으로 Rabbitsign을 사용하세요.