![]() Searching for strings containing the word “hardware” reveals a very interesting string:Īha! We can now see that the hardware agent and the Maschine 2 application are using CFMessagePort's for interprocess communication. The one I decided to take was to search the Maschine 2 binary for strings related to certain words I thought might be related to the driver or the device itself. There are many different steps that could’ve been taken here. There is likely a better way to finding the process that has our interface open, but I’ll describe the steps I took because it appropriately describes the messy reverse engineering process. It looks like another process has already opened our USB interface! Finding the Owning Process Looking at the ioreturn.h header, we can see that this error code corresponds to the kIOReturnExclusiveAccess error. If we look at the IOReturn error code from the call, we always get code 0x2C5. Running the code, everything works fine until the call to, USBInterfaceOpen. We’ll follow the guide at, specifically Listing 2–8. Let’s try to get a handle to the HID USB interface to see if we can read data from it. ![]() We’ll just be concerned with the HID interface since that would be the interface that button commands are sent through. An HID (human interface device) and a DFU (device firmware upgrade) interface.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |