netmdocm
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
netmdocm [2009/06/16 01:45] – some info on maclists marcus | netmdocm [2010/06/09 07:35] – megadiscman | ||
---|---|---|---|
Line 166: | Line 166: | ||
ASN.1 Sequence with a data structure that is setup and manipulated by functions called through DICT 187 (these functions are in DICT 188). | ASN.1 Sequence with a data structure that is setup and manipulated by functions called through DICT 187 (these functions are in DICT 188). | ||
- | 30 80 | + | |
- | 02 02 03E9 | + | 02 02 03E9 |
- | 04 14 43EA428F71EE7B665D10752E85AB16E5A50C6249 ; MAC | + | 04 14 43EA428F71EE7B665D10752E85AB16E5A50C6249 ; MAC |
- | 04 14 638163B82C4E31810FBEE01B2E7FC25B879586E3 | + | 04 14 638163B82C4E31810FBEE01B2E7FC25B879586E3 |
- | 30 80 02 01 6B ; 17 (some time stamp) | + | 30 80 02 01 6B ; 17 (some time stamp) |
- | 02 04 48C2298F | + | 02 04 48C2298F |
- | 02 01 07 ; 7 == creation time of structure | + | 02 01 07 ; 7 == creation time of structure |
- | 02 04 48C2298F | + | 02 04 48C2298F |
- | 02 01 6D ; 109 | + | 02 01 6D ; 109 |
- | 02 01 00 | + | 02 01 00 |
- | 02 01 65 ; 101 | + | 02 01 65 ; 101 |
- | 04 14 C04B513EDE54342D709D0CB8621E646FDDCB345E | + | 04 14 C04B513EDE54342D709D0CB8621E646FDDCB345E |
- | 02 01 00 ; 0 == scrambled form of the maclist id == SalOmgId | + | 02 01 00 ; 0 == scrambled form of the maclist id == SalOmgId |
- | 04 14 010F50000004000000EFF3C3244C602635178457 | + | 04 14 010F50000004000000EFF3C3244C602635178457 |
- | 02 01 68 ; 104 | + | 02 01 68 ; 104 |
- | 02 02 1FD7 | + | 02 02 1FD7 |
- | 02 01 06 ; 6 == source name | + | 02 01 06 ; 6 == source name |
- | 04 15 72617720636F6E74656E7420696D706F7274696E67 | + | 04 15 72617720636F6E74656E7420696D706F7274696E67 |
- | | + | |
- | 02 01 67 ; 103 == flags? | + | 02 01 67 ; 103 == flags? |
- | 02 01 02 | + | 02 01 02 |
- | 02 01 01 ; 1 == max checkout? | + | 02 01 01 ; 1 == max checkout? |
- | 02 01 03 | + | 02 01 03 |
- | 02 01 08 ; 8 == checkout count? | + | 02 01 08 ; 8 == checkout count? |
- | 02 01 03 | + | 02 01 03 |
- | 02 01 05 ; 5 == flags (1|2|4) | + | 02 01 05 ; 5 == flags (1|2|4) |
- | 02 01 04 | + | 02 01 04 |
- | 0000 ; End array | + | 0000 ; End array |
- | 30 80 0000 ; Empty array | + | 30 80 0000 ; Empty array |
- | 0000 ; End array | + | 0000 ; End array |
===== maclist1.dat ===== | ===== maclist1.dat ===== | ||
Line 1063: | Line 1063: | ||
} ; | } ; | ||
- | ===== nc_omgtomsa(4) ===== | + | ===== nc_omgtomsa(0) ===== |
/* | /* | ||
Line 1157: | Line 1157: | ||
{ | { | ||
0: short int 1001b; | 0: short int 1001b; | ||
- | 1: blob_t key_or_id_20; | + | 1: blob_t key_or_id_20; |
- | 2: blob_t key_or_id_20; | + | // |
- | 3: struct { // 26 | + | // |
+ | 2: blob_t key_or_id_20; | ||
+ | // | ||
+ | 3: struct { // 26 | ||
dd 6Bh const_107 | dd 6Bh const_107 | ||
dd 4400AFA0h timestamp | dd 4400AFA0h timestamp | ||
Line 1210: | Line 1213: | ||
dict[3] = OpfImage; | dict[3] = OpfImage; | ||
- | // Seems to check the integrity of the data in the usage-rights file (.opf). | + | // |
- | // | + | // Calculate HMAC for the opf[3] |
+ | // | ||
+ | // ProcessFile[1]: | ||
blob_t dec_pf2 = devicesal_220_decrypt_hook_249(ProcessFile[2], | blob_t dec_pf2 = devicesal_220_decrypt_hook_249(ProcessFile[2], | ||
blob_t serialized_opf3 = BCSerialize(ProcessFile[3]); | blob_t serialized_opf3 = BCSerialize(ProcessFile[3]); | ||
- | |||
blob_t key = concat ( dec_pf2, serialized_opf3 ); | blob_t key = concat ( dec_pf2, serialized_opf3 ); | ||
blob_t hasked_key = inline:: | blob_t hasked_key = inline:: | ||
- | |||
blob_t key_pf2 = concat ( dec_pf2, hashed_key ); | blob_t key_pf2 = concat ( dec_pf2, hashed_key ); | ||
blob_t hashed_key_pf2 = inline: | blob_t hashed_key_pf2 = inline: | ||
+ | // if( HMAC(opf[3], | ||
+ | // | ||
+ | // | ||
if (compare_blob (hashed_key_pf2, | if (compare_blob (hashed_key_pf2, | ||
// Test_Small_Int_For_Zero -> 0 (acc) | // Test_Small_Int_For_Zero -> 0 (acc) | ||
Line 1237: | Line 1243: | ||
netmd(0) | netmd(0) | ||
- | Process file, unknown blob, Ekb capability table, 00010002ekb, | + | Process file, unknown blob, Ekb capability table, 00010002ekb, |
+ | |||
+ | status = 0: Success, nonce will be used to authenticate NetMD unit, checkout_context contains all data to continue processing. | ||
+ | status != 0: Error, nonce and checkout_context don't exist | ||
Procedure prototype: | Procedure prototype: |
netmdocm.txt · Last modified: 2024/05/21 14:50 by nopsled