cannot remove password

Hi,

recently got a “NXP - NTAG216” and made the apparently well known mistake of creating a password via NFC Tools.
Now its giving me the following error: “write error - Identification failed” when trying to remove it.

Some details:
0 experience with NFC coding
never used anything other than NFC-Tools
password is known (99.9% sure)
already brute-forced for posible typoes
might have moved hand during password creation (partial write possible)

memory dump:

[ 04:4F:A8:6B ] Addr. 00 : UID0 - UID2 / BCC0
[ 12:FF:38:81 ] Addr. 01 : UID3 - UDI6
[ 54:48:00:00 ] Addr. 02 : BCC1 / INT. / LOCK0 - LOCK1
[ E1:10:6D:00 ] Addr. 03 : OTP0 - OTP3

removed lines: Addr. 04 through 5B due to private data
(can PM them if needed for fix)

[ 00:00:00:00 ] Addr. 5C : DATA
[ 00:00:00:00 ] Addr. 5D : DATA
[ 00:00:00:00 ] Addr. 5E : DATA
[ 00:00:00:00 ] Addr. 5F : DATA
[ 00:00:00:00 ] Addr. 60 : DATA
[ 00:00:00:00 ] Addr. 61 : DATA
[ 00:00:00:00 ] Addr. 62 : DATA
[ 00:00:00:00 ] Addr. 63 : DATA
[ 00:00:00:00 ] Addr. 64 : DATA
[ 00:00:00:00 ] Addr. 65 : DATA
[ 00:00:00:00 ] Addr. 66 : DATA
[ 00:00:00:00 ] Addr. 67 : DATA
[ 00:00:00:00 ] Addr. 68 : DATA
[ 00:00:00:00 ] Addr. 69 : DATA
[ 00:00:00:00 ] Addr. 6A : DATA
[ 00:00:00:00 ] Addr. 6B : DATA
[ 00:00:00:00 ] Addr. 6C : DATA
[ 00:00:00:00 ] Addr. 6D : DATA
[ 00:00:00:00 ] Addr. 6E : DATA
[ 00:00:00:00 ] Addr. 6F : DATA
[ 00:00:00:00 ] Addr. 70 : DATA
[ 00:00:00:00 ] Addr. 71 : DATA
[ 00:00:00:00 ] Addr. 72 : DATA
[ 00:00:00:00 ] Addr. 73 : DATA
[ 00:00:00:00 ] Addr. 74 : DATA
[ 00:00:00:00 ] Addr. 75 : DATA
[ 00:00:00:00 ] Addr. 76 : DATA
[ 00:00:00:00 ] Addr. 77 : DATA
[ 00:00:00:00 ] Addr. 78 : DATA
[ 00:00:00:00 ] Addr. 79 : DATA
[ 00:00:00:00 ] Addr. 7A : DATA
[ 00:00:00:00 ] Addr. 7B : DATA
[ 00:00:00:00 ] Addr. 7C : DATA
[ 00:00:00:00 ] Addr. 7D : DATA
[ 00:00:00:00 ] Addr. 7E : DATA
[ 00:00:00:00 ] Addr. 7F : DATA
[ 00:00:00:00 ] Addr. 80 : DATA
[ 00:00:00:00 ] Addr. 81 : DATA
[ 00:00:00:00 ] Addr. 82 : DATA
[ 00:00:00:00 ] Addr. 83 : DATA
[ 00:00:00:00 ] Addr. 84 : DATA
[ 00:00:00:00 ] Addr. 85 : DATA
[ 00:00:00:00 ] Addr. 86 : DATA
[ 00:00:00:00 ] Addr. 87 : DATA
[ 00:00:00:00 ] Addr. 88 : DATA
[ 00:00:00:00 ] Addr. 89 : DATA
[ 00:00:00:00 ] Addr. 8A : DATA
[ 00:00:00:00 ] Addr. 8B : DATA
[ 00:00:00:00 ] Addr. 8C : DATA
[ 00:00:00:00 ] Addr. 8D : DATA
[ 00:00:00:00 ] Addr. 8E : DATA
[ 00:00:00:00 ] Addr. 8F : DATA
[ 00:00:00:00 ] Addr. 90 : DATA
[ 00:00:00:00 ] Addr. 91 : DATA
[ 00:00:00:00 ] Addr. 92 : DATA
[ 00:00:00:00 ] Addr. 93 : DATA
[ 00:00:00:00 ] Addr. 94 : DATA
[ 00:00:00:00 ] Addr. 95 : DATA
[ 00:00:00:00 ] Addr. 96 : DATA
[ 00:00:00:00 ] Addr. 97 : DATA
[ 00:00:00:00 ] Addr. 98 : DATA
[ 00:00:00:00 ] Addr. 99 : DATA
[ 00:00:00:00 ] Addr. 9A : DATA
[ 00:00:00:00 ] Addr. 9B : DATA
[ 00:00:00:00 ] Addr. 9C : DATA
[ 00:00:00:00 ] Addr. 9D : DATA
[ 00:00:00:00 ] Addr. 9E : DATA
[ 00:00:00:00 ] Addr. 9F : DATA
[ 00:00:00:00 ] Addr. A0 : DATA
[ 00:00:00:00 ] Addr. A1 : DATA
[ 00:00:00:00 ] Addr. A2 : DATA
[ 00:00:00:00 ] Addr. A3 : DATA
[ 00:00:00:00 ] Addr. A4 : DATA
[ 00:00:00:00 ] Addr. A5 : DATA
[ 00:00:00:00 ] Addr. A6 : DATA
[ 00:00:00:00 ] Addr. A7 : DATA
[ 00:00:00:00 ] Addr. A8 : DATA
[ 00:00:00:00 ] Addr. A9 : DATA
[ 00:00:00:00 ] Addr. AA : DATA
[ 00:00:00:00 ] Addr. AB : DATA
[ 00:00:00:00 ] Addr. AC : DATA
[ 00:00:00:00 ] Addr. AD : DATA
[ 00:00:00:00 ] Addr. AE : DATA
[ 00:00:00:00 ] Addr. AF : DATA
[ 00:00:00:00 ] Addr. B0 : DATA
[ 00:00:00:00 ] Addr. B1 : DATA
[ 00:00:00:00 ] Addr. B2 : DATA
[ 00:00:00:00 ] Addr. B3 : DATA
[ 00:00:00:00 ] Addr. B4 : DATA
[ 00:00:00:00 ] Addr. B5 : DATA
[ 00:00:00:00 ] Addr. B6 : DATA
[ 00:00:00:00 ] Addr. B7 : DATA
[ 00:00:00:00 ] Addr. B8 : DATA
[ 00:00:00:00 ] Addr. B9 : DATA
[ 00:00:00:00 ] Addr. BA : DATA
[ 00:00:00:00 ] Addr. BB : DATA
[ 00:00:00:00 ] Addr. BC : DATA
[ 00:00:00:00 ] Addr. BD : DATA
[ 00:00:00:00 ] Addr. BE : DATA
[ 00:00:00:00 ] Addr. BF : DATA
[ 00:00:00:00 ] Addr. C0 : DATA
[ 00:00:00:00 ] Addr. C1 : DATA
[ 00:00:00:00 ] Addr. C2 : DATA
[ 00:00:00:00 ] Addr. C3 : DATA
[ 00:00:00:00 ] Addr. C4 : DATA
[ 00:00:00:00 ] Addr. C5 : DATA
[ 00:00:00:00 ] Addr. C6 : DATA
[ 00:00:00:00 ] Addr. C7 : DATA
[ 00:00:00:00 ] Addr. C8 : DATA
[ 00:00:00:00 ] Addr. C9 : DATA
[ 00:00:00:00 ] Addr. CA : DATA
[ 00:00:00:00 ] Addr. CB : DATA
[ 00:00:00:00 ] Addr. CC : DATA
[ 00:00:00:00 ] Addr. CD : DATA
[ 00:00:00:00 ] Addr. CE : DATA
[ 00:00:00:00 ] Addr. CF : DATA
[ 00:00:00:00 ] Addr. D0 : DATA
[ 00:00:00:00 ] Addr. D1 : DATA
[ 00:00:00:00 ] Addr. D2 : DATA
[ 00:00:00:00 ] Addr. D3 : DATA
[ 00:00:00:00 ] Addr. D4 : DATA
[ 00:00:00:00 ] Addr. D5 : DATA
[ 00:00:00:00 ] Addr. D6 : DATA
[ 00:00:00:00 ] Addr. D7 : DATA
[ 00:00:00:00 ] Addr. D8 : DATA
[ 00:00:00:00 ] Addr. D9 : DATA
[ 00:00:00:00 ] Addr. DA : DATA
[ 00:00:00:00 ] Addr. DB : DATA
[ 00:00:00:00 ] Addr. DC : DATA
[ 00:00:00:00 ] Addr. DD : DATA
[ 00:00:00:00 ] Addr. DE : DATA
[ 00:00:00:00 ] Addr. DF : DATA
[ 00:00:00:00 ] Addr. E0 : DATA
[ 00:00:00:00 ] Addr. E1 : DATA
[ 00:00:00:BD ] Addr. E2 : LOCK2 - LOCK4
[ 04:00:00:00 ] Addr. E3 : CFG 0 (MIRROR / AUTH0)
[ 00:05:00:00 ] Addr. E4 : CFG 1 (ACCESS)
[ 00:00:00:00 ] Addr. E5 : PWD0 - PWD3
[ 00:00:00:00 ] Addr. E6 : PACK0 - PACK1

