iceman wrote:There has been several attempts to re-implement the pm3 client in to new programming languages over the years, even for android apps like "Project Walrus" etc. All have failed due to the amount of time needed. I have seen one embedded (@cjbrigato) solution which does a pretty good job but still doesn't implement the full client.
Your questions on how to limit the scope of a project is too broad to answer. I would suggest you look at exactly what you want to run on your project and implement the bare minimum for that to work. Its all down to source code reading.
I guess he might not need to migrate the whole project to another language? STM32 uses C language so he can just change some code about the client (such as the code about serial communication) and just compile it.
Anyway, I'm new in this forum with little knowledge of PM3, Electronics, and Computer Sciences. I'm still exploring this project and I might make some unreasonable guess due to the lack of related knowledge. If it's offensive, I'm sorry about that.
Actually you are quite right, as the Client is in C language and it can be transformed on ARM microcontrollers, but there might some tricky parts to that, as the Client code uses Windows libraries. That requires a lot of modifications!!!!! I guess. So if anybody is up in doing so, please raise a hand?
]]>There has been several attempts to re-implement the pm3 client in to new programming languages over the years, even for android apps like "Project Walrus" etc. All have failed due to the amount of time needed. I have seen one embedded (@cjbrigato) solution which does a pretty good job but still doesn't implement the full client.
Your questions on how to limit the scope of a project is too broad to answer. I would suggest you look at exactly what you want to run on your project and implement the bare minimum for that to work. Its all down to source code reading.
I guess he might not need to migrate the whole project to other language? STM32 uses C language so he can just change some code about the client (such as the code about serial communication) and just compile it.
Anyway, I'm new in this forum with little knowledge of PM3, Electronics and Computer Sciences. I'm still exploring this project and I might make some unreasonable guess due to the lack of related knowledge. If it's offensive, I'm sorry about that.
So many thanks for your time and consideration.
You are welcome. I used to have the same goal as yours and I'm happy that someone can make it possible.
]]>Taha wrote:wh201906 wrote:Here are some of my thoughts.
The header file "proxmark3/include/usb_cmd.h" and "proxmark3/client/hid-flasher/proxusb.h" might help.
When I try to sniff the communication between the client and PM3, it seems the length of every frame is fixed.
They might use the serial port to communicate, that's why the AndProx, a Android version of PM3 client, can use the native serial port library to communicate without root permission.
The easiest way might be using some tiny ARM chips which could run a linux system on it, then you just need to compile the PM3 on it.1)Good hints, thank you very much. Can you please tell me whether the folder "proxmark3/client/" is the source codes CMD-client running on windows? If yes. Can I just program an STM32 with them, kinda bringing the client up, on an STM32 as a plane Microcontroller that controls MP3?
2) The frame of commands is fixed but not the data (the responses to the commands)! I have not looked at the Android version PM3 client, but does not that call cmd client within itself?
3) Yes, that way it's easy, as I only would build the client on an OS-based ARM micro. But I want to eliminate the requirement for having an OS on my controller, making it pretty simple.1. I‘m not very familiar with the source of PM3, but I guess that the /client folder is exactly the source code of PM3 client and it support various operating systems. You might need to change and add a lot of codes, such as the USB Host, to make a STM32 chip support these functions.(I'm new to STM32 now and I once had the same idea as yours, but it seems to be a tough task for me.)
2. I didn't notice the responses before. I think the AndProx still uses the code of /client and it replace the USB_HID module with the Android native libraries. Their codes might give you little inspiration.
So many thanks for your time and consideration.
]]>wh201906 wrote:Here are some of my thoughts.
The header file "proxmark3/include/usb_cmd.h" and "proxmark3/client/hid-flasher/proxusb.h" might help.
When I try to sniff the communication between the client and PM3, it seems the length of every frame is fixed.
They might use the serial port to communicate, that's why the AndProx, a Android version of PM3 client, can use the native serial port library to communicate without root permission.
The easiest way might be using some tiny ARM chips which could run a linux system on it, then you just need to compile the PM3 on it.1)Good hints, thank you very much. Can you please tell me whether the folder "proxmark3/client/" is the source codes CMD-client running on windows? If yes. Can I just program an STM32 with them, kinda bringing the client up, on an STM32 as a plane Microcontroller that controls MP3?
2) The frame of commands is fixed but not the data (the responses to the commands)! I have not looked at the Android version PM3 client, but does not that call cmd client within itself?
3) Yes, that way it's easy, as I only would build the client on an OS-based ARM micro. But I want to eliminate the requirement for having an OS on my controller, making it pretty simple.
1. I‘m not very familiar with the source of PM3, but I guess that the /client folder is exactly the source code of PM3 client and it support various operating systems. You might need to change and add a lot of codes, such as the USB Host, to make a STM32 chip support these functions.(I'm new to STM32 now and I once had the same idea as yours, but it seems to be a tough task for me.)
2. I didn't notice the responses before. I think the AndProx still uses the code of /client and it replace the USB_HID module with the Android native libraries. Their codes might give you little inspiration.
Here are some of my thoughts.
The header file "proxmark3/include/usb_cmd.h" and "proxmark3/client/hid-flasher/proxusb.h" might help.
When I try to sniff the communication between the client and PM3, it seems the length of every frame is fixed.
They might use the serial port to communicate, that's why the AndProx, a Android version of PM3 client, can use the native serial port library to communicate without root permission.
The easiest way might be using some tiny ARM chips which could run a linux system on it, then you just need to compile the PM3 on it.
1)Good hints, thank you very much. Can you please tell me whether the folder "proxmark3/client/" is the source codes CMD-client running on windows? If yes. Can I just program an STM32 with them, kinda bringing the client up, on an STM32 as a plane Microcontroller that controls MP3?
2) The frame of commands is fixed but not the data (the responses to the commands)! I have not looked at the Android version PM3 client, but does not that call cmd client within itself?
3) Yes, that way it's easy, as I only would build the client on an OS-based ARM micro. But I want to eliminate the requirement for having an OS on my controller, making it pretty simple.
And can you also please provide me the link to the CMD-client source codes? All I can find are the compiled versions
Have you tried searching for github for the proxmark for the source code ?
Yes, I actually search it all but no clue. there is a folder in PM3 source codes namely "client", consisting of a bunch of C codes related to the receiving and parsing the commands. But I'm not sure if these are the source codes of the client. Can you check them out and steer me in the right direction?
]]>A Serial Monitor might help
I'm actually using a Serial Monitor software, but, the commands and their responses are all coded hex values, which I can not understand the protocol to reimplement the protocol. Therefore I need the code indicating the coding protocol being used under CMD-based client. Any help in this regard?
]]>And can you also please provide me the link to the CMD-client source codes? All I can find are the compiled versions
Have you tried searching for github for the proxmark for the source code ?
]]>Your questions on how to limit the scope of a project is too broad to answer. I would suggest you look at exactly what you want to run on your project and implement the bare minimum for that to work. Its all down to source code reading.
]]>