mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 13:53:55 -07:00
print attributes
This commit is contained in:
parent
3e7d32fee5
commit
13012c33b0
2 changed files with 37 additions and 0 deletions
|
@ -200,6 +200,10 @@ int CIPURSEReadFileAttributes(uint8_t *result, size_t max_result_len, size_t *re
|
|||
return CIPURSEExchange((sAPDU_t) {0x80, 0xce, 0x00, 0x00, 0, NULL}, result, max_result_len, result_len, sw);
|
||||
}
|
||||
|
||||
int CIPURSEUpdateFileAttributes(uint8_t *data, uint16_t datalen, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw) {
|
||||
return CIPURSEExchange((sAPDU_t) {0x80, 0xde, 0x00, 0x00, datalen, data}, result, max_result_len, result_len, sw);
|
||||
}
|
||||
|
||||
int CIPURSEReadBinary(uint16_t offset, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw) {
|
||||
return CIPURSEExchange((sAPDU_t) {0x00, 0xb0, (offset >> 8) & 0x7f, offset & 0xff, 0, NULL}, result, max_result_len, result_len, sw);
|
||||
}
|
||||
|
@ -610,3 +614,34 @@ void CIPURSEPrintFileAttrEx(uint8_t *attr, size_t len, bool isDGI) {
|
|||
void CIPURSEPrintFileAttr(uint8_t *attr, size_t len) {
|
||||
return CIPURSEPrintFileAttrEx(attr, len, false);
|
||||
}
|
||||
|
||||
void CIPURSEPrintFileUpdateAttr(uint8_t *attr, size_t len) {
|
||||
uint8_t keynum = attr[0];
|
||||
PrintAndLogEx(INFO, "Keys assigned... %d", keynum);
|
||||
|
||||
size_t idx = 1;
|
||||
if ( keynum > 0) {
|
||||
if (len >= idx + 2) {
|
||||
PrintAndLogEx(INFO, "SMR entries... %02x%02x", attr[idx], attr[idx + 1]);
|
||||
CIPURSEPrintSMR(&attr[idx]);
|
||||
}
|
||||
idx += 2;
|
||||
|
||||
if (len >= idx + keynum + 1) {
|
||||
PrintAndLogEx(INFO, "ART... %s", sprint_hex(&attr[idx], keynum + 1));
|
||||
CIPURSEPrintART(&attr[idx], keynum + 1);
|
||||
PrintAndLogEx(NORMAL, "");
|
||||
}
|
||||
idx += keynum + 1;
|
||||
}
|
||||
|
||||
// FCI
|
||||
if (len >= idx + 1) {
|
||||
int xlen = len - idx;
|
||||
if (xlen > 0 && xlen < 200) {
|
||||
PrintAndLogEx(INFO, "TLV file control parameters... [%d] %s", xlen, sprint_hex(&attr[idx], xlen));
|
||||
TLVPrintFromBuffer(&attr[idx], xlen);
|
||||
PrintAndLogEx(NORMAL, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@ int CIPURSESelectMFEx(bool activate_field, bool leave_field_on, uint8_t *result,
|
|||
int CIPURSESelectMF(uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw);
|
||||
|
||||
int CIPURSEReadFileAttributes(uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw);
|
||||
int CIPURSEUpdateFileAttributes(uint8_t *data, uint16_t datalen, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw);
|
||||
int CIPURSEReadBinary(uint16_t offset, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw);
|
||||
int CIPURSEUpdateBinary(uint16_t offset, uint8_t *data, uint16_t datalen, uint8_t *result, size_t max_result_len, size_t *result_len, uint16_t *sw);
|
||||
|
||||
|
@ -66,6 +67,7 @@ void CIPURSEPrintART(uint8_t *artrec, size_t artlen);
|
|||
void CIPURSEPrintEFFileAttr(uint8_t *attr, size_t len);
|
||||
void CIPURSEPrintFileAttrEx(uint8_t *attr, size_t len, bool isDGI);
|
||||
void CIPURSEPrintFileAttr(uint8_t *attr, size_t len);
|
||||
void CIPURSEPrintFileUpdateAttr(uint8_t *attr, size_t len);
|
||||
void CIPURSEPrintFileDescriptor(uint8_t desc);
|
||||
void CIPURSEPrintDGIArray(uint8_t *dgi, size_t dgilen);
|
||||
void CIPURSEPrintDGI(uint8_t *dgi, size_t dgilen);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue