Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f597e18ab3 | ||
|
|
fefcde542b | ||
|
|
e3cbd598ec | ||
|
|
0124709067 | ||
|
|
cc674f1669 | ||
|
|
42317a7bc4 | ||
|
|
05ea03d31c | ||
|
|
7fdb358e8b | ||
|
|
3b14270976 | ||
|
|
af91ddcda9 | ||
|
|
5b67a895eb | ||
|
|
494735a07d | ||
|
|
12fd5f23f7 | ||
|
|
e79568298f | ||
|
|
4d670f051a | ||
|
|
ecf3c06886 | ||
|
|
7d851d2a22 | ||
|
|
d973ee6671 | ||
|
|
ece5e79060 | ||
|
|
d77e166249 | ||
|
|
ff3df15278 | ||
|
|
55cd19f0db | ||
|
|
bb47bd5159 | ||
|
|
7ea8cc1f98 | ||
|
|
55228d1489 | ||
|
|
299562bbdd | ||
|
|
c2f0f0d408 | ||
|
|
c91514efa1 | ||
|
|
74f4eb8822 | ||
|
|
f04943f59b | ||
|
|
771e6ded54 | ||
|
|
ab07dff904 | ||
|
|
980960c43d | ||
|
|
6e19d078f4 | ||
|
|
eac246fc0c | ||
|
|
83583075c4 | ||
|
|
fa0754aed2 | ||
|
|
aa3fe711af | ||
|
|
cb1878440d | ||
|
|
2beb8f74a3 | ||
|
|
82fcc76286 | ||
|
|
652ee4768d | ||
|
|
1e134f1bcd | ||
|
|
15698fb338 | ||
|
|
1ec025a24b | ||
|
|
0e3144c994 | ||
|
|
363ff4f345 | ||
|
|
070db3d773 | ||
|
|
3456d4c15d | ||
|
|
d5187d3017 | ||
|
|
372bcf2460 | ||
|
|
324dc578e5 | ||
|
|
830ba98721 | ||
|
|
8ef42c705c | ||
|
|
43a6e822e6 | ||
|
|
f9be867029 | ||
|
|
b35c1fadd9 | ||
|
|
c1c10e9ba3 | ||
|
|
15bcae78be | ||
|
|
446b57e89f | ||
|
|
6236fdd4cf | ||
|
|
bac3552d85 | ||
|
|
ea6576c567 | ||
|
|
4fe9e1ea5b | ||
|
|
ffb6e00f1e | ||
|
|
c4aef7e373 | ||
|
|
f512cbdbee | ||
|
|
f93418b7d8 | ||
|
|
89aa8c48f1 | ||
|
|
ab7592e7be | ||
|
|
61cc4f5891 | ||
|
|
b6d2badab4 | ||
|
|
4927e0166c | ||
|
|
9106dea953 | ||
|
|
75e368da62 | ||
|
|
c9e4507d8f | ||
|
|
a9f775ff19 | ||
|
|
a2121de79e | ||
|
|
336ec82e49 | ||
|
|
2d3538f4c2 | ||
|
|
8080c9b259 | ||
|
|
2f4d84ed2c | ||
|
|
deb6684c0d | ||
|
|
dd5ff244d3 | ||
|
|
8fc45a67a4 | ||
|
|
831c401b5d | ||
|
|
dcebc89654 | ||
|
|
1da470b8fe | ||
|
|
45deb30d4a | ||
|
|
efd7405bd8 | ||
|
|
a47e9b8b03 | ||
|
|
cd51061bb0 | ||
|
|
d127f0a641 | ||
|
|
47742d5984 | ||
|
|
18a1770c80 | ||
|
|
0f730affa7 | ||
|
|
6cad966e7a | ||
|
|
3aa73a2def | ||
|
|
0c6abbea9d | ||
|
|
3022e0550c | ||
|
|
1ce506a5ad | ||
|
|
7ae3820913 | ||
|
|
465ada3544 | ||
|
|
bb0ad66a78 | ||
|
|
be7fad4906 | ||
|
|
707b0c6d4a | ||
|
|
702dba0d93 | ||
|
|
0d2c3fae89 | ||
|
|
eac1b31b3c | ||
|
|
5ea6519577 | ||
|
|
8f552773f1 | ||
|
|
42b715575c | ||
|
|
606ec02e30 | ||
|
|
226efbc3d5 | ||
|
|
7efe23edb2 | ||
|
|
48bf852465 | ||
|
|
5519715c10 | ||
|
|
4a94db10bf | ||
|
|
6915ee19a4 | ||
|
|
43cadeb84d | ||
|
|
55b4053acb | ||
|
|
4347cd9048 | ||
|
|
e757c58a20 | ||
|
|
4e1dec06ad | ||
|
|
ef1ccb40d8 | ||
|
|
db3f8ce1d7 | ||
|
|
ac1f518f0a | ||
|
|
3fc985973c | ||
|
|
e52b0302bf |
@@ -19,32 +19,47 @@ jobs:
|
||||
pre_command: |
|
||||
? .
|
||||
bundle_command: |
|
||||
Compress-Archive -Path software\* -DestinationPath client-windows.zip
|
||||
Compress-Archive -Path software\dist\* -DestinationPath client-windows.zip
|
||||
- name: linux
|
||||
os: ubuntu-latest
|
||||
pre_command: |
|
||||
true
|
||||
bundle_command: |
|
||||
(cd software && zip -r "$OLDPWD/client-linux.zip" .)
|
||||
(cd software/dist && zip -r "$OLDPWD/client-linux.zip" .)
|
||||
- name: macos
|
||||
os: macos-latest
|
||||
pre_command: |
|
||||
true
|
||||
bundle_command: |
|
||||
(cd software && zip -r "$OLDPWD/client-macos.zip" .)
|
||||
(cd software/dist && zip -r "$OLDPWD/client-macos.zip" .)
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ inputs.checkout-sha == null && github.sha || inputs.checkout-sha }}
|
||||
- name: Install PyInstaller and client dependencies
|
||||
run: |
|
||||
pip3 install pyinstaller
|
||||
pip3 install -r software/script/requirements.txt
|
||||
- name: Run OS specific setup
|
||||
run: ${{ matrix.pre_command }}
|
||||
- name: Compile native code
|
||||
run: |
|
||||
cd software/src
|
||||
mkdir out
|
||||
cd out
|
||||
cmake ..
|
||||
cmake --build . --config Release
|
||||
- name: Run PyInstaller
|
||||
run: |
|
||||
cd software
|
||||
pyinstaller pyinstaller.spec
|
||||
- name: Upload built client
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: client-${{ matrix.name }}
|
||||
path: software/*
|
||||
path: software/dist/*
|
||||
- name: Zip up client for release
|
||||
run: ${{ matrix.bundle_command }}
|
||||
- name: Upload release artifacts
|
||||
|
||||
@@ -3,8 +3,34 @@ All notable changes to this project will be documented in this file.
|
||||
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
||||
|
||||
## [unreleased][unreleased]
|
||||
- Skip already used items `hf mf elog --decrypt` (@p-l-)
|
||||
- Parallelize mfkey32v2 processes called from CLI (@p-l-)
|
||||
- Added support for mifare classic value block operations (@taichunmin)
|
||||
- Added regression tests (@doegox)
|
||||
- Changed git version to version tag instead of dev tag (@taichunmin)
|
||||
- Fixed 14A emulate bug and MF1 emulate bug (@spp2000 and @xianglin1998)
|
||||
- Fixed `hf 14a raw` command raising `AttributeError` (@augustozanellato)
|
||||
- Fixed ATS handling in tags that NAK RATS (@augustozanellato)
|
||||
- Changed battery level curves based on experimental measures (@spp2000)
|
||||
- Added multithreading on Nested and StaticNested (@xianglin1998)
|
||||
- Fixed factory reset hanging (@augustozanellato)
|
||||
- Changed fds_write_sync to take length in bytes instead of next multiple of 4 (@doegox)
|
||||
- Fixed field LED when LF reading and HF cloning (@doegox)
|
||||
- Added renaming of slot into "cloned" when having cloned an ID/UID with a button (@doegox)
|
||||
- Fixed spurious LED in battery level, assigned battery level to long press B (@doegox)
|
||||
- Changed `hw slot list` to display LF ID & HF anticol data, and names in the --short version too (@doegox)
|
||||
- Added colors to CLI help (@doegox)
|
||||
- Changed massively CLI, cf https://github.com/RfidResearchGroup/ChameleonUltra/issues/164#issue-1930580576 (@doegox)
|
||||
- Changed CLI help: lists display and now all commands support `-h` (@doegox)
|
||||
- Added button action to show battery level (@doegox)
|
||||
- Added GUI Page docs (@GameTec-live)
|
||||
- Changed CLI threads polling into blocking reads, to reduce CPU usage (@doegox)
|
||||
- Added support for timestamped comments in CLI via `rem`, `;`, `%` or `#` (@doegox)
|
||||
- Fixed watchdog trigger during `hw factory_reset` (@doegox)
|
||||
- Added PyInstaller support for CLI client (@augustozanellato)
|
||||
|
||||
## [v2.0.0][2023-09-26]
|
||||
- Added `hw slot nick delete` and DELETE_SLOT_TAG_NICK (@doegox)
|
||||
- Changed APP_FW_VER now deduced from git tag vx.y.z (@doegox)
|
||||
- Changed initial button wakeup from 4 to 8 seconds (@aramova)
|
||||
- Added MIFARE Ultralight reading features (@FlUxIuS & @doegox)
|
||||
|
||||
@@ -14,6 +14,28 @@ Anywhere else: [Sneaktechnology](https://sneaktechnology.com) / [Aliexpress by R
|
||||
|
||||
Read the [available documentation](docs/README.md).
|
||||
|
||||
# Public Roadmap with reference to [Here](https://github.com/RfidResearchGroup/ChameleonUltra/wiki/Public-Roadmap)
|
||||
|
||||
Table for future functionality progress
|
||||
---------------------------------
|
||||
|
||||
|No.|Functionality to achieve| Date | In Progress / Achieved ? | Contributors | RRG will reward |
|
||||
|:--------------:|:--------------:|:--------:|:------------:|:------------:|:------------:|
|
||||
|1| Adding DESfire Support|28/09/2023|:--------------:|:--------------:|:------------:|
|
||||
|2| Adding Indala Emulation|28/09/2023|:--------------:|:--------------:|:------------:|
|
||||
|3| Adding HID Prox 26 bit Emulation|28/09/2023|:--------------:|:--------------:|:------------:|
|
||||
|4| Adding custom keys for t5577 read|28/09/2023|:------------:|:------------:|:------------:|
|
||||
|5|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|6|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|7|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|8|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|9|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|10|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|11|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|12|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|13|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|14|:--------------:|:--------------:|:------------:|:------------:|:------------:|
|
||||
|
||||
# Compatible applications
|
||||
|
||||
* [ChameleonUltraGUI](https://github.com/GameTec-live/ChameleonUltraGUI)
|
||||
|
||||
@@ -1,15 +1,150 @@
|
||||
## Get ChameleonUltraGUI
|
||||
|
||||
- [on Google Play](https://play.google.com/store/apps/details?id=io.chameleon.ultra) / [APK](https://nightly.link/GameTec-live/ChameleonUltraGUI/workflows/buildapp/main/apk.zip)
|
||||
- [on Google Play](https://play.google.com/store/apps/details?id=io.chameleon.ultra) / [APK](https://nightly.link/GameTec-live/ChameleonUltraGUI/workflows/build-app/main/apk.zip)
|
||||
- [on iOS](https://apps.apple.com/dk/app/chameleon-ultra-gui/id6462919364)
|
||||
- [on Windows](https://nightly.link/GameTec-live/ChameleonUltraGUI/workflows/buildapp/main/windows-installer.zip) ([or without installer](https://nightly.link/GameTec-live/ChameleonUltraGUI/workflows/buildapp/main/windows.zip))
|
||||
- [on Linux](https://nightly.link/GameTec-live/ChameleonUltraGUI/workflows/buildapp/main/linux.zip)
|
||||
- [on Windows](https://nightly.link/GameTec-live/ChameleonUltraGUI/workflows/build-app/main/windows-installer.zip) ([or without installer](https://nightly.link/GameTec-live/ChameleonUltraGUI/workflows/build-app/main/windows.zip))
|
||||
- [on Linux](https://nightly.link/GameTec-live/ChameleonUltraGUI/workflows/build-app/main/linux.zip)
|
||||
- [on macOS](https://apps.apple.com/app/chameleon-ultra-gui/id6462919364)
|
||||
|
||||
## Page Breakdown
|
||||
|
||||
### Homepage
|
||||

|
||||
|
||||
Starting from the top left, you find
|
||||
|
||||
- the *Device Name*: `Chameleon Ultra` or `Chameleon Lite` depending on the device connected ;
|
||||
- the *Disconnect* button: pressing this icon cleanly disconnects the Chameleon. It is recommended to use this button whenever possible ;
|
||||
- the *Connected Port*: it tells you where and how the chameleon is connected, followed by how it is connected (*Connection Method*), which displays a USB or Bluetooth icon ;
|
||||
- the *Battery Charge* icon: you can press it long to get more details. Note that it is refreshed only when reopening the Homepage ;
|
||||
- the *Used Slots*: it displays how many out of the 8 slots are used ;
|
||||
- the *Slot Changer*: the currently selected slot is highlighted with a red circle, while enabled slots are filled in. Everything else is a hollow circle. The arrows left and right allow you to change the currently selected slot ;
|
||||
- the *Firmware version*: the version is pulled from the device displayed, as well as git commit information ;
|
||||
- the *Check for updates* button: it compares the firmware with the one available on GitHub and then updates if a newer version is available ;
|
||||
- the *Switch mode* button: use it to switch between reader and emulator modes. The icon will update accordingly ;
|
||||
- the *Device Setting* button: it allows you to change settings concerning the device, like changing the animation mode.
|
||||
|
||||
### Device settings
|
||||

|
||||

|
||||
|
||||
Top to bottom:
|
||||
- *Enter DFU mode*: to enter the device DFU mode. Allows the user to take over ;
|
||||
- *Flash latest FW via DFU*: download the newest firmware from GitHub, disregarding if the device is already up to date, and flash it ;
|
||||
- *Flash .zip FW via DFU*: it allows the user to select a zip they would like to flash to the device ;
|
||||
- *Animations*: choose if the device should play the boot-up animation when woken up by an external RFID field ;
|
||||
- *Button config*: it allows you to define both short-press and long-press actions
|
||||
- *BLE pairing* toggle: you can decide whether pairing with a BLE PIN is required or not. Enabling PIN increases security at the loss of convenience. You can define a *BLE PIN* once pairing is enabled and you can force forgetting about existing pairings with the *Clear bounded devices* option.
|
||||
- *Reset settings*: it resets all device settings but does not wipe user data.
|
||||
- *Factory reset*: **IT WIPES ALL USER DATA** and resets the device to factory settings.
|
||||
|
||||
### Slot Manager
|
||||

|
||||
|
||||
The *Slot Manager* consists of 8 cards representing the 8 slots on the device.
|
||||
|
||||
The *RFID icon* in the top left corner can either be green or red, meaning the slot is enabled and disabled respectively.
|
||||
|
||||
The *Credit Card icon* displays the name and card type of the HF card in the slot.
|
||||
The *Wi-Fi icon*, on the other hand, displays the name and card type of the LF card in the slot.
|
||||
|
||||
The *Gear icon* opens the slot settings. These settings can be changed per slot.
|
||||
|
||||
The entire card is also one big button, pressing anywhere on the card opens the select dialog for loading a card.
|
||||
|
||||
### Slot Settings
|
||||

|
||||

|
||||
|
||||
The two rows at the top, labeled HF and LF respectively, display the names of the currently loaded cards. Next to them, the *X* clears them out of the slot. If both are empty, the slot will automatically be disabled.
|
||||
|
||||
Under *Slot Status* you can set if the slot is enabled or disabled.
|
||||
|
||||
The *Mifare Classic emulator settings* section allows you to toggle various behaviors:
|
||||
- *Gen1A Magic Mode*: behaves like a gen1a magic card and allows writing to it using magic commands like the Proxmark3 `cload` ;
|
||||
- *Gen2 Magic Mode*: behaves like a gen2 magic card, makes Block 0 writable ;
|
||||
- *Use UID/SAK/ATQA from 0 block*: the Chameleon Ultra stores the UID and other anti-collision data independently of the card content. Enabling this setting tells the Chameleon to derive them from card content block 0. Only for MFC with 4-byte UID ;
|
||||
- *Collect nonces (Mfkey32)*: it toggles nonce collection for mfkey32. When enabled you will be prompted to present the Chameleon to a reader. After you have collected nonces the *Present Chameleon to reader* message will change into a *Recover Keys from x nonces* button. Pressing this will start the recovery process ;
|
||||
- *Write mode*: Please refer to the [firmware docs](./firmware.md).
|
||||
|
||||
### Search dialog
|
||||

|
||||
|
||||
When using the GUI you may encounter a *Search* dialog. The dialog is structured as follows:
|
||||
|
||||
Top left you find the *Back* button, this will abort the selection and bring you back.
|
||||
|
||||
Near the end of the row, if it is a card search dialog, a filter option will show. This allows you to filter between *HF*, *LF* and *All* cards.
|
||||
|
||||
At the end you find a *X*, this X will clear the query.
|
||||
|
||||
You enter the query into the *textbox* on the top with the placeholder text "Search"
|
||||
|
||||
The search results get listed below. The Card or Wi-Fi symbol indicates if it is LF/HF. The color of the Icon is the user-defined color.
|
||||
|
||||
Listed also are the name and type.
|
||||
|
||||
Selecting the entry automatically closes the search.
|
||||
|
||||
### Saved Cards
|
||||

|
||||
|
||||
The *Saved Cards* page allows you to manage your cards and dictionaries.
|
||||
|
||||
You import a card or dictionary by clicking the *+* button in their respective half. This opens a select dialog. You may then either select a CUGUI Json file or a Bin file. A Json file gets imported immediately while a Bin file asks if the supplied data is correct before saving.
|
||||
|
||||
Once again, we got a card per card or dictionary. At the left you find the Icon for HF/LF with the user-defined color. To the left of that the card name, type and quick actions for edit, export and delete.
|
||||
|
||||
The Card is again one Big button, pressing it brings up the Slot info. It displays info about the selected item and also has the quick actions present at the bottom.
|
||||
|
||||

|
||||
|
||||
### Card Edit Menu
|
||||

|
||||

|
||||
|
||||
Depending on the selected card type the menu only displays options applicable to it.
|
||||
At the top of the menu is the name and icon. Pressing on the icon allows you to change the color.
|
||||
|
||||
Right below is the drop-down for the type. You may switch between any type at will.
|
||||
|
||||
A bit lower again you find the UID, SAK, ATQA, ATS and all other options for the selected type. This form auto-validates, so you should not be able to save a invalid config.
|
||||
|
||||
And finally at the bottom are the save and cancel options, to save the changes and exits, or to cancel the operation with no changes.
|
||||
|
||||
### Settings
|
||||

|
||||
|
||||
The App settings have their own page and consist of a few simple settings:
|
||||
- *Sidebar Expansion*: Whether or not the sidebar shall be expanded or if the windows size should decide that
|
||||
- *Theme*: Light/Dark or get it from the System
|
||||
- *Color Scheme*: Allows you to choose a color you like for the app
|
||||
- *Language*: Choose any of the languages available. Translating is done via our Crowding project.
|
||||
- *About*: Displays simple info about the app, such as build number, contributors and people who have donated on Opencollective
|
||||
- *Activate debug mode*: Don't, just Don't
|
||||
|
||||
## How to use MFKEY32
|
||||
|
||||
- set slot to mifare classic (by uploading an empty dump)
|
||||
- set slot to MIFARE Classic (by uploading an empty dump)
|
||||
- enable mfkey32 for that slot (toggle in slot settings)
|
||||
- select slot and present ultra repeatedly to the reader in order to collect nonces
|
||||
- after collecting some nonces, go back into slot settings and click recover keys
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Font scaling issues on HiDPI screens
|
||||
|
||||
If you have font scaling issues (tiny fonts) with the Linux desktop app and a HiDPI screen, you can solve it by running the app as
|
||||
```
|
||||
GDK_SCALE=2 GDK_DPI_SCALE=0.5 /usr/local/lib/chameleonultragui/chameleonultragui
|
||||
```
|
||||
|
||||
### Key recovery from this card is not yet supported
|
||||
This error may occur when the card you are trying to recovery keys from is requiring a not yet supported recovery technology. You cannot tell the required recovery method from the outside.
|
||||
|
||||
You may be able to solve this issue by dumping the card with a Proxmark3 or Mifare Classic Tool (Mobile App) and then importing a bin file.
|
||||
|
||||
### Error: Invalid data length
|
||||
This error may occur on windows devices and seems to be a deeper bug in the serial library.
|
||||
|
||||
Reconnecting the device may solve it, also make sure that the App and Firmware are up to date.
|
||||
@@ -40,13 +40,11 @@ Using ProxSpace to build the CLI is the easiest and most comfortable way to get
|
||||
|
||||
12. And the binaries with `cmake --build .`
|
||||
|
||||
13. Copy the binaries by running `cp -r ~/ChameleonUltra/software/bin/* ~/ChameleonUltra/software/script/`
|
||||
13. Go into the script folder with `cd ~/ChameleonUltra/software/script/`
|
||||
|
||||
14. Go into the script folder with `cd ~/ChameleonUltra/software/script/`
|
||||
14. Install python requirements with `pip install -r requirements.txt`
|
||||
|
||||
15. Install python requirements with `pip install -r requirements.txt`
|
||||
|
||||
16. Finally run the CLI with `python chameleon_cli_main.py`
|
||||
15. Finally run the CLI with `python chameleon_cli_main.py`
|
||||
|
||||
To use after installing, just do the following:
|
||||
|
||||
@@ -76,7 +74,7 @@ Building natively is a bit more advanced and not recommended for beginners
|
||||
|
||||
4. Download and install [cmake](https://cmake.org/download/). Again, when asked, add to your path
|
||||
|
||||
5. Download and install [python](https://www.python.org/downloads/). When asked, add to your path (small checkbox in the bottom left)
|
||||
5. Download and install [python](https://www.python.org/downloads/). When asked, add to your path (small checkbox in the bottom left). Python 3.9 or above is required.
|
||||
|
||||
6. Choose a suitable location and open a terminal. Clone the repository with `git clone https://github.com/RfidResearchGroup/ChameleonUltra.git`
|
||||
|
||||
@@ -106,7 +104,46 @@ To run again after installing, just do the following:
|
||||
|
||||
### Linux
|
||||
|
||||
*Coming Soon*
|
||||
Install the dependencies
|
||||
- Ubuntu / Debian:
|
||||
`sudo apt install git cmake build-essential python3-venv`
|
||||
- Arch:
|
||||
`sudo pacman -S git cmake base-devel python3`
|
||||
|
||||
Python 3.9 or above is required.
|
||||
|
||||
Run the following script to clone the Repository, compile the tools and install Python dependencies in a virtual environment.
|
||||
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
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
|
||||
)
|
||||
```
|
||||
|
||||
To run the client after installing, do the following:
|
||||
|
||||
```sh
|
||||
cd ChameleonUltra/software/script
|
||||
source venv/bin/activate
|
||||
python3 chameleon_cli_main.py
|
||||
deactivate
|
||||
```
|
||||
|
||||
### MacOS
|
||||
|
||||
@@ -116,31 +153,42 @@ 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 -s8 -t3`
|
||||
- Init the slot content: `hw slot init -s8 -t3`
|
||||
- or load an existing dump and set UID and anticollision data, cf `hf mf eload -h` and `hf mf sim -h`
|
||||
- Enable the slot: `hw slot enable -s8 -e1`
|
||||
- Change to the new slot: `hw slot change -s8`
|
||||
- Activate the detection: `hf detection enable -e1`
|
||||
|
||||
```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 detection count`
|
||||
- We need 2 nonces per key to recover
|
||||
- Recover the key(s) based on the collected nonces: `hf detection decrypt`. Output example:
|
||||
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.
|
||||
- Download done (144bytes), start parse and decrypt
|
||||
@@ -153,8 +201,5 @@ Now disconnect, go to a reader and swipe it a few times
|
||||
|
||||
```
|
||||
|
||||
- To clean the logged detection nonces: `hf detection enable -e0` then `hf detection enable -e1`
|
||||
|
||||
|
||||
|
||||
*More examples coming soon*
|
||||
|
||||
@@ -65,7 +65,7 @@ The Chameleon can be awaken:
|
||||
|
||||
The white LED labeled RF lights up when it detects a field, again only if the active slot supports it.
|
||||
|
||||
In some situations, it can be cumbersome to wait for the boot-up animation. This is configurable, cf e.g. the CLI command `hw settings animation set -h`.
|
||||
In some situations, it can be cumbersome to wait for the boot-up animation. This is configurable, cf e.g. the CLI command `hw settings animation -h`.
|
||||
|
||||
On a new Chameleon (or after a factory reset), 3 slots are defined, slot 1 holding both a HF and a LF:
|
||||
|
||||
@@ -116,5 +116,5 @@ We are using the [SoftDevice S140](https://infocenter.nordicsemi.com/index.jsp?t
|
||||
|
||||
## The User Data
|
||||
|
||||
The Chameleon has a reserved space of memory and flash where it stores application settings, active slot and slots configurations and data. This will not be overwritten by DFU updates and the data will only be reset by either issuing `hw factory_reset --i-know-what-im-doing` in the CLI or clicking `Factory reset` in a GUI.
|
||||
The Chameleon has a reserved space of memory and flash where it stores application settings, active slot and slots configurations and data. This will not be overwritten by DFU updates and the data will only be reset by either issuing `hw factory_reset --force` in the CLI or clicking `Factory reset` in a GUI.
|
||||
*Warning:* Settings and/or data might be reset to defaults if you downgrade the firmware version up to a version not supporting the newer format.
|
||||
|
||||
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 32 KiB |