Lotus3: Difference between revisions

No edit summary
From SendCardSelfRefresh and SendCardReadRefreshStatus
 
(3 intermediate revisions by the same user not shown)
Line 386: Line 386:
| 0x10
| 0x10
| 0x40
| 0x40
| CardUid
| [[#CardUid|CardUid]]
|-
|-
| 0x50
| 0x50
Line 430: Line 430:
| 0x10
| 0x10
| 0x40
| 0x40
| CardUid
| [[#CardUid|CardUid]]
|-
|-
| 0x50
| 0x50
Line 444: Line 444:
| [[XCI#InitialData|InitialData]]
| [[XCI#InitialData|InitialData]]
|}
|}
= CardUid =
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x1
| [[#MakerId|MakerId]]
|-
| 0x1
| 0x1
|
|-
| 0x2
| 0x1
|
|-
| 0x3
| 0xD
| [[#UniqueData|UniqueData]]
|-
| 0x10
| 0x1
| Reserved (always 0)
|-
| 0x11
| 0xB
| Reserved (always all 0xFF)
|-
| 0x1C
| 0x4
| [[#CardId1Mirror|CardId1Mirror]]
|-
| 0x20
| 0x20
| Hash
|}
== MakerId ==
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0
| MegaChips (Macronix)
|-
| 1
| Lapis
|-
| 2
|
|}
== UniqueData ==
While presumed to be random, this field actually has some degree of determinism depending on the [[#MakerId|MakerId]].
MakerId 0:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x1
| Type (4 = [[Filesystem_services#MemoryType|T1RomLate]], 8 = [[Filesystem_services#MemoryType|T1RomFast]])
|-
| 0x1
| 0x1
| Line (0x21 for [[Filesystem_services#MemoryType|T1RomLate]], incrementing value for [[Filesystem_services#MemoryType|T1RomFast]])
|-
| 0x2
| 0x3
| Id
|-
| 0x5
| 0x2
| X (16-bit coordinate?)
|-
| 0x7
| 0x2
| Y (16-bit coordinate?)
|-
| 0x9
| 0x4
| Random
|}
MakerId 1:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x2
| Line (incrementing value)
|-
| 0x2
| 0x3
| Id
|-
| 0x5
| 0x1
|
|-
| 0x6
| 0x1
| Version (0 or 1)
|-
| 0x7
| 0x2
|
|-
| 0x9
| 0x4
| Random
|}
MakerId 2:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x4
| Random
|-
| 0x4
| 0x1
|
|-
| 0x5
| 0x1
|
|-
| 0x6
| 0x4
| Id (ASCII string)
|-
| 0xA
| 0x1
|
|-
| 0xB
| 0x1
|
|-
| 0xC
| 0x1
|
|}
== CardId1Mirror ==
This field mirrors bit 5 of the [[Filesystem_services#MemoryType|MemoryType]] field from the [[Filesystem_services#CardId1|CardId1]].


= CardCommand =
= CardCommand =
Line 472: Line 634:
|-
|-
| 0x6
| 0x6
|  
| SelfRefresh
|-
|-
| 0xF
| 0xF
|  
| T1ReadUid
|-
|-
| 0x10
| 0x10
| ReadId1Write
| DebugReadId1
|-
|-
| 0x11
| 0x11
| ReadId2Write
| DebugReadId2
|-
|-
| 0x12
| 0x12
| ReadId3Write
| DebugReadId3
|-
|-
| 0x13
| 0x13
|  
| DebugReadUid
|-
|-
| 0x15
| 0x15
| ReadCrc
| DebugReadCrc
|-
|-
| 0x16
| 0x16
| WritePage
| DebugWritePage
|-
|-
| 0x17
| 0x17
Line 499: Line 661:
|-
|-
| 0x18
| 0x18
| Erase
| DebugErase
|-
|-
| 0x19
| 0x19
| ReadParameter
| DebugReadParameter
|-
|-
| 0x20
| 0x20
| WriteParameter
| DebugWriteParameter
|-
|-
| 0x21
| 0x21
| ReadPageSecure
| T1ReadPage
|-
| 0x22
|
|-
|-
| 0x28
| 0x28
Line 514: Line 679:
|-
|-
| 0x2E
| 0x2E
| ChangeDebugDirect
| ForceErase
|-
|-
| 0x30
| 0x30
| ReadId3Secure
| T1ReadId3
|-
|-
| 0x39
| 0x39
| SetKey
| T1SetKey
|-
|-
| 0x56
| 0x56
Line 527: Line 692:
| 0x59
| 0x59
|  
|  
|-
| 0x67
| ReadId1Secure
|-
|-
| 0x5B
| 0x5B
| ReadPage
| ReadPage
|-
| 0x67
| T1ReadId1
|-
|-
| 0x83
| 0x83
| WritePageSecure
| T1WritePage
|-
|-
| 0x8A
| 0x8A
Line 544: Line 709:
|-
|-
| 0xB8
| 0xB8
| Refresh
| T1Refresh
|-
|-
| 0xC4
| 0xC4
| ReadId2Secure
| T1ReadId2
|-
|-
| 0xE0
| 0xE0
Line 556: Line 721:
|-
|-
| 0xE3
| 0xE3
|  
| T2ReceiveCertificate
|-
|-
| 0xE4
| 0xE4
|  
| T2SendSocCertificate
|-
|-
| 0xE5
| 0xE5
Line 565: Line 730:
|-
|-
| 0xE6
| 0xE6
|  
| T2ReceiveRandomValue
|-
|-
| 0xE7
| 0xE7
|  
| T2SendRandomValue
|-
|-
| 0xE8
| 0xE8
|  
| T2ReceiveDeviceChallenge
|-
|-
| 0xE9
| 0xE9
|  
| T2RespondDeviceChallenge
|-
|-
| 0xEA
| 0xEA
|  
| T2SendHostChallenge
|-
|-
| 0xEB
| 0xEB
|  
| T2ReceiveChallengeResponse
|-
|-
| 0xEC
| 0xEC
Line 598: Line 763:
|-
|-
| 0xFA
| 0xFA
|  
| ReadRefreshStatus
|}
|}