Is there any hope for me?

Thanks in advance!
Smart22 (apparently not so smart)

1 Like

do you know the password or have you forgotten it?

1 Like

^ this

if you manually added a password and forgot it, you’re screwed. gotta remember that password.

if you don’t remember setting a password deliberately it could be the nfctools password it sets itself to prevent external overwriting of the ndef container, which shouldn’t prevent you from writing ndef to it.

Seems to know it…

1 Like

Based on the data posted, AUTH0 is 00 so it is protecting all user memory from unauthenticated writes. However it’s also showing 00 00 00 00 for the pwd which should never be readable… tells me there is a chance that the password is actually set to 00 00 00 00 and the program is checking it as a default password, getting a proper authentication, and then showing that data as the password.

You could try a password of all 00 00 00 00 (4 null bytes) in NFC tools but honestly I don’t know how in NFC tools you might change the AUTH0 protection setting back to FF

I think NFC shell is possibly a good option here for manually authenticating and changing auth0

1 Like

It shows the same for my xSIID’s pwd block, I think that’s just how it interprets an unreadable block

Or, perhaps the chip just sends 0’s in place of the data in unreadable blocks, I can’t really tell

1 Like

Ah yeah I think the chip does send 00 if you try to read it. Taginfo correctly shows these blocks as unreadable ut NFC tools doesn’t know any better.

1 Like

From a quick test i just did with NFC Tools (this is why I never use it except for writing ndef records), password is showing 00 00 00 00 regardless of whether I have it as default or set to other. Finnily enough, on another chip that I have the PROT bits set it only shows the first 4 pages and no lines of data under that.

1 Like

If set you need to auth before you can even read. The pages protected are still based on auth0 so if you have AUTH0 set to 04 then 00 through 03 are readable without auth.

2 Likes

I understand, I was just explaining the comparison of the software’s behaviour. I.e. unreadable pages come up as nil pages of data rather than as 0.

Because when a password is set, i.e. comes up as x on tag info, shows as 0 on nfc tools. But when PROT is set to 1 on all pages, on tag info all pages of data show as x but this reflects in nfc tools as no pages of data. So in effect this verifies that the AUTH0 is working and how this would reflect as well.

Ah yeah. I understand. The reason tag info shows pages as unreadable versus no pages is that nxp has a version command in tag info so it asks the tag what it is and the ntag family has a get_version command, so taginfo knows exactly what chip it’s talking to and what memory pages it has. I don’t think NFC tools does the same, it probably just tries to read pages until it can’t read any pages anymore and stops.

2 Likes

Thanks for all the support and troubleshooting!

@amal I do 100% remember the password which is a simple 6 letters I’ve been using for over 20 years.

I literally had the same pw set before, removed it, wrote something new, then added the pw back, all within like 2 min.

The only thing I can think of is maybe a typo or added space.

That’s why I’ve been brute-forcing it in my free time since yesterday. (100+ tries)

Is there by any chance a limit on wrong tries I could have reached?

Or is there a possibility of an incomplete write corrupting the pw?

Still hoping to get lucky here XD!

Ok here’s where things don’t quite make sense. Let’s dive in…

  • The chip password can only be 4 bytes, not 6… not 3… it must be 4.

  • The password byte value can range from 00 to FF (in hex), or 0 to 255 in decimal.

  • Ascii keyboard character entry does not encompass the entire range of 00 to FF, unless the app / software is letting you enter hex values like 00 and 14 and FF etc.

So, if you entered a 6 character password into NFC Tools, what it likely did was convert your ASCII characters to their hex values, then truncate off 2 bytes leaving 4, and setting that… or… it has some other way of calculating a 4 byte password value from your 6 byte ASCII data you entered… but the point is, the method of doing this is unknown… so;

  1. IF you used NFC Tools to set a password
  2. AND you entered a 6 byte ascii password like “doodoo” or “smart!!” or whatever

THEN there is no way to really know what the 4 byte password is that was written to the chip without decompiling the exact version of NFC Tools that was used to figure out how it takes your ascii password data input and truncates / converts it into a 4 byte chip password.

You can never actually remove the password… the chip always needs some sort of password value… you can only replace it. Even if the app you used says “remove password”, just know it can’t be removed, it can only maybe be set to a factory default of some kind… or perhaps by “remove” it meant changing the AUTO0 setting to remove password protection from the memory blocks, while not actually doing anything to the password stored on chip.

In short, exactness matters. Did you do all this stuff with NFC Tools or did you use other tools like TagWriter somewhere in the process? Did you update NFC Tools at any point in this process? Please make a step by step recount of exactly what you did and how.

1 Like

I only used NFC Tools Version 8.10 (current) as this was the App recommended by the guy who implanted the chip.

The actions performed were:

  1. Write data
  2. Set password (6 letters)
  3. A couple reads to test the data
  4. Remove password
    (No problem so far)
  5. Write data
  6. Set password (same 6 letters)
  7. Remove password

Write error - Identification failed

Can PM you the password if needed.

Since you are using the same version of NFC tools this whole time, likely you had a typo when setting the second time. Not much to do but keep trying.