Proxmark3 community

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.

Announcement

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.

#1 2013-07-10 22:46:06

robertpalmerjr
Contributor
Registered: 2010-04-30
Posts: 23

Proxmark on Mac OS X, HID and CDC, making it all work.

I've started a new thread because this is a summary of a number of issues and an overview of how/why it does or doesn't work on Mac OS X. I'm running version 10.8.2 and have XCode 4.6.2 installed. (gcc --version: i686-apple-darwin11-llvm-gcc-4.2)

The HID/CDC stuff and whether the device appears or not is referenced in this thread: http://proxmark.org/forum/viewtopic.php?id=1574 and this thread: http://proxmark.org/forum/viewtopic.php?id=1614

Refer to this thread: http://www.proxmark.org/forum/viewtopic.php?pid=7780#p7780 for information on how to build on Mac OS X.

After backing away from the problem for a bit, when I returned, I realized that I had missed a critical concept and that my system is working as it should. When I plug in the PM3 (r486) nothing appears in the /dev directory. That's correct, r486 appears as an HID device, and one of two things will occur on a Mac:

1. The Mac HID driver will grab it, making it inaccessible from libusb
2. If the appropriate codeless kext exists, the PM3 will NOT be attached to the Mac HID driver and will thus be available for access by libusb

Notice the common component of the two cases: libusb

In either case, the PM3 r486 will NEVER appear in the /dev directory because it is not supposed to!  The device is an HID device and should only appear in the USB component tree.  If you use 'USB Prober', you should see the device listed as "ProxMark-3 RFID Instrument" and if you open the disclosure triangle, then click on Port Information, it should show "Not Captive".  This means that libusb WILL be able to access the HID device.  This situation is also the case with ALL versions of firmware that are pre-672.

SUMMARY: If one wants to use the PM3 with pre-672 firmware on the Mac it MUST be accessed via libusb, because, it IS an HID device!  This is case #2 above, and the codeless kext must also be used.

This means that to access my r486 PM3, I CANNOT use the host app from a build of 672 or newer because the host software post rev 672 removes the libusb calls to access the device and assumes the CDC interface.  This was the piece I was missing.  I must use a version of the host app that still uses libusb to access the PM3!  This means a version of the host app from pre-672

--- SUMMARY ---
If your PM3 firmware is pre 672, it IS HID and you must:
- use the codeless kext to prevent the OS from grabbing the device
- use pre 672 host application to communicate with the device

If your PM3 firmware is 672 or later it uses the CDC interface:
- it should appear in the /dev directory.
- the PM3 is accessible as a standard file device. 
- You MUST use host software 672 or later.

I have verified all of this except running 672 or later on my Mac.  That's the next step. 

My PM3 is r486, and I built the r486 client on my mac and was able to use the PM3 successfully.

On a final note, the flash programmer, to be able to work in both cases, should be supporting both the libusb access (for accessing the PM3 with pre 672 firmware, the HID device) and the /dev file access approach (for 672 and newer firmware). 

This is my next task, upgrading my PM3 to the latest firmware using my Mac

Offline

#2 2017-08-07 00:25:58

Navster
Contributor
Registered: 2017-07-09
Posts: 50

Re: Proxmark on Mac OS X, HID and CDC, making it all work.

robertpalmerjr wrote:

I've started a new thread because this is a summary of a number of issues and an overview of how/why it does or doesn't work on Mac OS X. I'm running version 10.8.2 and have XCode 4.6.2 installed. (gcc --version: i686-apple-darwin11-llvm-gcc-4.2)

The HID/CDC stuff and whether the device appears or not is referenced in this thread: http://proxmark.org/forum/viewtopic.php?id=1574 and this thread: http://proxmark.org/forum/viewtopic.php?id=1614

Refer to this thread: http://www.proxmark.org/forum/viewtopic.php?pid=7780#p7780 for information on how to build on Mac OS X.

After backing away from the problem for a bit, when I returned, I realized that I had missed a critical concept and that my system is working as it should. When I plug in the PM3 (r486) nothing appears in the /dev directory. That's correct, r486 appears as an HID device, and one of two things will occur on a Mac:

1. The Mac HID driver will grab it, making it inaccessible from libusb
2. If the appropriate codeless kext exists, the PM3 will NOT be attached to the Mac HID driver and will thus be available for access by libusb

Notice the common component of the two cases: libusb

In either case, the PM3 r486 will NEVER appear in the /dev directory because it is not supposed to!  The device is an HID device and should only appear in the USB component tree.  If you use 'USB Prober', you should see the device listed as "ProxMark-3 RFID Instrument" and if you open the disclosure triangle, then click on Port Information, it should show "Not Captive".  This means that libusb WILL be able to access the HID device.  This situation is also the case with ALL versions of firmware that are pre-672.

SUMMARY: If one wants to use the PM3 with pre-672 firmware on the Mac it MUST be accessed via libusb, because, it IS an HID device!  This is case #2 above, and the codeless kext must also be used.

This means that to access my r486 PM3, I CANNOT use the host app from a build of 672 or newer because the host software post rev 672 removes the libusb calls to access the device and assumes the CDC interface.  This was the piece I was missing.  I must use a version of the host app that still uses libusb to access the PM3!  This means a version of the host app from pre-672

--- SUMMARY ---
If your PM3 firmware is pre 672, it IS HID and you must:
- use the codeless kext to prevent the OS from grabbing the device
- use pre 672 host application to communicate with the device

If your PM3 firmware is 672 or later it uses the CDC interface:
- it should appear in the /dev directory.
- the PM3 is accessible as a standard file device. 
- You MUST use host software 672 or later.

I have verified all of this except running 672 or later on my Mac.  That's the next step. 

My PM3 is r486, and I built the r486 client on my mac and was able to use the PM3 successfully.

On a final note, the flash programmer, to be able to work in both cases, should be supporting both the libusb access (for accessing the PM3 with pre 672 firmware, the HID device) and the /dev file access approach (for 672 and newer firmware). 

This is my next task, upgrading my PM3 to the latest firmware using my Mac


after updating to v3
my proxmark CDC is showing up as HID on my mac?
Any thoughts?

Offline

Board footer

Powered by FluxBB