From b4da189aa730ddfdb4f4248d3cc6181f40cb898d Mon Sep 17 00:00:00 2001 From: team-orangeBlue <63470411+team-orangeBlue@users.noreply.github.com> Date: Thu, 9 Apr 2026 23:43:47 +0300 Subject: [PATCH] Polish `hf mf acl` Just cause... Signed-off-by: team-orangeBlue <63470411+team-orangeBlue@users.noreply.github.com> --- client/src/cmdhfmf.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/client/src/cmdhfmf.c b/client/src/cmdhfmf.c index 88a77d383..c01ad0550 100644 --- a/client/src/cmdhfmf.c +++ b/client/src/cmdhfmf.c @@ -1189,14 +1189,23 @@ static int CmdHF14AMfAcl(const char *Cmd) { int acllen = 0; uint8_t acl[3] = {0}; CLIGetHexWithReturn(ctx, 1, acl, &acllen); - CLIParserFree(ctx); + if (acllen && acllen != 3) { + PrintAndLogEx(FAILED, "ACL length must be 3 bytes. Got %d", acllen); + return PM3_EINVARG; + } PrintAndLogEx(NORMAL, ""); // look up common default ACL bytes and print a fingerprint line about it. if (memcmp(acl, "\xFF\x07\x80", 3) == 0) { PrintAndLogEx(INFO, "ACL... " _GREEN_("%s") " (transport configuration)", sprint_hex(acl, sizeof(acl))); + } else if (memcmp(acl, "\x7F\x07\x88", 3) == 0) { + PrintAndLogEx(INFO, "ACL... " _GREEN_("%s") " (key B enabler configuration)", sprint_hex(acl, sizeof(acl))); + } else if (memcmp(acl, "\x78\x77\x88", 3) == 0) { + PrintAndLogEx(INFO, "ACL... " _GREEN_("%s") " (no value-commands configuration)", sprint_hex(acl, sizeof(acl))); + } else { + PrintAndLogEx(INFO, "ACL... " _GREEN_("%s"), sprint_hex(acl, sizeof(acl))); } if (mfValidateAccessConditions(acl) == false) { PrintAndLogEx(ERR, _RED_("Invalid Access Conditions, NEVER write these on a card!"));