User Tools

Site Tools


netmdocm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
netmdocm [2011/01/15 13:11] nopslednetmdocm [2011/01/16 14:34] nopsled
Line 904: Line 904:
  
 ===== maclist(1) ===== ===== maclist(1) =====
 +
 +XOR the SalOmgId with a constant key, expand that to a symmetric key and apply to the SHA-1 hash of MACLIST.  Compare the result with param3 and return 1 if they are equal.  In other words, param3 is a complicated hash of the MACLIST.
  
 ===== Sample input: ===== ===== Sample input: =====
Line 929: Line 931:
 } ; } ;
  
- 
-XOR the SalOmgId with a constant key, expand that to a symmetric key and apply to the SHA-1 hash of MACLIST.  Compare the result with param3 and return 1 if they are equal.  In other words, param3 is a complicated hash of the MACLIST. 
  
 ===== maclist(8) ===== ===== maclist(8) =====
Line 1474: Line 1474:
  
  
-===== netmd.ocm Decompiled ===== 
-<code> 
- 
-Dict[0xf9] = {0x63, 0x81, 0x63, 0xB8, 0x2C, 0x4E, 0x31,  
-              0x81, 0x0F, 0xBE, 0xE0, 0x1B, 0x2E, 0x7F,  
-              0xC2, 0x5B, 0x87, 0x95, 0x86, 0xE3}; 
- 
- 
-// CIPHERTEXT must be a serialized and encrypted blob (see dev_0xd8/dev_0xd9). 
-// The PLAINTEXT is appended to that blob and the serialized and encrypted result is returned. 
-blob_t 
-netmd_0x07 (blob_t key, blob_t some_plaintext, blob_t some_ciphertext) 
-{ 
-  static blob_t pad[16] = { 0x33, 0x4a, 0x18, 0x94, 0xc1, 0xf3, 0x83, 0xf6, 
-                            0xd3, 0xeb, 0x6a, 0xc2, 0xad, 0x13, 0x07, 0xca }; 
-  blob_t data = dev_0xd8 (some_ciphertext, XOR (key, pad)); 
-  data = CONCAT (data, some_plaintext); 
-  return dev_0xd9 (data, XOR (key, pad)); 
-} 
-</code> 
- 
-===== icv.ocm Decompiled ===== 
- 
-<code> 
- 
-// 
-// Generate a SalOmgId 
-// 
-//   Example: 30 80 0410010F5000000400000000006E2B2A75BA 00 00 
-//    
-//   <OMG Directory>\OMGKEY\omg_id..dat 
-// 
-// Note: When OpenMG is used (trough the UI) for the first time this value is generated,  
-//       by calling the salwrap function getSalOmgId. 
-// 
-//                   const unsigned __int8 *__cdecl getSalOmgId() 
-// 
-blob_t icv(07) 
-{ 
- blob_t SalIdPRNG  = BCX_1C_GetPRNGBytes(5); 
- static blob_t PrefixSalOmgId[8] = {0x01,0x0F,0x50,0x00,0x00,0x04,0x00,0x00};  
- data = BCX_01_Concat(PrefixSalOmgId, SalIdPRNG); 
- Push 1 
- Pack_To_Array 
- Create_Array 
-} 
-</code> 
- 
-===== maclist.ocm  ===== 
- 
-// maclist(1) 
-// 
-// work in progress 
- 
-<code> 
- 
-int  
-maclist_0x01(blob_t SalOmgId, blob_t maclist2dat, blob_t OmgIcvCache) 
-{ 
-  static blob_t pad[16] = {0x20, 0xBE, 0xDE, 0x72, 0xA3, 0xB8, 0x62, 0x60,  
-                           0x71, 0x44, 0x3A, 0x33, 0xE9, 0xAC, 0x69, 0xCE}; 
-  static SHA1state, hash_maclist, hash_maclist_salomgid, xor_SalOmgId; 
- 
-  SHA1state             = BCX_19_InitSHA1(); 
-  BCX_1A_SHA1AddData(maclist, 0, SHA1state); 
-  hash_maclist         = BCX_1B_SHA1Finish(SHA1state); 
- 
-  xor_SalOmgId          = BCX_06_XorBlobs(SalOmgId, pad); 
-  hash_maclist_salomgid = salenc_sha1(SalOmgId_xor, hash_maclist); 
- 
-  hash_maclist == hash_xorSalOmgId? TRUE: FALSE   
-} 
  
-</code>  
netmdocm.txt · Last modified: 2024/05/21 14:50 by nopsled

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki