This commit is contained in:
Philippe Teuwen
2023-10-17 21:19:23 +02:00
parent 1e134f1bcd
commit 652ee4768d
+63 -45
View File
@@ -104,33 +104,44 @@ To run again after installing, just do the following:
### Linux
1. Install the dependencies
- Ubuntu / Debian: `sudo apt install cmake make python3 python3-pip git ninja-build python3-venv build-essential`
- Arch: `sudo pacman -S cmake make python3-pip git ninja base-devel`
Install the dependencies
- Ubuntu / Debian:
`sudo apt install git cmake build-essential python3-venv`
- Arch:
`sudo pacman -S git cmake base-devel python3`
2. Clone the Repository by typing `git clone https://github.com/RfidResearchGroup/ChameleonUltra.git`
Run the following script to clone the Repository, compile the tools and install Python dependencies in a virtual environment.
3. Now go into the newly created folder with `cd ChameleonUltra/software/src`
```sh
#!/bin/bash
4. Build the required config by running `cmake .`
git clone https://github.com/RfidResearchGroup/ChameleonUltra.git
(
cd ChameleonUltra/software/src
mkdir -p out
(
cd out
cmake ..
cmake --build . --config Release
)
)
(
cd ChameleonUltra/software/script
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
deactivate
)
```
5. And the binaries with `cmake --build .`
To run the client after installing, do the following:
6. Go into the script folder with `cd ../script/`
7. Create a virtual enviroment with `python3 -m venv venv`
8. Activate it with `source venv/bin/activate`
9. Install python requirements with `pip3 install -r requirements.txt`
10. Finally run the CLI with `python3 chameleon_cli_main.py`
To run again after installing, just do the following:
1. Activate venv by running `source venv/bin/activate`
2. Run the CLI with `python3 chameleon_cli_main.py`
```sh
cd ChameleonUltra/software/script
source venv/bin/activate
python3 chameleon_cli_main.py
deactivate
```
### MacOS
@@ -140,31 +151,41 @@ To run again after installing, just do the following:
When in the CLI, plug in your Chameleon and connect with `hw connect`. If autodetection fails, get the Serial Port used by your Chameleon and run `hw connect -p COM11` (Replace `COM11` with your serial port, on Linux it may be `/dev/ttyACM0`)
### Common activities
- Connect to the CLI: `hw connect`
- Change slot: `hw slot change -s [1-8]`
*More examples coming soon*
### MFKEY32v2 walk-through
Make sure to be in the `software/` directory and run the Python CLI from there.
- Connect to the CLI: `hw connect`
- Check which slot can be used: `hw slot list`
- Change the slot type, here using slot 8 for a MFC 1k emulation: `hw slot type -s 8 -t MIFARE_1024`
- Init the slot content: `hw slot init -s 8 -t MIFARE_1024`
- or load an existing dump and set UID and anticollision data, cf `hf mf eload -h` and `hf mf econfig -h`
- Enable the slot: `hw slot enable -s 8 --hf`
- Change to the new slot: `hw slot change -s 8`
- Activate the authentication logs: `hf mf econfig --enable-log`
```sh
# Connect to the CLI
hw connect
# Check which slot can be used
hw slot list
# Change the slot type, here using slot 8 for a MFC 1k emulation
hw slot type -s 8 -t MIFARE_1024
# Init the slot content
hw slot init -s 8 -t MIFARE_1024
# or load an existing dump and set UID and anticollision data,
# cf 'hf mf eload' and 'hf mf econfig'
# Enable the slot
hw slot enable -s 8 --hf
# Change to the new slot
hw slot change -s 8
# Activate the authentication logs
hf mf econfig --enable-log
```
Now disconnect, go to a reader and swipe it a few times
- Come back and connect to the CLI: `hw connect`
- See if nonces were collected: `hf mf elog`
- We need 2 nonces per key to recover
- Recover the key(s) based on the collected nonces: `hf mf elog --decrypt`.
Come back
```sh
# connect to the CLI
hw connect
# See if nonces were collected. We need 2 nonces per key to recover
hf mf elog
# Recover the key(s) based on the collected nonces
hf mf elog --decrypt
# Clean the logged detection nonces
hf mf econfig --disable-log
```
Output example:
```
- MF1 detection log count = 6, start download.
@@ -178,8 +199,5 @@ Now disconnect, go to a reader and swipe it a few times
```
- To clean the logged detection nonces: `hf mf econfig --disable-log` then `hf mf econfig --enable-log`
*More examples coming soon*