Research, development and trades concerning the powerful Proxmark3 device.
Remember; sharing is caring. Bring something back to the community.
"Learn the tools of the trade the hard way." +Fravia
You are not logged in.
Time changes and with it the technology
Proxmark3 @ discord
Users of this forum, please be aware that information stored on this site is not private.
I was fiddling around in the LF t55xx commands and was always suprised with not getting some values outputted with issuing a "lf t55xx readblock 1"..
At least it should have given more then the "db: done" thingy.
I looked into the code in "cmdlft55x.c" and realized that all functions only calls "sendcommand" but never waits for a respons.
I looked into the lfops.c in the ARMSRC, and sure enough, the read values is never sent back to the client.
So, yes, LF T55xx commands are fundamently flawed or can someone explain it to me how it is supposed to work.
I just fiddle a bit with it, and now are getting some kind of values back. But there is the strangeness with ie: zeroing the responsebuffer with 128, instead of zeros?? just doesnt make sense to me.
Last edited by iceman (2015-03-20 12:43:34)
Offline
LF t55xx readblock progress?..
Well, some times it works.. based on it is configured for manchester modulation... but otherwise no.
I don't know how to decode the bits.. is there a seq start / stop marker? Block read should only send the one block over and over... but ..
pm3 --> lf t55xx readblock 0
Reading block 0
GOT :ff ff ff fb 00 ff ff ff ff ff ff ff fc f3 ec e4 dd d6 d0 ca c2 bf bb b4
High : 255 - 0
CLOCK : 31
Manchester decoded bitstream
1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1
1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1
1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0
0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1
0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0
0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1
pm3 -->
Offline
@iceman you might want to check out the following post http://www.proxmark.org/forum/viewtopic.php?id=2022 - go down to #11
Offline
That helped kind of. What I need is not the write output.. I'm doing the read commands. Somewhere I read in the datasheet that the data is sent without any extra bits when in "direct mode". Which the lf t55xx read commands does.
So the manchester demod should only give me n*32 bits of answer. Nothing else.
Offline
http://www.proxmark.org/forum/viewtopic.php?id=1917
#5 enio was trying to interpret the response from a block read. Might help.
Offline
He mentioned start and stop bits that messed up Manchester demod.
Offline
pm3 ~/client$ ./proxmark3.exe com3
pm3 --> lf read
#db# buffer samples: d6 d0 cb c6 c1 bc b8 b4 ...
pm3 --> data plot
pm3 --> lf t55xx readtrace
Reading page 1 - tracedata
Applying Up Threshold: 70, Down Threshold: -60
Detected clock: 64
Manchester decoded bitstream : 108 bits
0111000011111110
1000001011110100
1111111110000000
0000000000000010
0111000011111110
1000001011110100
111111111000
pm3 -->
So trying some of the tips given, with the dirtythreshold, askdemod, mandemod.. give me a nice plot, but 108bits is still more then 64bits that was expected.
Offline
It is a repeating pattern. Isolate the individual message. It looks to be about 64 bits
Offline
yes, a repeating pattern, but still this function is able to say which bit is the correct startbit? and where the pattern repeats?..
I don't know if it is usefull in its present state but atleast there is data coming out.
Offline
I forked the repository on Github, and published all my changes in there and all other changes I found / merged to aswell.
The whole Ultralight, UltralightC, (dumps working, detailed info) Iclass, hf 14a raw, hf mf (4k support), Lf t55xx rd/rdPWD/trace em4x/rd//rdpwd, functionality is in there.
The Desfire is under construction.. *not working*,
The whole repository is a copy working for my Win7/64b/ gcc4.8/mingw/QT5.3.1 setup.
Enjoy.
Offline
I am not able to find the fork (github is not my best friend ), can you write down the link?
Offline
Sure, here you go.
https://github.com/iceman1001/proxmark3
And no, GitHub is not my best firend either.
Offline
Sorry, it seems like GitHub thought that I was a robot and made cloaked my profile. It should be working now.
Offline
Hi Iceman,
I try to compile your source but it seems some files are missing
I found 2 things :
Need a mkdir for this directory in MakeFile => obj/loclass/
The folder and the file is missing in the repo => openssl/des.h
Offline
You are correct and I'm not good at makefiles, so if you give me a working sample I'll put it in there.
For QT5 , the /client/platforms folder is also missing, but it contains huge qt files [qwindows.dll 1.2mb, qwindowsd.dll 15.7mb] and it is better if you install those yourself.
If you have the old QT4, it shouldn't complain so much.
However the openssl/des.h is not in the repo since it supposed to be in the MinGW environment. Basically, you need to install openssl.
Offline
You are not supposed to need openssl or openssl/des.h, at least not unless iceman has added that requirement. For loclass, there should be a des.h there already, I probably made some error in the build files somewhere. The loclass-stuff should be fully self-reliant, but I've heard reports earlier about missing files on the windows-build side, but noone gave me a specific build error. I'll try to fix all build-issues on both windows and linux..
Offline
There are 2 ref to openssl/des.h in my fork. One is for the pentura /midnitesnakes Ultralight-c funtionality "hf mfu"
and one in my "hf mfdes" ... which is not using the crypto yet.
Offline
Ok, so it's not something that came from loclass, gotcha.
Offline
when it comes to makefiles, I think there are several mkdir missing. among one is the obj/loclass
I usually just create the folders manually and forget about it but I see the need for the creation in the makefile.
Offline
Well, no, that was a problem once upon a time. See https://github.com/Proxmark/proxmark3/tree/master/client/obj/loclass - I did the same 'fix' that someone had already done on noncetokey: https://github.com/Proxmark/proxmark3/tree/master/client/obj/nonce2key
Just before I merged, I did a clean clone from github and make, and it all went through fine.
Last edited by holiman (2014-09-19 09:27:57)
Offline
LF T55XX: Progress report
--------------------------------------------------------
pm3 --> lf read
#db# buffer samples: ae 89 6a 50 3b 29 1a 0d ..
pm3 --> lf t55xx rd 5
Reading page 0 block : 5
First Low : 209
First High : 218
ST Ends : 346
Clock : 32
startindex : 346
Path A
Manchester decoded bitstream : 29 bits
11111111111111111111100111111
pm3 --> data plot
Right now the manchester decoder doesn't quite match up. There is 32 distinct spikes, you can see the ST's clear.
The ST, Sequence terminator dampening field:
A block read with all 0xFF
Offline
Never give up.
Next step is the Page 0 / Block 0 ...
pm3 --> lf t55xx trace
Clock : 32
startindex : 21
Manchester decoded : 73 bits
01212111000000001010100001010001
10101000011100010110000010100000
110011212
-- T55xx Trace Information ----------------------------------
-------------------------------------------------------------
ACL Allocation class (ISO/IEC 15963-1) : 0xE0 (224)
MFC Manufacturer ID (ISO/IEC 7816-6) : 0x15 (21)
CID : 0x01 (1)
ICR IC Revision : 2
Manufactured
Year/Quarter : 2003/1
Number : 1080
Wafer number : 22
Die Number : 1286
-------------------------------------------------------------
Raw Data
Block 0 : E0150A35
Block 1 : 0E2C1419
-------------------------------------------------------------
Offline
question: what is the 2 in the bit stream?
(pretty sweet work though)
also, is this for a chip configured to Manchester rf/64 in the configuration block (as the read will be different for each configured modulation)
Last edited by marshmellow (2014-10-06 16:39:34)
Offline
And a simpel configuration command is in place... However since I only can detect manchester encoded information.
pm3 --> lf t55xx info
Reading page 0 block : 0
Clock : 32
startindex : 21
Manchester decoded : 41 bits
01211000000000000100010000000111
010001211
-- T55xx Configuration --------------------------------------
-------------------------------------------------------------
Safer key : 0
reserved : 0
Data bit rate : 2 - RF/32
eXtended mode : No
Modulation : 8 - Manschester
PSK clock freq : 0
AOR - Answer on Request : No
OTP - One Time Pad : No
Max block : 7
Password mode : No
SST - Sequence Start Terminator : Yes
Fast Write : No
Inverse data : No
POR-Delay : No
-------------------------------------------------------------
Raw Data
Block 0 : 000880E8
-------------------------------------------------------------
Offline
Yes, the 2 is the so called "dampening field" in the Sequence start terminator. It's not a 1 or 0... it's with in 40% from the mean value of the signal.
Offline
And no, the clock is determined to 32.. and the configuration block confirms it to "RF/32 manchester".. This is a catch 22 momenten.
Offline
Interesting stuff:
if pwd bit is set and maxblock == 7, the password is readable with: lf t55xx rd 7
if pwd bit is set and maxblock < 7, try the default passwords like 00000000, 11111111, 51243648
Make sure that the OTP bit is *not* set .
Check the safer key setting.
if 6 AND extendend mode bit is true, then the test-mode is disabled.
if 9 AND extendend mode bit is true, then the extendend mode is enabled.
I think I will write an addition that takes a "suggested" configblock settings and shows what it says.
Offline
And finally a dump command.
pm3 --> lf t55xx dump
Block 0 : 0x000880E8 00000000000010001000000011101000
Block 1 : 0xFF83C033 11111111100000111100000000110011
Block 2 : 0x22A646E4 00100010101001100100011011100100
Block 3 : 0x387BC5EB 00111000011110111100010111101011
Block 4 : 0x5198DE04 01010001100110001101111000000100
Block 5 : 0xDEADBEEF 11011110101011011011111011101111
Block 6 : 0x00000000 00000000000000000000000000000000
Block 7 : 0x00000000 00000000000000000000000000000000
pm3 -->
Offline
SWEET! Great work.
how hard is it to adjust this to work with different block 0 configurations?
Offline
the clock rate is automatic but different encoding as : fsk, psk, biphase it can't read it since I only can decode manchester. However... the data is in the Graphbuffer (data plot) , so you could use all the data commands
Offline
FSK is probably the next most popular modulation configuration. I could try and help you decode FSK if you feel like going further. I'm not good with the code, or I'd try. As it is this will be a great addition to the proxmark. Thanks.
Offline
Looking at the fskdemod-function in the cmddata.c it seems kind of clean to implement.
I'm not sure how to detect what modulation the tag (t55x7) is using. Right now, you can issue a "lf t55xx rd 0" (read block 0) command and the function loads the data in the Graphbuffer, and tries to manchester demodulate it.
If it fails, there will be only garabage returning. If you issue a "data fskdemod" afterwards, it does what you want basically.
Offline
if you want to try it out, I published it to my fork here. https://github.com/iceman1001/proxmark3
Offline
I need some feedback regardless to see how the dampeningfield detection works on different tags/antennas.
Offline
Which commands do you need to be tested ?
Offline
Asper, if you have time then these commands needs to be tested against different antennas/tags
I would be grateful if you did.
lf t55xx rd
lf t55xx trace
lf t55xx info
lf t55xx dump
Offline
and when you at it, if you have a fsk configurated t55x7 tag, then see if you can read it with:
data plot
lf t55xx rd 0
data fskdemod
And also, I changed the start up sequence for the lf t55xx cmds to use the same as "lf read" so you dont have to execute that one first.
Offline
I have problems compiling:
I added the missing .h files (on the left) in client\openssl but now I have the problems listed in the right shell window.
Last edited by asper (2014-10-08 11:57:53)
Offline
My fork has the Qt5.3.1
if you have the old Qt installed, you can see the differences between the makefiles (use a compare proggie)
Offline
Another user here fixed their makefile to this one: http://www.icesql.se/proxmark3/code/linuxMakefile.txt
Don't know if that helps you.
Last edited by iceman (2014-10-08 11:59:59)
Offline
Solved the Qt issue (copied the 3 missing .dlls in \MinGW\qt\lib). What about crypto.dll ? Where can I find it ? It seems not to be in openssl...
Offline
try compiling without -lcrypto since that assumes MinGW has openssl installed.
Offline
Without it I got lot of "undefined reference" errors, I think it is necessary.
Offline
otherwise we can mail instead of fill this thread.
iceman at iuse se
Offline
Still problems. If someone have crypto.dll or libcrypto.dll or cryptolib.dll please upload them somewhere.
Offline
proxguiqt.cpp looks like a Qt problem still.
Offline
I am willing to run tests but cannot compile, is a pre-compiled executable out of the question?
Offline
I don't know if you can use it. It's a compiled windows client, and you need to flash the osimage.elf aswell.
Offline
Manged to run your compiled version !
Here is my test:
pm3 --> lf t55xx rd 0
Block 0 : 0xEDDFF3F4 22220220222022222222200222222020
pm3 -->
pm3 --> lf t55xx trace
-- T55xx Trace Information ----------------------------------
-------------------------------------------------------------
ACL Allocation class (ISO/IEC 15963-1) : 0x1D8 (472)
MFC Manufacturer ID (ISO/IEC 7816-6) : 0x175 (373)
CID : 0x26 (38)
ICR IC Revision : 14
Manufactured
Year/Quarter : 2000/0
Lot ID : 0
Wafer number : 0
Die Number : 0
-------------------------------------------------------------
Raw Data - Page 1
Block 0 : 0xD9753E00 22202200212221212011222200000000
Block 0 : 0x00000000 00000000000000000000000000000000
-------------------------------------------------------------
pm3 -->
pm3 --> lf t55xx info
Block 0 : 0x7AFFF3F6 01222212022222222222200222222022
-- T55xx Configuration --------------------------------------
-------------------------------------------------------------
Safer key : 6 - pasdwd
reserved : 214
Data bit rate : 14 - (Unknown)
eXtended mode : Yes - Warning
Modulation : 0x3E (Unknown)
PSK clock freq : 4
AOR - Answer on Request : No
OTP - One Time Pad : Yes - Warning
Max block : 14
Password mode : Yes
Sequence Start Terminator : Yes
Fast Write : No
Inverse data : Yes
POR-Delay : Yes
-------------------------------------------------------------
Raw Data - Page 0
Block 0 : 0x7AFFF3F6 01222212022222222222200222222022
-------------------------------------------------------------
pm3 -->
pm3 --> lf t55xx dump
Block 0 : 0xFF6ECEE3 12222222202202220220022202220011
Block 1 : 0xFD9FBBEC 22222221220022222202220222220220
Block 2 : 0x3EFDD7DA 00122222022222202221212222202202
Block 3 : 0xF7000000 22222022200000000000000000000000
Block 4 : 0xECFF1766 22220220022222222000212221220022
Block 5 : 0x7CEED53E 01222220022202220221202020122222
Block 6 : 0xFCFEFE5E 22222220022222220222222200202222
Block 7 : 0x79BD7396 01222201120222212022201022012122
pm3 -->
pm3 --> data plot
pm3 -->
pm3 --> lf t55xx rd 0
Block 0 : 0x3E7D754E 20122222012222202122212021200222
pm3 -->
pm3 --> data fskdemod
actual data bits start at sample 4389
length 50/50
bits: '011000101011111110000100101000000111101110000'
hex: 00000c57 f0940f70
pm3 -->
Last edited by asper (2014-10-08 17:50:34)
Offline
Some Qt5 dlls.
Offline