mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-22 06:13:51 -07:00
add read sector code
This commit is contained in:
parent
956899b839
commit
54ade5df94
2 changed files with 32 additions and 1 deletions
|
@ -414,6 +414,37 @@ out:
|
||||||
return -4;
|
return -4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MIFARE
|
||||||
|
int mfReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *data) {
|
||||||
|
|
||||||
|
UsbCommand c = {CMD_MIFARE_READSC, {sectorNo, keyType, 0}};
|
||||||
|
memcpy(c.d.asBytes, key, 6);
|
||||||
|
clearCommandBuffer();
|
||||||
|
SendCommand(&c);
|
||||||
|
|
||||||
|
UsbCommand resp;
|
||||||
|
if (WaitForResponseTimeout(CMD_ACK, &resp, 1500)) {
|
||||||
|
uint8_t isOK = resp.arg[0] & 0xff;
|
||||||
|
|
||||||
|
if (isOK) {
|
||||||
|
memcpy(data, resp.d.asBytes, mfNumBlocksPerSector(sectorNo) * 16);
|
||||||
|
for (int i = 0; i < (sectorNo<32?3:15); i++) {
|
||||||
|
PrintAndLogEx(NORMAL, "data : %s", sprint_hex(data + i * 16, 16));
|
||||||
|
}
|
||||||
|
PrintAndLogEx(NORMAL, "trailer: %s", sprint_hex(data + (sectorNo<32?3:15) * 16, 16));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
PrintAndLogEx(ERR, "Command execute timeout");
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// EMULATOR
|
// EMULATOR
|
||||||
int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount) {
|
int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount) {
|
||||||
UsbCommand c = {CMD_MIFARE_EML_MEMGET, {blockNum, blocksCount, 0}};
|
UsbCommand c = {CMD_MIFARE_EML_MEMGET, {blockNum, blocksCount, 0}};
|
||||||
|
|
|
@ -76,7 +76,7 @@ extern int mfCheckKeys_fast( uint8_t sectorsCnt, uint8_t firstChunk, uint8_t las
|
||||||
uint8_t strategy, uint32_t size, uint8_t *keyBlock, sector_t *e_sector, bool use_flashmemory);
|
uint8_t strategy, uint32_t size, uint8_t *keyBlock, sector_t *e_sector, bool use_flashmemory);
|
||||||
extern int mfKeyBrute(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint64_t *resultkey);
|
extern int mfKeyBrute(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint64_t *resultkey);
|
||||||
|
|
||||||
|
extern int mfReadSector(uint8_t sectorNo, uint8_t keyType, uint8_t *key, uint8_t *data);
|
||||||
|
|
||||||
extern int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount);
|
extern int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount);
|
||||||
extern int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount);
|
extern int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue