Protecting SLIX2 using TapLinx

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Protecting SLIX2 using TapLinx

680 次查看
tomcc
Contributor I

Hi,
I'm having a problem with protecting SLIX2 by a write password from overwriting. Even when I protect the page I am able to overwrite the tag with Android NXP Tag Writer, which makes me think that I didn't protect all the pages correctly.
Here's the code that I am using:

tag.getReader().connect();
randomNumber = tag.getRandomNumber( NFCV_FLAG_DATARATE | NFCV_FLAG_ADDRESS);
xored_password = CustomModules.getUtility().xor(CustomModules.getUtility().append(randomNumber, randomNumber),{0, 0, 0, 0});
tag.setPasswordRead(xored_password, NFCV_FLAG_DATARATE | NFCV_FLAG_ADDRESS);
tag.setPasswordWrite(xored_password, NFCV_FLAG_DATARATE | NFCV_FLAG_ADDRESS);
for (int i=0;i<79;++i) { // based on SLIX2 docs there's 79 blocks, i've also tried to use 2 "pages" but it's not better
  tag.protectPage((byte)i, (byte)0x10, NFCV_FLAG_DATARATE | NFCV_FLAG_ADDRESS);
}
tag.writePasswordWrite(newPassword, NFCV_FLAG_DATARATE | NFCV_FLAG_ADDRESS);

All of the above functions succeed, yet it's possible to break the tag without write password.

标签 (3)
标记 (5)
0 项奖励
回复
0 回复数
%3CLINGO-SUB%20id%3D%22lingo-sub-2246252%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E4%BD%BF%E7%94%A8%20TapLinx%20%E4%BF%9D%E6%8A%A4%20SLIX2%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2246252%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%3CBR%20%2F%3E%EF%BC%8C%E6%88%91%E5%9C%A8%E7%94%A8%E5%86%99%E5%AF%86%E7%A0%81%E4%BF%9D%E6%8A%A4%20SLIX2%20%E5%85%8D%E5%8F%97%E8%A6%86%E7%9B%96%E6%96%B9%E9%9D%A2%E9%81%87%E5%88%B0%E4%BA%86%E9%97%AE%E9%A2%98%E3%80%82%E5%8D%B3%E4%BD%BF%E6%88%91%E4%BF%9D%E6%8A%A4%E4%BA%86%E9%A1%B5%E9%9D%A2%EF%BC%8C%E4%B9%9F%E8%83%BD%E7%94%A8%20Android%20NXP%20%E6%A0%87%E7%AD%BE%E5%86%99%E5%85%A5%E5%99%A8%E8%A6%86%E7%9B%96%E6%A0%87%E7%AD%BE%EF%BC%8C%E8%BF%99%E8%AE%A9%E6%88%91%E8%A7%89%E5%BE%97%E6%88%91%E6%B2%A1%E6%9C%89%E6%AD%A3%E7%A1%AE%E4%BF%9D%E6%8A%A4%E6%89%80%E6%9C%89%E9%A1%B5%E9%9D%A2%E3%80%82%3CBR%20%2F%3E%E4%B8%8B%E9%9D%A2%E6%98%AF%E6%88%91%E4%BD%BF%E7%94%A8%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%9A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-java%22%3E%3CCODE%20translate%3D%22no%22%3Etag.getReader().connect()%3B%0ArandomNumber%20%3D%20tag.getRandomNumber(%20NFCV_FLAG_DATARATE%20%7C%20NFCV_FLAG_ADDRESS)%3B%0Axored_password%20%3D%20CustomModules.getUtility().xor(CustomModules.getUtility().append(randomNumber%2C%20randomNumber)%2C%7B0%2C%200%2C%200%2C%200%7D)%3B%0Atag.setPasswordRead(xored_password%2C%20NFCV_FLAG_DATARATE%20%7C%20NFCV_FLAG_ADDRESS)%3B%0Atag.setPasswordWrite(xored_password%2C%20NFCV_FLAG_DATARATE%20%7C%20NFCV_FLAG_ADDRESS)%3B%0Afor%20(int%20i%3D0%3Bi%26lt%3B79%3B%2B%2Bi)%20%7B%20%2F%2F%20based%20on%20SLIX2%20docs%20there's%2079%20blocks%2C%20i've%20also%20tried%20to%20use%202%20%22pages%22%20but%20it's%20not%20better%0A%20%20tag.protectPage((byte)i%2C%20(byte)0x10%2C%20NFCV_FLAG_DATARATE%20%7C%20NFCV_FLAG_ADDRESS)%3B%0A%7D%0Atag.writePasswordWrite(newPassword%2C%20NFCV_FLAG_DATARATE%20%7C%20NFCV_FLAG_ADDRESS)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%E4%B8%8A%E8%BF%B0%E6%89%80%E6%9C%89%E5%8A%9F%E8%83%BD%E9%83%BD%E6%88%90%E5%8A%9F%E4%BA%86%EF%BC%8C%E4%BD%86%E4%BB%8D%E6%9C%89%E5%8F%AF%E8%83%BD%E5%9C%A8%E4%B8%8D%E5%86%99%E5%85%A5%E5%AF%86%E7%A0%81%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E7%A0%B4%E8%A7%A3%E6%A0%87%E7%AD%BE%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2246252%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E