mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-24 07:05:40 -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);
|
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) {
|
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);
|
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) {
|
void CIPURSEPrintFileAttr(uint8_t *attr, size_t len) {
|
||||||
return CIPURSEPrintFileAttrEx(attr, len, false);
|
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 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 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 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);
|
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 CIPURSEPrintEFFileAttr(uint8_t *attr, size_t len);
|
||||||
void CIPURSEPrintFileAttrEx(uint8_t *attr, size_t len, bool isDGI);
|
void CIPURSEPrintFileAttrEx(uint8_t *attr, size_t len, bool isDGI);
|
||||||
void CIPURSEPrintFileAttr(uint8_t *attr, size_t len);
|
void CIPURSEPrintFileAttr(uint8_t *attr, size_t len);
|
||||||
|
void CIPURSEPrintFileUpdateAttr(uint8_t *attr, size_t len);
|
||||||
void CIPURSEPrintFileDescriptor(uint8_t desc);
|
void CIPURSEPrintFileDescriptor(uint8_t desc);
|
||||||
void CIPURSEPrintDGIArray(uint8_t *dgi, size_t dgilen);
|
void CIPURSEPrintDGIArray(uint8_t *dgi, size_t dgilen);
|
||||||
void CIPURSEPrintDGI(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