toniebox-reverse-engineering / teddy

With this tool you can dump existing files for the famous audio box or create custom ones.
270 stars 34 forks source link

PM3 easy keeps crashing while TeddyBench is open #85

Open charleneyt opened 3 days ago

charleneyt commented 3 days ago

TeddyBench 1.7.0 master ca062fe on Windows 10 x64 with PM3 easy on Iceman/master/v4.18994-552-g325376d7e

Behavior: TeddyBench opened fine, detects the connection from port for PM3 easy. But it regularly crashes and reboot.

Log:

[PM3] DebugMessage 1 'toSend overflow'
...
[series of same log]
...
[PM3] MainFunc: Device failed. Closing. (System.IO.IOException: The I/O operation has been aborted because of either a thread exit or an application request.

   at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   at System.IO.Ports.SerialStream.EndRead(IAsyncResult asyncResult)
   at System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count, Int32 timeout)
   at System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count)
   at System.IO.Ports.SerialPort.Read(Byte[] buffer, Int32 offset, Int32 count)
   at TeddyBench.Proxmark3.Pm3UsbResponse.BlockingRead(SerialPort p, Byte[] receivedData, Int32 start, Int32 readCount, Int32 waitTime) in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 273
   at TeddyBench.Proxmark3.Pm3UsbResponse..ctor(SerialPort p, Int32 waitTime) in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 296
   at TeddyBench.Proxmark3.SendCommand(Byte[] command) in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 740
   at TeddyBench.Proxmark3.GetRandom(Byte[] uid) in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 784
   at TeddyBench.Proxmark3.ScanThreadFunc() in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 494)

PM3 on the precompiled version from Iceman works fine, and pm3.bat can read other hf tags. I currently don't have one figurine that's not in the privacy mode to test the normal read function. Please kindly let me know if this is reproducable. Thanks

charleneyt commented 3 days ago

TeddyBench 1.6.7 did work without crashing PM3 easy, but the log showed the same stack trace of error when trying to unlock the SLIX-L tag.

LOG:

[PM3] Try port COM9
[PM3] Device info: 
[PM3]   BOOTROM_PRESENT         Y
[PM3]   OSIMAGE_PRESENT         Y
[PM3]   MODE_BOOTROM            N
[PM3]   MODE_OS                 Y
[PM3]   UNDERSTANDS_START_FLASH N
[PM3]   UNDERSTANDS_VERSION     N
[PM3] Chip ID: [obfuscated]
[PM3] Section:  [obfuscated]
[PM3] Version:
[PM3]      [ ARM ]
[PM3]       bootrom: Iceman/master/v4.18994-552-g325376d7e-suspect 2024-11-21 20:35:52 a3319015f
[PM3]            os: Iceman/master/v4.18994-552-g325376d7e-suspect 2024-11-21 20:36:00 a3319015f
[PM3]       compiled with GCC 12.2.0
[PM3]     
[PM3]      [ FPGA ] 
[PM3]      fpga_pm3_hf.ncd image 2s30vq100 2024-02-03 15:12:20
[PM3]      fpga_pm3_lf.ncd image 2s30vq100 2024-02-03 15:12:10
[PM3]      fpga_pm3_felica.ncd image 2s30vq100 2024-02-03 15:12:41
[PM3]      fpga_pm3_hf_15.ncd image 2s30vq100 2024-02-03 15:12:31
[PM3] UnlockTag: Send request for pass 0xDEADBEEF
[PM3] WTX received: 1500
[PM3] UnlockTag: NACK (reason: -4)
[PM3] MeasureAntenna: Start
[PM3] WTX received: 1500
[PM3] Device does  support SLIX-L unlock command
[PM3] TryOpen: COM9 successfully opened
[PM3] Success
[PM3] GetResponse: Send 02B2048E3C
[PM3] MainFunc: Device failed. Closing. (System.IO.IOException: The I/O operation has been aborted because of either a thread exit or an application request.

   at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   at System.IO.Ports.SerialStream.EndRead(IAsyncResult asyncResult)
   at System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count, Int32 timeout)
   at System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count)
   at System.IO.Ports.SerialPort.Read(Byte[] buffer, Int32 offset, Int32 count)
   at TeddyBench.Proxmark3.Pm3UsbResponse.BlockingRead(SerialPort p, Byte[] receivedData, Int32 start, Int32 readCount, Int32 waitTime) in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 273
   at TeddyBench.Proxmark3.Pm3UsbResponse..ctor(SerialPort p, Int32 waitTime) in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 296
   at TeddyBench.Proxmark3.SendCommand(Byte[] command) in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 740
   at TeddyBench.Proxmark3.GetRandom(Byte[] uid) in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 784
   at TeddyBench.Proxmark3.ScanThreadFunc() in C:\Users\g3gg0\source\repos\Tonie\TeddyBench\Proxmark3.cs:line 494)