mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
read and write commands
This commit is contained in:
parent
be128741e3
commit
618bdd4bc7
3 changed files with 24 additions and 0 deletions
|
@ -1096,6 +1096,25 @@ int DesfireAbortTransaction(DesfireContext *dctx) {
|
||||||
return DesfireCommandNoData(dctx, MFDES_ABORT_TRANSACTION);
|
return DesfireCommandNoData(dctx, MFDES_ABORT_TRANSACTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DesfireReadFile(DesfireContext *dctx, uint8_t fnum, uint32_t offset, uint32_t len, uint8_t *resp, size_t *resplen) {
|
||||||
|
uint8_t data[10] = {0};
|
||||||
|
data[0] = fnum;
|
||||||
|
Uint3byteToMemLe(&data[1], offset);
|
||||||
|
Uint3byteToMemLe(&data[4], len);
|
||||||
|
|
||||||
|
return DesfireCommand(dctx, MFDES_READ_DATA, data, 7, resp, resplen, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int DesfireWriteFile(DesfireContext *dctx, uint8_t fnum, uint32_t offset, uint32_t len, uint8_t *data) {
|
||||||
|
uint8_t xdata[1024] = {0};
|
||||||
|
xdata[0] = fnum;
|
||||||
|
Uint3byteToMemLe(&xdata[1], offset);
|
||||||
|
Uint3byteToMemLe(&xdata[4], len);
|
||||||
|
memcpy(&xdata[7], data, len);
|
||||||
|
|
||||||
|
return DesfireCommandTxData(dctx, MFDES_WRITE_DATA, xdata, 7 + len);
|
||||||
|
}
|
||||||
|
|
||||||
int DesfireValueFileOperations(DesfireContext *dctx, uint8_t fid, uint8_t operation, uint32_t *value) {
|
int DesfireValueFileOperations(DesfireContext *dctx, uint8_t fid, uint8_t operation, uint32_t *value) {
|
||||||
uint8_t data[250] = {0};
|
uint8_t data[250] = {0};
|
||||||
data[0] = fid;
|
data[0] = fid;
|
||||||
|
|
|
@ -105,4 +105,7 @@ int DesfireAbortTransaction(DesfireContext *dctx);
|
||||||
int DesfireValueFileOperations(DesfireContext *dctx, uint8_t fid, uint8_t operation, uint32_t *value);
|
int DesfireValueFileOperations(DesfireContext *dctx, uint8_t fid, uint8_t operation, uint32_t *value);
|
||||||
int DesfireClearRecordFile(DesfireContext *dctx, uint8_t fnum);
|
int DesfireClearRecordFile(DesfireContext *dctx, uint8_t fnum);
|
||||||
|
|
||||||
|
int DesfireReadFile(DesfireContext *dctx, uint8_t fnum, uint32_t offset, uint32_t len, uint8_t *resp, size_t *resplen);
|
||||||
|
int DesfireWriteFile(DesfireContext *dctx, uint8_t fnum, uint32_t offset, uint32_t len, uint8_t *data);
|
||||||
|
|
||||||
#endif // __DESFIRECORE_H
|
#endif // __DESFIRECORE_H
|
||||||
|
|
|
@ -435,7 +435,9 @@ ISO 7816-4 Basic interindustry commands. For command APDU's.
|
||||||
#define MFDES_GET_FREE_MEMORY 0x6E
|
#define MFDES_GET_FREE_MEMORY 0x6E
|
||||||
#define MFDES_GET_DF_NAMES 0x6D
|
#define MFDES_GET_DF_NAMES 0x6D
|
||||||
#define MFDES_GET_FILE_IDS 0x6F
|
#define MFDES_GET_FILE_IDS 0x6F
|
||||||
|
#define MFDES_WRITE_DATA2 0x8D
|
||||||
#define MFDES_ABORT_TRANSACTION 0xA7
|
#define MFDES_ABORT_TRANSACTION 0xA7
|
||||||
|
#define MFDES_READ_DATA2 0xAD
|
||||||
#define MFDES_ADDITIONAL_FRAME 0xAF
|
#define MFDES_ADDITIONAL_FRAME 0xAF
|
||||||
#define MFDES_UPDATE_RECORD1 0xBA
|
#define MFDES_UPDATE_RECORD1 0xBA
|
||||||
#define MFDES_READ_RECORDS 0xBB
|
#define MFDES_READ_RECORDS 0xBB
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue