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 apologize being on windows, in docker, using Linux using a new system for the pm3 is a lot of layers I have little to no familiarity with and I'm having a hard time understanding which element of the above has the issue and how to get through it.
Attempting to following these directions posted in the forum:
git pull
make clean
make all
client/flasher /dev/ttyACM0 armsrc/obj/fullimage.elf
cd client
./proxmark3 /dev/ttyACM0
I do the following:
git pull
make clean
make all
All above work fine.
client/flasher /dev/ttyACM0 armsrc/obj/fullimage.elf
I get the following:
Loading ELF file /armsrc/obj/fullimage.elf' . . .
Loading Usable ELF segments:
0: V 0x00102000 P 0x00102000 (0x0002fff8->0x0002fff8) [R X] @0x94
1: V 0x00200000 P 0x0013aff8 (0x0001ae8->0x0001ae8) [RW ] @0x3008c
Waiting for Proxmark to appear on dev/ttyACM0 . . . . .
And it just hangs and continues making dots.
The Proxmark lights the 2 red lights when I give this command, so i'm guessing something isn't loading or resetting correctly.
I'm under the impression I don't need to install the Linux driver just the windows one. It is either not needed or already in the docer container. Also per the above list I don't need to load the bootrom. Please let me know if I'm wrong on either of those and that is my problem.
Any Advice would be greatly appreciated.
Offline
Did you download and install the extension pack, which enables the USB device?
Did you add the proxmark3 device in the virtualbox manager settings for the docker host?
Offline
I also deleted your double thread.
Offline
Expansion pack was installed. It wouldn't let me run prior to setting up the proxmark3 in virtual box. I'm pretty sure I've got the usb virtual box stuff decent. You have system ~~~~.18 for the virtua box and I have the newer ~~~~~.20 and ~~~~.20 expansion pack. Any chance that might be an issue?
Offline
No no, the update to .20 is good.
And you re-started the docker-host, ok,
So when you run the "flasher" command, does your PM3 light up with 2lights?
Offline
I get 2 solid red lights when running the flash above. Not sure from memory what if any thing happens with the blue/yellow lights or other lights.
Offline
Two red lights means that you have communication between client inside docker container and your pm3 device.
Thats good, but the hanging seems strange.
You did the "git pull" and re-compiled? hm, strange...
Offline
I have been doing the full - open new docker window - docker run - git pull - make clean - make all - then flash
Here is the slightly different error I get ..... as you can see it connects to the Proxmark, so I would think I have the USB settings right.
Loading ELF file 'armsrc/obj/fullimage.elf'...
Loading usable ELF segments:
0: V 0x00102000 P 0x00102000 (0x0002fff8->0x0002fff8) [R X] @0x94
1: V 0x00200000 P 0x00131ff8 (0x00001aec->0x00001aec) [RW ] @0x3008c
Note: Extending previous segment from 0x2fff8 to 0x31ae4 bytes
Waiting for Proxmark to appear on /dev/ttyACM0. Found.
Entering bootloader...
(Press and release the button only to abort)
Waiting for Proxmark to reappear on /dev/ttyACM0..............................................................
It just hangs and keeps making dots.
The lights on the proxmarks after entering the command give me (2) solid red - a solid blue , solid yellow and flashing orange.
When I enter the command I hear the usb disconnect sound from windows. I'm thinking that it is not reconnecting fast enough or correctly back to the docker. Any thoughts on a setting I might have wrong or could reset. Should it be disconnecting from windows when I enter the command?
Just another quick check I don't need to hold the button on the Proxmark - my understanding is the button hold was for the old "hid" flashing.
Offline
I have the same problem as you initially, after that I figure out I need to press and hold the pm3 button before I connect to the usb port (still pressing the button) and enter the command "make flash-all".. viola...
Offline
Does that work? Im curious. With the holding the button and flash?
Offline
At least for my case.. i have exactly same problem as greatone76.. it hangs while flashing the pm3 in the docker..
Last edited by lohcm88 (2016-05-10 06:18:38)
Offline
by the way @iceman, I have not actually explore more on this docker thingy yet.. I managed to compile your fork and flash the pm3 using the docker. I wanted to ask if I do a hf mf nested / hardnested or dump command.. where do i go look for the dump files? Is it in the docker or in my pc? I tried a hardnested command yesterday and it generate the nonces.bin file... i can't seems to find this nonces.bin file in the docker or my pc itself... any guides?
Offline
Inside the docker container, the whole idea with a docker container is that the software runs in the same state as when it was made. So you need to copy files out from the container to your host os. I'vent looked into it but "docker cp" is the thing to google.
You might need to mount a folder on your pc/host os,
If you don't move it outside the container, it will be gone when you close it. If I get more time with it, I'll look into makeing the "git pull etc" stuff to run automatic in the startup-shell. Making sure that everytime you run the docker container it has the latest git and compiled it. Flashing will be optional but highly recommended.
But since you managed to build my fork, on your pc/mac, you don't need the docker container. And you will not have the issue with everything get lost when exiting it.
Offline
thx iceman... I've tried the vmware and player.. it is resource hogging and I am a noob in ubuntu... this docker is more straightforward and lighter.. but I still hope to find a way to upgrade the GCC version in Mingw to compile your fork..
Offline
I uploaded a screen-capture on youtube how to run the docker container.
ref: https://youtu.be/b5Zta89Cf6Q
I didn't have access to my pm3, so it doesn't show actual running.
Offline
The suggested "make flash-all" with the PM3 button pushed makes the PM3 flash and that appears to work correctly.
By when I then do "cd client" then "./proxmark3 /dev/ttyACM0" it gives me:
ERROR: invalid serial port
It gives me the pm3 prompt and I can do the help.
I did dmesg and confirmed I'm still on ttyACM0.
Any advice.
Offline
U have exactly same prob as me.. lol
U can type EXIT and go back to $ again.
Then run
1) docker run -it --device="/dev/ttyACM0" iceman1001/proxmark3:1.6.0
2) cd proxmark3
3) cd client
4)./proxmark3 /dev/ttyACM0
Offline
Thanks for the advice lihcm88.
After flashing I exit back and run again and the program starts, but hangs after the a few lines of the start up. See below rerunning after flashing and where it hangs.
$ docker run -it --device="/dev/ttyACM0" iceman1001/proxmark3:1.6.0
root@2cf132bb94ab:/opt# cd proxmark3
root@2cf132bb94ab:~# cd client
root@2cf132bb94ab:~/client# ./proxmark3 /dev/ttyACM0
Prox/RFID mark3 RFID instrument
bootrom: icemanmaster/-suspect 2016-05-11 04:57:58
os: icemanmaster/-suspect 2016-05-11 04:57:59
LF FPGA image built for 2s30vq100 on 2015/03/06 at 07:38:04
HF FPGA image built for 2s30vq100 on 2015/11/ 2 at 9: 8: 8
uC: AT91SAM7S512 Rev B
Embedded Processor: ARM7TDMI
Any advice?
Offline
I did not get hang in my pc.. perhaps u can retry?
$ docker run -it --device="/dev/ttyACM0" iceman1001/proxmark3:1.6.0
root@5e88e3544e6f:/opt# cd proxmark3
root@5e88e3544e6f:~# cd client
root@5e88e3544e6f:~/client# ./proxmark3 /dev/ttyACM0
Prox/RFID mark3 RFID instrument
bootrom: icemanmaster/-suspect 2016-05-11 05:44:32
os: icemanmaster/-suspect 2016-05-11 05:44:35
LF FPGA image built for 2s30vq100 on 2015/03/06 at 07:38:04
HF FPGA image built for 2s30vq100 on 2015/11/ 2 at 9: 8: 8
uC: AT91SAM7S512 Rev B
Embedded Processor: ARM7TDMI
Nonvolatile Program Memory Size: 512K bytes. Used: 211639 bytes (40%). Free: 312649 bytes (60%).
Second Nonvolatile Program Memory Size: None
Internal SRAM Size: 64K bytes
Architecture Identifier: AT91SAM7Sxx Series
Nonvolatile Program Memory Type: Embedded Flash Memory
pm3 -->
Offline
I suggest that when you start the docker-container,
that you always follow these steps:
cd proxmark3
git pull
make clean
make all
--- either flash once if you haven't updated yr pm3 to my fork before.
-- or skip to running the client.
client/flasher /dev/ttyACM0 armsrc/obj/fullimage.elf
cd client
./proxmark3 /dev/ttyACM0
-- inside pm3 client
-- to see how fast usb communications you get.
pm3-> hw status
Offline
I noticed something today. The USB transfer speed is really slow, when I had the virtualbox setting on USB2.0 (EHCI)
I changed it to USB3.0 (xHCI) then restarted the dockerhost. When I run the "hw status" this time, the speed were great and it all works just fine.
Does this solve your issues?
I did a new video to show the changes and how it works when I run my setup. https://youtu.be/0ZS2t5C-caI
HF SEARCH finds the 14b card
HF SEACH finds the 14a card
HF MF MIFARE
HF MF NESTED
HF MF CHK
Offline
I did try to flash using the docker container, ... and it fails...
I figured out that the virtualbox doesn't reconnect the USB device on the docker-host automatic if you don't use the usb-filter thing in settings.
However, it still doesn't allow the docker container to get the device again,.. steps:
1. flasher sends the command to reset the device in bootrom mode
2. device resets (click) and disconnects from the docker-container and host OS.
3. host OS finds device, if you set the virtualbox right, even the docker-host will detect the USB device
4. inside docker-container the flasher command waits and waits for the pm3 device to show up..
You can now either control-c , exit to docker, and restart docker run -ti -device...
git pull, make all, and run the flasher command once again where it now finds the device in right mode...
Too complex. I need to find a way for the docker-container to get the usb-device reconnected...
Offline
The run it once through to put it in flashing mode
quitting and rerunning it to flash
quitting again and rerunning again to run the software.
Worked for me.
When I tried running the software after the 2nd time I got a invalid serial port error.
Thank you all, especially iceman for the support needed to get me through this process to the point where I appear to have a working version of the iceman fork that I can simulate my NTAG213.
Last edited by greatone76 (2016-05-12 03:01:01)
Offline
The docker-container not getting the PM3 back is annoying. Its a game changer. I'll have to find a way for it to work otherwise the docker setup is not so useful as I wanted it to be. All of this because of the new hardnested BF solver, which needs a newer GCC..
Great that you got to flash the fullimage, took a while.
The invalid serial port, is the docker-container not having access to your PM3 device. I hope that you can get the NTAG213 simulation tested now.
Offline
I have made a new Docker image, version1.6.1,
it contains:
- nano, the texteditor
- perl,
- usbtools, for the command "lsusb"
- start.sh a new bash script, which pulls the latest source from icemanfork, make clean and make all.
- copy the blacklist rule from /driver folder into /etc/udev/rules.d/
- WORKDIR is now set to /opt/proxmark3
and there is a new docker run command, which adds a shared folder so you can save your files.
docker run -it \
--device="/dev/ttyACM0" \
--privileged \
-v $HOME/Downloads:/opt/proxmark3/Data \
iceman1001/proxmark3:1.6.1
Offline
I got a solution, better than now, for the device on /dev/ttyACM0 gets disconnected when flashing etc.
client/flasher /dev/ttyACM0 armsrc/obj/fullimage.elf
--> keeps waiting for device to come back online. press CTRL-C
mknod /dev/ttyACM0 c 166 0
client/flasher /dev/ttyACM0 armsrc/obj/fullimage.elf
mknod /dev/ttyACM0 c 166 0
cd client
./proxmark3 /dev/ttyACMO
The "mknode" command gets the container connected with the device again. instead of restarting the container, it can all be done in one place. Which is much better than before, not perfect still
Offline
Just to make it easier, I made a video to demonstate how the process works.
Offline
I pushed a new docker image, v1.6.2
Offline
I pushed a new docker image, v1.6.3
https://hub.docker.com/r/iceman1001/proxmark3/
--NOTES
This version fixes the -ncurses dependency problem introduced with fixing for slackware.
With my latest fixes and stuff as usual
Do star it on the frontpage if you like it, so I know if I should continue with this docker container or not.
Offline
I pushed a new docker image, v1.6.4
https://hub.docker.com/r/iceman1001/proxmark3/
--NOTES
So many fixes and minor stuff that I decided to make a new image.
Offline
Hi Iceman,
Thank you very much for such a great docker container ...
It has become unavoidable and very helpful
Thanks once again
Offline
I pushed a new docker image, v1.6.6
https://hub.docker.com/r/iceman1001/proxmark3/
--NOTES
fixes to hardnested and legic stuff.
I decided to skip over naming 1.6.5, so the GitHub releases are now in sync with my docker container versions.
Offline
Hi,
I am installing this on a new computer and have everything ready in theory :
- The latest VirtualBox, the extension installed for this version.
- The latest Docker for Windows
I did the pull of your container, I can run the "run it" command, execute the start.sh script that compiles everything.
The problem is when I want to connect to the proxmark because it tells me the /dev/ttyACM0 is unknown.
On another computer I saw the docker container in VirtualBox but now I don't see anything, so I am unable to do the "enable USB" in VirtualBox... I imagine this is the reason of my error.
For an Ubuntu I have in VirtualBox I see the proxmark001 in the USB list so at least the drivers seem to be installed ok.
Any way of importing the image in VirtualBox to do this ? I searched my disk and did not find where Docker would store it...
If not, any way of activating it in command line for instance ?
Thanks.
Offline
So, last virtualbox + extension. check.
turn of the virtualbox, and check if the USB device is configured for USB3.0 controller. If so the device will not work. Make sure its set for USB2.0
You have to look in docker documentations to find where the client stores its images etc. I normally clean them but that is docker commands aswell. Google-Foo it.
Offline
Thought I had written an answer but my post is not there...
I found out that in order to use VirtualBox, Docker Toolbox must be installed instead of Docker for Windows which I previously installed.
One uses VirtualBox, the other HyperV...
Uninstalling the "bad" one and installing the Docker Toolbox, and disabling HyperV, I successfully did all the steps and can now connect again to my proxmark 3 happily :-D
Thanks
Offline
Nice, does the docker instructions for windows need to be re-written?
Offline
Not really, I'd say maybe specify which Docker installer chouls be chosen.
Also, for the pull I had to specify the specific version :
"docker pull iceman1001/proxmark3:1.6.6" instead of just "docker pull iceman1001/proxmark3"
Because if you do not specify the version, it searches for "latest", and in my case it gave an error that version "latest" could not be found.
Offline
Aha, so you have to do a pull? I think I just run it:
docker run -it --device="/dev/ttyACM0" --privileged -v $HOME/Downloads:/opt/proxmark3/Data iceman1001/proxmark3:1.6.6
Offline
I pushed a new docker image, v1.6.8
Offline
I pushed a new docker image, v1.6.9
Offline