├── .gitignore ├── README.md ├── en ├── help_add_rules.html ├── help_add_rules.md ├── how_to_use_mtools.html ├── how_to_use_mtools.md ├── img │ ├── button_func.jpeg │ ├── mark_check.jpeg │ ├── mark_money.jpeg │ ├── select_block.jpeg │ ├── tips_repo.jpg │ └── tips_sniffer.jpg ├── index.html ├── index.md ├── tips_sniffer.html └── tips_sniffer.md ├── external_device.html ├── external_device.md ├── img ├── bt-ssp-pn532.png ├── otg-acr122u.png └── otg-usb-ttl-pn532.png ├── index.html ├── index.md ├── sitemap.xml └── zh ├── help_add_rules.html ├── help_add_rules.md ├── how_to_use_mtools.html ├── how_to_use_mtools.md ├── img ├── button_func.jpeg ├── mark_check.jpeg ├── mark_money.jpeg ├── select_block.jpeg ├── tips_repo.jpg └── tips_sniffer.jpg ├── index.html ├── index.md ├── tips_sniffer.html ├── tips_sniffer.md ├── tutorial ├── tutorial_0.html ├── tutorial_0.md ├── tutorial_compare_hex_data.html └── tutorial_compare_hex_data.md ├── update_log.html └── update_log.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MTools - NFC Mifare Classic Card Charger 2 | Support Device: 3 | 4 | - NFC 5 | - OTG + ACR122U 6 | - OTG + PN532 7 | - BT + PN532 8 | 9 | Download: 10 | 11 | - [Play Store]() 12 | 13 | - [酷安网](https://www.coolapk.com/apk/tk.toolkeys.mtools) 14 | 15 | - [日志&下载](https://why.yuyeye.cc/mtools/zh/update_log.html) -------------------------------------------------------------------------------- /en/help_add_rules.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | help_add_rules 505 | 506 | 507 |

Add check byte expression

Available Operator

NameOperaorSimple
+ - × ÷+ - * / 
brackets( ) 
and@& 
or@| 
xor@^ 
not@~ 
Continuous summationb1+b2+···+b14sum(1:14)
Continuous XORb1 xor b2 xor ··· xor b10xor(1:10)
Continuous logical ANDb1 and b2 and ··· and b14and(1:14)
CRC8/CRC16Know moreKnow more

Example

rules → how to add 508 | b2=b1b2=b1 509 | b4=b2 + 0x1Fb4=b2+31 510 | b15=b0 xor b1b15=b0@^b1 511 | b2=not b0b2@~b0 512 | Note1: Please convert the hexadecimal number to decimal 513 | Note2: Drag expression up/down to change sequence 514 |

Extended Usage

Visit mXparser WebSite

515 | 516 | -------------------------------------------------------------------------------- /en/help_add_rules.md: -------------------------------------------------------------------------------- 1 | ## Add check byte expression 2 | ### Available Operator 3 | |Name | Operaor | Simple | 4 | | :-----: | --------- | ---------| 5 | |+ - × ÷|+ - * /| | 6 | |brackets|( )| | 7 | |and|@&| | 8 | |or|@|| | 9 | |xor|@^| | 10 | |not|@~| | 11 | |Continuous summation|b1+b2+···+b14|sum(1:14)| 12 | |Continuous XOR|b1 xor b2 xor ··· xor b10|sum(1:10)| 13 | |Continuous logical AND|b1 and b2 and ··· and b14|and(1:14)| 14 | |CRC8/CRC16|[Know more](https://why.yuyeye.cc/post/how-to-calculate-crc8-and-crc16-in-mtools/)|[Know more](https://why.yuyeye.cc/post/how-to-calculate-crc8-and-crc16-in-mtools/)| 15 | 16 | 17 | ### Example 18 | rules → how to add 19 | `b2=b1` →`b2=b1` 20 | `b4=b2 + 0x1F` → `b4=b2+31` 21 | `b15=b0 xor b1` → `b15=b0@^b1` 22 | `b2=not b0` → `b2@~b0` 23 | *Note1: Please convert the hexadecimal number to decimal* 24 | *Note2: Drag expression up/down to change sequence* 25 | 26 | 27 | ### Extended Usage 28 | Visit [mXparser](http://mathparser.org/?s=Bitwise) WebSite 29 | -------------------------------------------------------------------------------- /en/how_to_use_mtools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 288 | MDReader 289 | 290 | 291 |

How to use MTools

292 |

Firstly, it's an APP that I used to write hex datas back to mifare 1k card with my NFC phone - Moto X 2013. And after several steps of studies and development, I find a way to read the money data from card and generate legal hex data then write back it to the card. And it works perfectly, which made me so happy. Seemed like I'm a dark hacker, can easily change the money on the card with a simple app. 293 | After that I want to share this happiness to all guys who are interested in RFID. After about 3 weeks development the first version of MTools came out. 294 | Here're the things that you need to know to use it better.

295 | 304 |
305 |

Get the keys from all sectors

306 |

Some cards using default keys like FFFFFFFFFFFF 000000000000 A1B2C3D4E56F etc, which you can try to dump keys with Mifare Classic Tools on the NFC android phone. 307 | If the card is not full encrypted, it can be cracked with RFID device to burst crack. Like ACR122U or PN532.

308 |

If the card is full encrypted, only PM3 can crack the keys.

309 |

Compare to find the sector with money data

310 |

With keyA or keyB of all sectors of card, datas need to be gathered. And compare them after every consumption, so you can find the sector that datas change, which means the money data may in that sector.

311 |

Add card, sector and keys to MTools

312 |

The 4th block of every sector contains

313 |

keyA(6 bytes) + Access Control(4) + keyB(6)

314 |

Record data from in sniffer

315 |

With sector number and valid keys added, it can be easy to compare data with different money amount.

316 |

Mark the money bytes(contain money data) and check bytes(mostly the changing bytes)

317 |

Compare and analyze the rules of dynamic bytes

318 |

Pay attentions on HEX or DEC, Reverse or not and Rate on Money bytes.

319 |

Compare the Summation or XOR values with up and down check bytes.

320 |

Finish the expression

321 |

MTools use mXparser to calculate expression in rules. Please follow the tips in MTools to add expression.

322 |

Charge mifare 1k card with one click

323 |

Before Charge card, an accurate simulation is necessary, just by long click on the $ button after tag card.

324 |

One more thing

325 |

MTools support work with extra device like ACR122U, which means you can use a phone without NFC hardware.

326 |
327 | -------------------------------------------------------------------------------- /en/how_to_use_mtools.md: -------------------------------------------------------------------------------- 1 | # How to use MTools 2 | Firstly, it's an APP that I used to write hex datas back to mifare 1k card with my NFC phone - Moto X 2013. And after several steps of studies and development, I find a way to read the money data from card and generate legal hex data then write back it to the card. And it works perfectly, which made me so happy. Seemed like I'm a dark hacker, can easily change the money on the card with a simple app. 3 | After that I want to share this happiness to all guys who are interested in RFID. After about 3 weeks development the first version of MTools came out. 4 | Here're the things that you need to know to use it better. 5 | 6 | - Get the keys from all sectors 7 | - Compare to find the sector with money data 8 | - Add card, sector and keys to MTools 9 | - Record data from after every consumption in sniffer 10 | - Compare and analyze the rules of dynamic bytes 11 | - Finish the expression 12 | - Charge mifare 1k card with one click 13 | 14 | --- 15 | 16 | ## Get the keys from all sectors 17 | 18 | Some cards using default keys like `FFFFFFFFFFFF` `000000000000` `A1B2C3D4E56F` etc, which you can try to dump keys with **Mifare Classic Tools** on the NFC android phone. 19 | If the card is not full encrypted, it can be cracked with RFID device to burst crack. Like **ACR122U** or **PN532**. 20 | 21 | If the card is full encrypted, only **PM3** can crack the keys. 22 | 23 | ## Compare to find the sector with money data 24 | 25 | With keyA or keyB of all sectors of card, datas need to be gathered. And compare them after every consumption, so you can find the sector that datas change, which means the money data may in that sector. 26 | 27 | ## Add card, sector and keys to MTools 28 | 29 | The 4th block of every sector contains 30 | 31 | `keyA(6 bytes) + Access Control(4) + keyB(6)` 32 | 33 | ## Record data from in sniffer 34 | 35 | With sector number and valid keys added, it can be easy to compare data with different money amount. 36 | 37 | Mark the money bytes(contain money data) and check bytes(mostly the changing bytes) 38 | 39 | ## Compare and analyze the rules of dynamic bytes 40 | 41 | Pay attentions on HEX or DEC, Reverse or not and Rate on Money bytes. 42 | 43 | Compare the Summation or XOR values with up and down check bytes. 44 | 45 | ## Finish the expression 46 | MTools use [mXparser](http://mathparser.org/) to calculate expression in rules. Please follow the tips in MTools to add expression. 47 | ## Charge mifare 1k card with one click 48 | Before Charge card, an accurate simulation is necessary, just by long click on the $ button after tag card. 49 | ## One more thing 50 | MTools support work with extra device like ACR122U, which means you can use a phone without NFC hardware. -------------------------------------------------------------------------------- /en/img/button_func.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/en/img/button_func.jpeg -------------------------------------------------------------------------------- /en/img/mark_check.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/en/img/mark_check.jpeg -------------------------------------------------------------------------------- /en/img/mark_money.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/en/img/mark_money.jpeg -------------------------------------------------------------------------------- /en/img/select_block.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/en/img/select_block.jpeg -------------------------------------------------------------------------------- /en/img/tips_repo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/en/img/tips_repo.jpg -------------------------------------------------------------------------------- /en/img/tips_sniffer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/en/img/tips_sniffer.jpg -------------------------------------------------------------------------------- /en/index.md: -------------------------------------------------------------------------------- 1 | [Select Language](../index.html) 2 | 3 | # 1.Overview 4 | Here is a Material Design APP to make charge `Mifare Classic Card` easily. 5 | Attention: 6 | 7 | 1. `Mifare 1K `Supported Device. 8 | - USB: `ACR122U` `PN532` 9 | - Bluetooth: `PN532` 10 | 2. KeyA and keyB of useful sector. 11 | 3. Comply with local laws, only used for study and testing. 12 | 13 | # 2.Tutorial 14 | [How to use MTools](./how_to_use_mtools.html) 15 | --- 16 | 17 | ### [YouTube](https://www.youtube.com/channel/UC5ZyMTY35t5G4BsmTfjWU9g) 18 | 19 | - [Use MTools to read/write/clone datas on Mi Band 3 NFC](https://youtu.be/1Bl-FFALNic) 20 | - [Hack Mifare 1K Card without ACR122U only MTools](https://youtu.be/hEwhJWAt3a8) 21 | - [Burst Attack Mifare 1K Card with MKeys on NFC Android Phone](https://youtu.be/CKSBDwRg7Wo) 22 | 23 | ## 2.1 Lists 24 | ### 2.1.1 Add Card 25 | Click the **+ floating button** will display `Add Card Dialog`, put the Mifare Classic Card close to the NFC antenna, then you can add a card to the APP. 26 | ### 2.1.2 Remove Card 27 | Slide the item toward right to remove the card. 28 | ### 2.1.3 Sort Card 29 | Press and drag to sort Cards. 30 | ## 2.2 Details 31 | ### 2.2.0 Interface Introduction 32 | ![image](img/button_func.jpeg) 33 | ### 2.2.1 Add Key 34 | Click the ** + floating button ** to display `Add Key Dialog`, select the sector number by sliding the picker, and enter 6 bytes (12 digits or letters) valid key A or key B, click ` Complete ` to save. 35 | ### 2.2.2 Modify Key 36 | Click the ** modify button ** will display the `Modify Key Dialog`, select new sector number by sliding the picker, and modify the 6 bytes (12 digits or letters) valid key A or key B, click ` Complete `save new keys or sector. 37 | ### 2.2.3 Read Sector 38 | After the card is close to the NFC antenna, click on the ** read button ** will read 4 block of data from clicked sector, you could modify and write the new data. 39 | ### 2.2.4 Data Sniff/Compare 40 | Must add correct keys before. After marked, it can be compared with highlight datas. 41 | [Pro Version] Data Backups/Restore, Compare vertically, Rule Repository. 42 | ### 2.2.5 Add Rule 43 | ### 2.2.5.0 Interface Introduction 44 | Click data item to add/modify rule. 45 | Click icon to copy rule to another block of another sector. 46 | [Pro Version] Rule copy. 47 | ![image](img/select_block.jpeg) 48 | #### 2.2.5.1 Add Money Byte 49 | Mark the byte, then verify the money is correct, and click Next. 50 | ![image](img/mark_money.jpeg). 51 | #### 2.2.5.2 Add Checked Byte 52 | Check the bytes that changes and add expressions. Make sure that it's correct then click OK. 53 | ![image](img/mark_check.jpeg) 54 | ##### 2.2.5.2.1 Supported operations: 55 | > And: + 56 | > 57 | > Subtraction: - 58 | > 59 | > Multiply: * 60 | > 61 | > division: / 62 | > 63 | > xor: @^ 64 | > 65 | > not: @~ 66 | > 67 | > Crc8: crc8, crc8cdma2000, crc8darc, crc8dvbs2, crc8ebu, crc8icode, crc8itu, crc8maxim, crc8rohc, crc8wcdma 68 | > 69 | > Crc16: crc16ccittfalse, crc16arc, crc16buypass, crc16cdma2000, crc16dds110, crc16dectr, crc16dectx, crc16dnp, crc16en13757, crc16genibus, crc16maxim, crc16mcrf4xx, crc16riello, crc16t10dif, crc16teledisk, crc16tms37157, crc16usb, crca, crc16kermit, crc16modbus, crc16x25, crc16xmodem 70 | 71 | *Note1: Only decimal arithmetic is supported* 72 | 73 | *Note2: Crc expression must be called as shown above* 74 | 75 | **Get Expressions Example [Click Here](./help_add_rules.html)** 76 | 77 | ##### 2.2.5.2.2 Sort Expressions 78 | Press and drag to sort Expressions. 79 | 80 | The calculation is from top to the end. 81 | 82 | ### 2.2.6 Sort Keys 83 | Press and drag to sort Keys. 84 | ### 2.2.7 Remove Key 85 | Slide the item toward right to remove the key. 86 | ### 2.2.8 key Lists 87 | Long press the floating button to show key lists. 88 | ## 2.3 Charge 89 | ### 2.3.1 Set Quotas 90 | Long press **the Charge TextView** , you can charge as the Quotas. 91 | ### 2.3.2 Clear Record 92 | Long press **the recharge record list**, then pop up the dialog will allow you to to clear the recharge record or not. 93 | ### 2.3.3 Show Calculate Result 94 | Long press the floating button to preview the data generated on **Rule**. 95 | 96 | # 3.Dependency 97 | Thanks for the friends on the contribution of open source community, regardless of rank. 98 | - `ikarus23` [MifareClassicTool](https://github.com/ikarus23/MifareClassicTool "MifareClassicTool") 99 | - `afollestad` [material-dialogs](https://github.com/afollestad/material-dialogs "material-dialogs") 100 | - `markormesher` [android-fab](https://github.com/markormesher/android-fab) 101 | - `didikee` [AndroidDonate](https://github.com/didikee/AndroidDonate "AndroidDonate") 102 | - `Ice-Box` [Ice-Box](http://catchingnow.com) 103 | - `uccmawei` [FingerprintIdentify](https://github.com/uccmawei/FingerprintIdentify) 104 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /en/tips_sniffer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tips_sniffer 493 | 494 | 495 |
498 | 499 | -------------------------------------------------------------------------------- /en/tips_sniffer.md: -------------------------------------------------------------------------------- 1 | - [Add data] Put card close to NFC antenna. 2 | 3 | - [Sort] Drag **↓** or **↑** to sort. 4 | 5 | - [Delete] Swipe**→** to remove. 6 | 7 | - [Backup] Click **+** select upload icon.* 8 | 9 | - [Restore] Click **+** select download icon.* 10 | 11 | - [Repository] Click **+** select Repo. icon, get step bellow.** 12 | ![image](./img/tips_repo.jpg) 13 | - [Caculation] Caculate Check Byte on Expression, like the picture bellow.** 14 | ![image](./img/tips_sniffer.jpg) -------------------------------------------------------------------------------- /external_device.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | External Device 493 | 494 | 495 |

MTools Supported®

  1. OTG ⇌ ACR122U
    image
  2. OTG ⇌ USB_TTL + PN532
    image
  3. BT ⇌ BT_SPP + PN532
    image
496 | 497 | 498 | -------------------------------------------------------------------------------- /external_device.md: -------------------------------------------------------------------------------- 1 | [MTools](https://play.google.com/store/apps/details?id=tk.toolkeys.mtools) Supported® 2 | 3 | 1. OTG ⇌ ACR122U 4 | ![image](./img/otg-acr122u.png) 5 | 2. OTG ⇌ USB_TTL + PN532 6 | ![image](./img/otg-usb-ttl-pn532.png) 7 | 3. BT ⇌ BT_SPP + PN532 8 | ![image](./img/bt-ssp-pn532.png) -------------------------------------------------------------------------------- /img/bt-ssp-pn532.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/img/bt-ssp-pn532.png -------------------------------------------------------------------------------- /img/otg-acr122u.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/img/otg-acr122u.png -------------------------------------------------------------------------------- /img/otg-usb-ttl-pn532.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/img/otg-usb-ttl-pn532.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 288 | Select Language 289 | 290 | 291 |

中文

292 |

English

293 |
294 |
295 | 296 | 297 | 298 | 299 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | # [中文](./zh/index.html) 2 | # [English](./en/index.html) -------------------------------------------------------------------------------- /sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://why.yuyeye.cc/mtools/ 5 | 1.00 6 | 7 | 8 | 9 | https://why.yuyeye.cc/mtools/zh/index.html 10 | 1.00 11 | 12 | 13 | 14 | https://why.yuyeye.cc/mtools/index.html 15 | 1.00 16 | 17 | 18 | 19 | https://why.yuyeye.cc/mtools/en/index.html 20 | 1.00 21 | 22 | 23 | 24 | https://why.yuyeye.cc/mtools/zh/update_log.html 25 | 1.00 26 | 27 | 28 | 29 | https://why.yuyeye.cc/mtools/zh/how_to_use_mtools.html 30 | 1.00 31 | 32 | 33 | 34 | https://why.yuyeye.cc/mtools/zh/help_add_rules.html 35 | 1.00 36 | 37 | 38 | 39 | https://why.yuyeye.cc/mtools/zh/tutorial/tutorial_0.html 40 | 1.00 41 | 42 | 43 | 44 | https://why.yuyeye.cc/cdn-cgi/l/email-protection 45 | 0.80 46 | 47 | 48 | 49 | https://why.yuyeye.cc/mtools/zh/tutorial/tutorial_compare_hex_data.html 50 | 0.74 51 | 52 | 53 | 54 | https://why.yuyeye.cc/mtools/en/help_add_rules.html 55 | 0.73 56 | 57 | 58 | 59 | https://why.yuyeye.cc/mtools/en/how_to_use_mtools.html 60 | 0.71 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /zh/help_add_rules.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | help_add_rules 505 | 506 | 507 |

添加校验字表达式

可用运算符

名称运算符简化
+ - × ÷+ - * / 
括号( ) 
@&and
@|or
异或@^xor
取反@~not
连续求和b1+b2+···+b14sum(1:14)
连续异或b1 xor b2 xor ··· xor b10xor(1:10)
连续逻辑与b1 and b2 and ··· and b14and(1:14)
CRC8/CRC16参考此处详细介绍

举例

b2等于b1b2=b1

b4=b2加上0x1Fb4=b2+31

b15=b0异或b1b15=b0 xor b1

b2=b0取反b2=not b0

注意

拓展用法

mXparser 官网

508 | 509 | -------------------------------------------------------------------------------- /zh/help_add_rules.md: -------------------------------------------------------------------------------- 1 | ## 添加校验字表达式 2 | ### 可用运算符 3 | |名称 | 运算符 | 简化 | 4 | | :-----: | --------- | ---------| 5 | |+ - × ÷|+ - * /| | 6 | |括号|( )| | 7 | |与|@&| and | 8 | |或|@|| or | 9 | |异或|@^| xor | 10 | |取反|@~| not | 11 | |连续求和|b1+b2+···+b14|sum(1:14)| 12 | |连续异或|b1 xor b2 xor ··· xor b10|xor(1:10)| 13 | |连续逻辑与|b1 and b2 and ··· and b14|and(1:14)| 14 | |CRC8/CRC16|[参考此处](https://why.yuyeye.cc/post/how-to-calculate-crc8-and-crc16-in-mtools/)|[详细介绍](https://why.yuyeye.cc/post/how-to-calculate-crc8-and-crc16-in-mtools/)| 15 | 16 | ### 举例 17 | `b2等于b1` →`b2=b1` 18 | 19 | `b4=b2加上0x1F` → `b4=b2+31` 20 | 21 | `b15=b0异或b1` → `b15=b0 xor b1` 22 | 23 | `b2=b0取反` → `b2=not b0` 24 | 25 | ### 注意 26 | - 请将十六进制数转换成十进制 27 | - 上下拖动可更改计算顺序 28 | 29 | ### 拓展用法 30 | 见 [mXparser](http://mathparser.org/?s=Bitwise) 官网 31 | -------------------------------------------------------------------------------- /zh/how_to_use_mtools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 288 | MDReader 289 | 290 | 291 |

如何使用MTools

292 |

首先,它是一个APP,我曾经用我的NFC手机--Moto X 2013将十六进制数据写回mifare 1k卡。经过几个步骤的研究和开发,我找到了一种方法从卡中读取货币数据并生成合法的十六进制 然后将数据写回卡中。 而且效果很好,让我很开心。 看起来像我是一个暗黑的黑客,可以通过一个简单的应用程序轻松改变卡上的金额。 293 | 在那之后,我想与所有对RFID感兴趣的人分享这种快乐。 经过大约3周的开发,第一版MTools问世。 294 | 以下是您需要了解的以更好得使用他。

295 | 304 |
305 |

获取所有扇区的密钥

306 |

一些卡片使用默认密钥,像 FFFFFFFFFFFF 000000000000 A1B2C3D4E56F 等等,你还可以通过Mifare Classic Tools尝试卡片是否使用了这些密钥。 307 | 如果卡未完全加密,则可能会被RFID设备爆破,比如ACR122UPN532

308 |

如果卡已完全加密,则只有PM3可以破解密钥。

309 |

比较以找到很有金额数据的扇区

310 |

使用卡的所有扇区的keyA或keyB,就可以收集数据。 并在每次消费后对它们进行比较,这样你就可以找到数据发生变化的部门,这意味着该扇区可能有金额数据。

311 |

向MTools添加卡,扇区和密钥

312 |

每个扇区的第4块包括

313 |

keyA(6 bytes) + Access Control(4) + keyB(6)

314 |

在嗅探器中记录每次消费后的数据

315 |

通过添加扇区号和有效密钥,可以很容易地比较具有不同金额的数据。

316 |

标记金额字节(包含货币数据)和检查字节(主要是变化的字节)

317 |

比较和分析动态字节的规则

318 |

金额字节上注意十六进制或十进制,是否倒置和倍率问题。

319 |

校验位请比较上下两位的和或异或值来找到规律。

320 |

完成表达式

321 |

MTools 使用mXparser 来计算规则,请根据MTools中的提示来添加表达式。

322 |

一键即充

323 |

充值前,请贴卡,然后长安$按钮模拟计算,保住数据无误后再写入。

324 |

One more thing

325 |

MTools 支持外置设备 ACR122U,意味着就算没有NFC的手机同样可以使用MTools。

326 |
327 | -------------------------------------------------------------------------------- /zh/how_to_use_mtools.md: -------------------------------------------------------------------------------- 1 | # 如何使用MTools 2 | 3 | 首先,它是一个APP,我曾经用我的NFC手机--Moto X 2013将十六进制数据写回mifare 1k卡。经过几个步骤的研究和开发,我找到了一种方法从卡中读取货币数据并生成合法的十六进制 然后将数据写回卡中。 而且效果很好,让我很开心。 看起来像我是一个暗黑的黑客,可以通过一个简单的应用程序轻松改变卡上的金额。 4 | 在那之后,我想与所有对RFID感兴趣的人分享这种快乐。 经过大约3周的开发,第一版MTools问世。 5 | 以下是您需要了解的以更好得使用他。 6 | 7 | - 获取所有扇区的密钥 8 | - 比较以找到很有金额数据的扇区 9 | - 向MTools添加卡,扇区和密钥 10 | - 在嗅探器中记录每次消费后的数据 11 | - 比较和分析动态字节的规则 12 | - 完成表达式 13 | - 一键即充 14 | 15 | --- 16 | 17 | ## 获取所有扇区的密钥 18 | 19 | 一些卡片使用默认密钥,像 `FFFFFFFFFFFF` `000000000000` `A1B2C3D4E56F` 等等,你还可以通过**Mifare Classic Tools**尝试卡片是否使用了这些密钥。 20 | 如果卡未完全加密,则可能会被RFID设备爆破,比如**ACR122U** 或**PN532**。 21 | 22 | 如果卡已完全加密,则只有**PM3**可以破解密钥。 23 | 24 | ## 比较以找到很有金额数据的扇区 25 | 26 | 使用卡的所有扇区的keyA或keyB,就可以收集数据。 并在每次消费后对它们进行比较,这样你就可以找到数据发生变化的部门,这意味着该扇区可能有金额数据。 27 | 28 | ## 向MTools添加卡,扇区和密钥 29 | 30 | 每个扇区的第4块包括 31 | 32 | `keyA(6 bytes) + Access Control(4) + keyB(6)` 33 | 34 | ## 在嗅探器中记录每次消费后的数据 35 | 36 | 通过添加扇区号和有效密钥,可以很容易地比较具有不同金额的数据。 37 | 38 | 标记金额字节(包含货币数据)和检查字节(主要是变化的字节) 39 | 40 | ## 比较和分析动态字节的规则 41 | 42 | 金额字节上注意十六进制或十进制,是否倒置和倍率问题。 43 | 44 | 校验位请比较上下两位的和或异或值来找到规律。 45 | 46 | ## 完成表达式 47 | MTools 使用[mXparser](http://mathparser.org/) 来计算规则,请根据MTools中的提示来添加表达式。 48 | ## 一键即充 49 | 50 | 充值前,请贴卡,然后长安$按钮模拟计算,保住数据无误后再写入。 51 | 52 | ## One more thing 53 | MTools 支持外置设备 ACR122U,意味着就算没有NFC的手机同样可以使用MTools。 -------------------------------------------------------------------------------- /zh/img/button_func.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/zh/img/button_func.jpeg -------------------------------------------------------------------------------- /zh/img/mark_check.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/zh/img/mark_check.jpeg -------------------------------------------------------------------------------- /zh/img/mark_money.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/zh/img/mark_money.jpeg -------------------------------------------------------------------------------- /zh/img/select_block.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/zh/img/select_block.jpeg -------------------------------------------------------------------------------- /zh/img/tips_repo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/zh/img/tips_repo.jpg -------------------------------------------------------------------------------- /zh/img/tips_sniffer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whywilson/mtools/a3823c6fc5ad00cd1933faed48ef53f415772d74/zh/img/tips_sniffer.jpg -------------------------------------------------------------------------------- /zh/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | index 519 | 520 | 521 |

Select Language

0.更新

更新日志与下载

1.概览

一个使Mifare卡片充值更快捷的应用。

请确保以下3点:

  1. Android 设备支持Mifare Classic 1K Card

    支持外接设备 ACR122U,USB-TTL串口PN532, 蓝牙SPP一体PN532

  2. 已知卡片的有效扇区的密钥keyA和keyB

  3. 遵守当地法律,仅供学习测试使用

2.向导

如何使用MTools

外接设备支持类型


YouTube

2.1 列表

2.1.1 添加卡片

点击+浮动按钮后将显示添加卡片对话框,将Mifare Classic卡片紧贴NFC天线,即可添加卡片到APP。

2.1.2 卡片排序

按住并上下拖动即可重新排序。

2.1.3 删除卡片

向右滑动对应项目即可删除。

2.2 详情

2.2.0 界面标识

image

2.2.1 添加密钥

点击+浮动按钮后将显示添加密钥对话框,通过滑动选择扇区序号,并输入6字节(共12位数字或字母)有效密钥A或密钥B,点击完成保存。

2.2.2 修改密钥

点击修改按钮后将显示修改密钥对话框,通过滑动选择修改扇区序号,并修改6字节(共12位数字或字母)有效密钥A或密钥B,点击完成保存新密钥或扇区。

2.2.3 读写扇区

将卡片紧贴NFC天线后,点击读取按钮后将读取该扇区对应4个块的数据,可修改数据并写入新数据。 522 | 若密钥修改,将同步保存新密钥。

2.2.4 数据对比

需已知密钥,标记字节后,可高亮对比数据与金额。
【付费功能】数据备份,垂直对比,规则仓库。

2.2.5 添加规则

2.2.5.0 界面标识

点击数据添加规则
点击图标复制规则
【付费功能】规则复制
image

2.2.5.1 添加金额字节

标记金额对应的字节,并调节参数,确认金额无误后,下一步
image

2.2.5.2 添加校验字节

勾选校验字节,即变化的字节,添加表达式,无误后点击OK保存
image

2.2.5.2.1 表达式

支持算法:

加: + 523 | 减:- 524 | 乘:* 525 | 除:/ 526 | 按位异或: @^ 或 xor 527 | 按位取反: @~ 或 not 528 | 按位与: @& 或 and 529 | 按位或: @| 或 or

注意:仅支持十进制数字运算

查看表达式示例 请点击

2.2.5.3.2 表达式排序

按住并上下拖动即可重新排序,靠上先计算

2.2.6 扇区排序

按住并上下拖动即可重新排序。

2.2.7 扇区密钥

向右滑动对应项目即可删除。

2.2.8 预览密钥列表

长按浮动按钮即可。

2.3 充值

2.3.1 设置定额

长按标题下的充值文字按钮,即可设定为定额充值。

2.3.2 清除记录

长按充值记录,即可弹出对话框选择是否清空充值记录。

2.3.3 预览计算结果

长按浮动按钮,可预览由 规则 生成的数据。

3.调试

可开启浮动按钮的其他功能等,包括:

4.依赖

感谢以下网友对开源社区的贡献,排名不分先后。

5.外接设备

 

530 | 531 | -------------------------------------------------------------------------------- /zh/index.md: -------------------------------------------------------------------------------- 1 | [Select Language](../index.html) 2 | 3 | # 0.更新 4 | 5 | [更新日志与下载](./update_log.html) 6 | 7 | # 1.概览 8 | 9 | 一个使`Mifare卡片`充值更快捷的应用。 10 | 11 | 请确保以下3点: 12 | 13 | 1. Android 设备支持`Mifare Classic 1K Card` 14 | 15 | 支持外接设备 ACR122U,USB-TTL串口PN532, 蓝牙SPP一体PN532 16 | 17 | 2. 已知卡片的有效扇区的密钥keyA和keyB 18 | 19 | 3. 遵守当地法律,仅供学习测试使用 20 | 21 | # 2.向导 22 | ###[如何使用MTools](./how_to_use_mtools.html) 23 | ###[外接设备支持类型](../external_device.html) 24 | 25 | --- 26 | 27 | ### [YouTube](https://www.youtube.com/channel/UC5ZyMTY35t5G4BsmTfjWU9g) 28 | 29 | - [Use MTools to read/write/clone datas on Mi Band 3 NFC](https://youtu.be/1Bl-FFALNic) 30 | - [Hack Mifare 1K Card without ACR122U only MTools](https://youtu.be/hEwhJWAt3a8) 31 | - [Burst Attack Mifare 1K Card with MKeys on NFC Android Phone](https://youtu.be/CKSBDwRg7Wo) 32 | 33 | ## 2.1 列表 34 | ### 2.1.1 添加卡片 35 | 点击**+浮动按钮**后将显示`添加卡片对话框`,将Mifare Classic卡片紧贴NFC天线,即可添加卡片到APP。 36 | 37 | ### 2.1.2 卡片排序 38 | 按住并上下拖动即可重新排序。 39 | ### 2.1.3 删除卡片 40 | 向右滑动对应项目即可删除。 41 | ## 2.2 详情 42 | ### 2.2.0 界面标识 43 | ![image](img/button_func.jpeg) 44 | ### 2.2.1 添加密钥 45 | 点击**+浮动按钮**后将显示`添加密钥对话框`,通过滑动选择扇区序号,并输入6字节(共12位数字或字母)有效密钥A或密钥B,点击`完成`保存。 46 | ### 2.2.2 修改密钥 47 | 点击**修改按钮**后将显示`修改密钥对话框`,通过滑动选择修改扇区序号,并修改6字节(共12位数字或字母)有效密钥A或密钥B,点击`完成`保存新密钥或扇区。 48 | ### 2.2.3 读写扇区 49 | 将卡片紧贴NFC天线后,点击**读取按钮**后将读取该扇区对应4个块的数据,可修改数据并`写入`新数据。 50 | 若密钥修改,将同步保存新密钥。 51 | ### 2.2.4 数据对比 52 | 需已知密钥,标记字节后,可高亮对比数据与金额。 53 | 【付费功能】数据备份,垂直对比,规则仓库。 54 | ### 2.2.5 添加规则 55 | #### 2.2.5.0 界面标识 56 | 点击数据添加规则 57 | 点击图标复制规则 58 | 【付费功能】规则复制 59 | ![image](img/select_block.jpeg) 60 | #### 2.2.5.1 添加金额字节 61 | 标记金额对应的字节,并调节参数,确认金额无误后,下一步 62 | ![image](img/mark_money.jpeg) 63 | #### 2.2.5.2 添加校验字节 64 | 勾选校验字节,即变化的字节,添加表达式,无误后点击OK保存 65 | ![image](img/mark_check.jpeg) 66 | 67 | ##### 2.2.5.2.1 表达式 68 | 支持算法: 69 | > 加: + 70 | > 减:- 71 | > 乘:* 72 | > 除:/ 73 | > 按位异或: @^ 或 xor 74 | > 按位取反: @~ 或 not 75 | > 按位与: @& 或 and 76 | > 按位或: @| 或 or 77 | 78 | *注意:仅支持十进制数字运算* 79 | 80 | **查看表达式示例 [请点击](./help_add_rules.html)** 81 | 82 | ##### 2.2.5.3.2 表达式排序 83 | 84 | **按住并上下拖动即可重新排序,靠上先计算** 85 | 86 | ### 2.2.6 扇区排序 87 | 按住并上下拖动即可重新排序。 88 | ### 2.2.7 扇区密钥 89 | 向右滑动对应项目即可删除。 90 | ### 2.2.8 预览密钥列表 91 | 长按浮动按钮即可。 92 | ## 2.3 充值 93 | ### 2.3.1 设置定额 94 | 长按标题下的**充值**文字按钮,即可设定为定额充值。 95 | ### 2.3.2 清除记录 96 | 长按充值记录,即可弹出对话框选择是否清空充值记录。 97 | ### 2.3.3 预览计算结果 98 | 长按浮动按钮,可预览由 **规则** 生成的数据。 99 | 100 | # 3.调试 101 | 可开启浮动按钮的其他功能等,包括: 102 | - 【列表】点击`添加卡片对话框`中心NFC图标可添加卡片,UID为本设备UID前4字节 103 | 104 | # 4.依赖 105 | 感谢以下网友对开源社区的贡献,排名不分先后。 106 | - `ikarus23` [MifareClassicTool](https://github.com/ikarus23/MifareClassicTool) 107 | - `afollestad` [material-dialogs](https://github.com/afollestad/material-dialogs) 108 | - `markormesher` [android-fab](https://github.com/markormesher/android-fab) 109 | - `Ice-Box` [Ice-Box](http://catchingnow.com) 110 | - `kai-morich` [usb-serial-for-android](https;//github.com/kai-morich/usb-serial-for-android) 111 | - `uccmawei` [FingerprintIdentify](https://github.com/uccmawei/FingerprintIdentify) 112 | 113 | # 5.外接设备 114 | - OTG + ACR122U [视频演示](https://youtu.be/a7nUWIN7s-4) 115 | - OTG + UART + PN532 [视频演示](https://youtu.be/AbKZu_W71zE) 116 | - Bluetooth + PN532 [视频演示](https://youtu.be/CklwMj0lpYI) 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /zh/tips_sniffer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tips_sniffer 493 | 494 | 495 |
498 | 499 | -------------------------------------------------------------------------------- /zh/tips_sniffer.md: -------------------------------------------------------------------------------- 1 | - 【添加数据】卡片靠近NFC天线 2 | - 【重排序】向 **↓**或**↑** 拖动排序 3 | - 【删除】向 **→** 滑动删除 4 | - 【备份】点击 **+** 选择 上传 图标 5 | - 【恢复】点击 **+** 选择 下载 图标 6 | - 【仓库】点击 **+** 选择 仓库 图标 7 | ![image](./img/tips_repo.jpg) 8 | - 【计算】根据表达式计算校验值 9 | ![image](./img/tips_sniffer.jpg) -------------------------------------------------------------------------------- /zh/tutorial/tutorial_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 288 | MDReader 289 | 290 | 291 |

教程1

292 |

要求:

293 |
    294 |
  1. 一部支持NFC的手机
  2. 295 |
  3. 知道IC卡的密钥ab
  4. 296 |
297 |

(不知道的请下载M keys进行尝试破解)

298 |

步骤:

299 |

第一步(添加水卡)

300 |

打开软件M Tools,点击加号,添加一张IC卡。 301 | Screenshot_2018-01-30-19-15-55-170_tk.toolkeys.mtools.png
添加之后,点击详情,点击添加密钥,左边选择你金额扇区,比如我的是8扇区,如下图 302 | Screenshot_2018-01-30-19-23-06-446_tk.toolkeys.mtools.png

303 |

第二步(添加规则)

304 |

点击扇区左边的按钮,选择需要更改的块 305 |
先标记金额,比如我的ic卡前三位是金额,所以标记下前三位,然后验证,选择倒置,倍率为100,点击下一步
Screenshot_2018-01-31-08-22-01-725_tk.toolkeys.mtools.png

306 |

第三步(标记校验字节)

307 |

校验字节就是随你金额而变动的字节,只要会变动就都标记
Screenshot_2018-01-31-08-25-49-636_tk.toolkeys.mtools.png

308 |

标记完成后就填写下方表达式
表达式也就是计算公式

309 |

例如: 310 | 金额数据如下:

311 |

312 | 6D 20 00 00 FF FF FF FF 6D 20 00 00 20 DF 20 DF
313 | 
314 |

比如我的b0,b1,b2(6D,20,00)是金额,同样b8 b9 b10也是金额,可以说是b8,b9,b10随b0,b1,b2改变而改变

315 |

表达式可以这样写:

316 |

317 | b8=(b0)
318 | 
319 | b9=(b1)
320 | 
321 | b10=(b2)
322 | 
323 |

Screenshot_2018-01-31-08-25-24-308_tk.toolkeys.mtools.png

324 |

举例: 325 | 校验位算法 → 填写方式

326 |

327 | b2=b1 →b2=b1
328 | b4=b2+0x1F → b4=b2+31
329 | b15=b0 xor b1 → b15=b0@^b1
330 | b2=not b0 → b2@~b0
331 | 
332 |

注1:请将十六进制数转换成十进制
注2:按从上至下的顺序计算

333 |

写完后点击OK
其它块如果相同,需重新添加或复制

334 |

第四步(充值金额)

335 |

卡片拿开重新放上,显示金额
Screenshot_2018-01-31-08-29-57-623_tk.toolkeys.mtools.png
输入金额,点击$按钮
Screenshot_2018-01-31-08-30-53-778_tk.toolkeys.mtools.png
Screenshot_2018-01-31-08-30-58-352_tk.toolkeys.mtools.png

336 |

ps:如果出错请检查你的算法及表达式

337 |
338 | -------------------------------------------------------------------------------- /zh/tutorial/tutorial_0.md: -------------------------------------------------------------------------------- 1 | # 教程1 2 | 3 | ## 要求: 4 | 5 | 1. 一部支持NFC的手机 6 | 2. 知道IC卡的密钥ab 7 | 8 | (不知道的请下载M keys进行尝试破解) 9 | 10 | 11 | ## 步骤: 12 | 13 | ### 第一步(添加水卡) 14 | 打开软件M Tools,点击加号,添加一张IC卡。 15 | ![Screenshot_2018-01-30-19-15-55-170_tk.toolkeys.mtools.png](https://i.loli.net/2018/01/31/5a7103b22f09c.png) 16 | 添加之后,点击详情,点击添加密钥,左边选择你金额扇区,比如我的是8扇区,如下图 17 | ![Screenshot_2018-01-30-19-23-06-446_tk.toolkeys.mtools.png](https://i.loli.net/2018/01/31/5a710458f172d.png) 18 | 19 | ### 第二步(添加规则) 20 | 点击扇区左边的按钮,选择需要更改的块 21 | 22 | 先标记金额,比如我的ic卡前三位是金额,所以标记下前三位,然后验证,选择倒置,倍率为100,点击下一步 23 | ![Screenshot_2018-01-31-08-22-01-725_tk.toolkeys.mtools.png](https://i.loli.net/2018/01/31/5a710c7852d7b.png) 24 | ### 第三步(标记校验字节) 25 | 校验字节就是随你金额而变动的字节,只要会变动就都标记 26 | ![Screenshot_2018-01-31-08-25-49-636_tk.toolkeys.mtools.png](https://i.loli.net/2018/01/31/5a710d1ad205d.png) 27 | 28 | 标记完成后就填写下方表达式 29 | 表达式也就是计算公式 30 | 31 | 例如: 32 | 金额数据如下: 33 | 34 | ``` 35 | 6D 20 00 00 FF FF FF FF 6D 20 00 00 20 DF 20 DF 36 | ``` 37 | 38 | 比如我的b0,b1,b2(6D,20,00)是金额,同样b8 b9 b10也是金额,可以说是b8,b9,b10随b0,b1,b2改变而改变 39 | 40 | 表达式可以这样写: 41 | 42 | ``` 43 | b8=(b0) 44 | 45 | b9=(b1) 46 | 47 | b10=(b2) 48 | ``` 49 | 50 | ![Screenshot_2018-01-31-08-25-24-308_tk.toolkeys.mtools.png](https://i.loli.net/2018/01/31/5a710dc39c5f5.png) 51 | 52 | 举例: 53 | 校验位算法 → 填写方式 54 | ``` 55 | b2=b1 →b2=b1 56 | b4=b2+0x1F → b4=b2+31 57 | b15=b0 xor b1 → b15=b0@^b1 58 | b2=not b0 → b2@~b0 59 | ``` 60 | 注1:请将十六进制数转换成十进制 61 | 注2:按从上至下的顺序计算 62 | 63 | 写完后点击OK 64 | 其它块如果相同,需重新添加或复制 65 | 66 | ### 第四步(充值金额) 67 | 卡片拿开重新放上,显示金额 68 | ![Screenshot_2018-01-31-08-29-57-623_tk.toolkeys.mtools.png](https://i.loli.net/2018/01/31/5a710e18c0969.png) 69 | 输入金额,点击$按钮 70 | ![Screenshot_2018-01-31-08-30-53-778_tk.toolkeys.mtools.png](https://i.loli.net/2018/01/31/5a710e52afa6c.png) 71 | ![Screenshot_2018-01-31-08-30-58-352_tk.toolkeys.mtools.png](https://i.loli.net/2018/01/31/5a710e52ba734.png) 72 | 73 | *ps:如果出错请检查你的算法及表达式* 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /zh/tutorial/tutorial_compare_hex_data.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 288 | MDReader 289 | 290 | 291 |

十六进制数的对比与分析在RFID相关的学习与研究上是很常见的,然而大部分都是面对电脑上,白底黑字的写字板,或者是Excel表格中进行对比,计算时还得不断切换计算器应用与原始数据。 292 | 这里给大家介绍一下MTools里的嗅探对比工具,以及分析数据的思路。

293 |

1.首先手动添加或直接采样添加每块16字节的数据 294 |

295 |

2.添加完成后,可以看到两行数据间的浅蓝色与浅红色间隔,表示的是上下的数据相同或不同 296 | 5de9497071839170e00ca37be4b67c68.jpg

297 |

3.点击顶部第一个按钮,开始标记数据 298 | 通过转化可以知道0x2710表示十进制的10000,调整下参数 299 |

300 |

4.接着标记出第2步中浅红色的字节,即校验位 301 | 302 | 接着点击OK,稍后再分析算法

303 |

5.刚标记完的数据都显示横线,我们用b0,b1,b2...b15分别表示16个字节的数据 304 |

305 |

6.目测很容易看出b1,b5,b15的关系,如下

306 |

307 | b1=b2+b3;
308 | b5=@~b1;   //@~b1表示取反
309 | b15=b5+1;
310 | 
311 |

再点击相应字节,添加表达式,数据完美适配 312 | c1f1338d10edb6d4452bb7ae03a996fb.jpg

313 |

7.接下来分析b0与b1,有时候b0=b1+1,有时候则是减一,造成这样的结果只有可能是异或的运算,分析后得出如下公式

314 |

315 |     b0=b2@^b3@^1  //@^表示异或 xor
316 | 
317 |

8.待所有删除线都消失,表示表达式完全正确 318 | 319 | 至此,规则添加完成。

320 |
321 | -------------------------------------------------------------------------------- /zh/tutorial/tutorial_compare_hex_data.md: -------------------------------------------------------------------------------- 1 | 十六进制数的对比与分析在RFID相关的学习与研究上是很常见的,然而大部分都是面对电脑上,白底黑字的写字板,或者是Excel表格中进行对比,计算时还得不断切换计算器应用与原始数据。 2 | 这里给大家介绍一下MTools里的嗅探对比工具,以及分析数据的思路。 3 | 4 | 1.首先手动添加或直接采样添加每块16字节的数据 5 | ![](https://i.loli.net/2018/04/16/5ad4275564743.jpg) 6 | 7 | 2.添加完成后,可以看到两行数据间的浅蓝色与浅红色间隔,表示的是上下的数据相同或不同 8 | [![5de9497071839170e00ca37be4b67c68.jpg](https://i.loli.net/2018/04/16/5ad42896bbca1.jpg)](https://i.loli.net/2018/04/16/5ad42896bbca1.jpg) 9 | 10 | 3.点击顶部第一个按钮,开始标记数据 11 | 通过转化可以知道0x2710表示十进制的10000,调整下参数 12 | ![](https://i.loli.net/2018/04/16/5ad4275560d87.jpg) 13 | 14 | 4.接着标记出第2步中浅红色的字节,即校验位 15 | ![](https://i.loli.net/2018/04/16/5ad427555d54f.jpg) 16 | 接着点击OK,稍后再分析算法 17 | 18 | 5.刚标记完的数据都显示横线,我们用b0,b1,b2...b15分别表示16个字节的数据 19 | ![](https://i.loli.net/2018/04/16/5ad4275556c79.jpg) 20 | 21 | 6.目测很容易看出b1,b5,b15的关系,如下 22 | ``` 23 | b1=b2+b3; 24 | b5=@~b1;   //@~b1表示取反 25 | b15=b5+1; 26 | ``` 27 | 再点击相应字节,添加表达式,数据完美适配 28 | [![c1f1338d10edb6d4452bb7ae03a996fb.jpg](https://i.loli.net/2018/04/16/5ad428e668a5d.jpg)](https://i.loli.net/2018/04/16/5ad428e668a5d.jpg) 29 | 30 | 7.接下来分析b0与b1,有时候b0=b1+1,有时候则是减一,造成这样的结果只有可能是异或的运算,分析后得出如下公式 31 | ``` 32 |     b0=b2@^b3@^1  //@^表示异或 xor 33 | ``` 34 | 35 | 8.待所有删除线都消失,表示表达式完全正确 36 | ![](https://i.loli.net/2018/04/16/5ad4275543f85.jpg) 37 | 至此,规则添加完成。 -------------------------------------------------------------------------------- /zh/update_log.md: -------------------------------------------------------------------------------- 1 | [最新版 - 点击下载](https://github.com/whywilson/mtools/releases/download/2020/mtools.apk) 2 | 3 | *提示:更新日志或未更新及时,但以上下载地址始终保持最新* 4 | ### Ver.20200117 5 | 6 | ``` 7 | 1.添加新的关于页面 8 | 2.增加开源项目链接 9 | 3.增加好用工具推荐 10 | 4.优化读写卡逻辑 11 | ``` 12 | 13 | ### Ver.20200104 14 | 15 | ``` 16 | 1.预设常见标记方式 17 | 2.贴卡自动滚动到相应卡片 18 | 3.读卡时反馈密钥错误信息 19 | 4.添加指纹锁定支持以提高安全性。 20 | 5.增加连续运算助手函数 21 | ``` 22 | 23 | ### Ver.20191128 24 | 25 | ``` 26 | 1.支持列表页面直接分享mto卡片数据 27 | 2.文件管理器内打开mto直接导入 28 | 3.优化UI滑动布局 29 | ``` 30 | ### Ver.20191019 31 | 32 | ``` 33 | 1.支持设置贴卡是否自动启动 34 | ``` 35 | 36 | ### Ver.20191006 37 | 38 | ``` 39 | 1.支持选择字典读取所有扇区 40 | ``` 41 | 42 | ### Ver.20190913 43 | 44 | ``` 45 | 1.优化嗅探本地记录加载速度 46 | 2.修复取消标记第一个校验位崩溃问题 47 | ``` 48 | 49 | ### Ver.20190823 50 | 51 | ``` 52 | 1.显示已连接设备信息 53 | 2.应用内可切换语言 54 | ``` 55 | 56 | ### Ver.20190728 57 | 58 | ``` 59 | 1.优化外接设备对话框 60 | 2.PN532支持离线工作 61 | ``` 62 | 63 | ### Ver.20190611 64 | 65 | ``` 66 | 1.开启PN532极速读写卡 67 | 2.修复应用权限问题 68 | 3.修复添加闪退问题 69 | 4.修复字节标记问题 70 | 5.修复转储嗅探添加问题 71 | ``` 72 | 73 | ### Ver.20190528 74 | 75 | ``` 76 | 1.修复订单号认证问题 77 | 2.兼容 Nfc-Tools 转储文件 78 | 3.修复规则仓库权限问题 79 | ``` 80 | 81 | ### Ver.20190515 82 | 83 | ``` 84 | 1.PN532模式充值记录 85 | 2.列表显示已刷的卡 86 | ``` 87 | 88 | ### Ver.20190508 89 | 90 | ``` 91 | 1.支持蓝牙连接PN532 92 | 2.支持CRC8与CRC16算法(加密) 93 | 3.提升PN532读写速度 94 | 4.兼容无NFC设备 95 | ``` 96 | 97 | ### Ver.20190411 98 | 99 | ``` 100 | 1.支持FF078069控制位扇区使用任意一密钥读写 101 | 2.修复十进制&十六进制标记问题 102 | 3.修复最大充值限额问题 103 | ``` 104 | 105 | ### Ver.20190407 106 | 107 | ``` 108 | 1.dump支持NFC,PN532与ACR122U写入 109 | 2.PN532模式下嗅探界面优化 110 | 3.修复限制最大金额问题 111 | 3.升级对话框可取消 112 | ``` 113 | 114 | ### Ver.20190403 115 | 116 | ``` 117 | 1.支持导入mct和1k转储 118 | 2.转储支持写入与更新密钥 119 | 3.表达式支持u0,u1,u2,u3代替uid 120 | 4.NFC判断keyA与keyB权限 121 | 5.预览待写入数据可复制 122 | 6.修复嗅探写入块3问题 123 | 7.充值前判断是否匹配 124 | 8.新添加卡片显示SAK 125 | 9.嗅探按钮自动半透明 126 | ``` 127 | 128 | 129 | ### Ver.20190310 130 | 131 | ``` 132 | 1.修复NFC无法添加卡 133 | 2.修复PN532添加卡无UID 134 | ``` 135 | 136 | ### Ver.20190306 137 | 138 | ``` 139 | 1.支持PN532读卡写卡 140 | 2.极力优化PN532通信 141 | ``` 142 | 143 | ### Ver.20190213 144 | 145 | ``` 146 | 1.优化写卡前预览界面 147 | 2.写卡前预览可隐藏表达式 148 | 3.简化运算符(见添加表达式提示) 149 | 4.添加读取USB, 控制振动权限 150 | ``` 151 | 152 | ### Ver.20190112 153 | 154 | ``` 155 | 0.添加遗失的嗅探帮助文档 156 | 1.支持Chrome Custom Tabs打开帮助 157 | 2.修复keyB无法读取写入的问题 158 | 3.充值界面可增加或覆盖金额 159 | 4.修复拷贝按钮不居中问题 160 | 5.移除领取红包相关 161 | ``` 162 | 163 | ### Ver.20181227 164 | 165 | ``` 166 | 1.移除写入成功后的对话框 167 | 2.修复嗅探加载问题 168 | 169 | 这会是2018年MTools在酷安的最后一次更新,并且应用将在2019年1月1日前下架,具体原因见APP内提醒,意在告诉某些用户不要用于违法用途。 170 | 171 | 1.Fix bugs on priority when exiting Sniffer 172 | 2.Fix bugs on keyB auth on ACR122U. 173 | ``` 174 | 175 | ### Ver.20181216 176 | 177 | ``` 178 | 1.修复退出嗅探时排序问题 179 | 2.修复ACR122U下keyB不可读写问题 180 | 181 | 1.Fix bugs on priority when exiting Sniffer 182 | 2.Fix bugs on keyB auth on ACR122U 183 | ``` 184 | 185 | 186 | 187 | ### Ver.20181208 188 | 189 | ``` 190 | 1.修复主界面点击帮助问题 191 | 2.ACR122U可设置静音模式 192 | 193 | 1.Fix Bugs when click HELP menu. 194 | 2.Set mute mode with ACR122U. 195 | ``` 196 | 197 | 198 | 199 | ### Ver.20181203 200 | 201 | ``` 202 | 1.添加设置界面 203 | 2.优化嗅探本地存储 204 | 3.根据谷歌政策移除捐赠通道 205 | 206 | 1.Add APP settings. 207 | 2.Improve local sniffer. 208 | 3.Remove donation link depending Google's Policy 209 | ``` 210 | 211 | 212 | 213 | ### Ver.20181129 214 | 215 | ``` 216 | 0.嗅探记录可本地存储,无需联网 217 | 1.修复Android P上的崩溃问题 218 | 219 | 0.Store local records on Sniffer. 220 | 1.Fix crashes on Android P. 221 | ``` 222 | 223 | 224 | 225 | ### Ver.20181124 226 | 227 | ``` 228 | 0.嗅探中优先选择含有规则的块 229 | 1.修复加载密钥出错问题 230 | 2.帮助内添加如何使用MTools 231 | 3.更新至最新SDK28 232 | 4.修复导入导出问题 233 | 234 | 0.Enter Sniffer with Block that has rules. 235 | 1.Fix bug on loading keys. 236 | 2.Add [How to use MTools] in help. 237 | 3.Update to latest SDK 28. 238 | 4.Fix bug on Import/Export. 239 | ``` 240 | 241 | 242 | 243 | ### Ver.20181111 244 | 245 | ``` 246 | 1.修复使用ACR122U充值问题 247 | 2.帮助内添加如何使用MTools 248 | 249 | 1.Fix bug on charge with ACR122U. 250 | 2.Add [How to use MTools in help. 251 | ``` 252 | 253 | 254 | 255 | ### Ver.20180926 256 | 257 | ``` 258 | 1、修复加载密钥时错误 259 | 2、支持充值小数金额 260 | 261 | 1. Support external device, ACR122U. 262 | 2. Bulk import data in Sniffer. 263 | 3. Support for decimal amount recharge. 264 | ``` 265 | 266 | 267 | 268 | ### Ver.20180910 269 | 270 | ``` 271 | 1、支持外挂ACR122U 272 | 2、批量导入嗅探数据 273 | 274 | 1.Support external device, ACR122U. 275 | 2.Bulk import data in Sniffer. 276 | ``` 277 | 278 | 279 | 280 | ### Ver.20180820 281 | 282 | ``` 283 | 1.Fix crash on Android KitKat devices. 284 | 2.Fix crash while charging. 285 | 3.Remove useless layout file. 286 | ``` 287 | 288 | 289 | 290 | ### Ver.20180805 291 | 292 | ``` 293 | Release the expression to enter the limit of the character, you can calculate any expression supported by mXparser. 294 | ``` 295 | 296 | 297 | 298 | ### Ver.20180713 299 | 300 | ``` 301 | 0、嗅探数据可修改 302 | 1、嗅探数据字体可调节 303 | 2、修复无法拉取数据的问题 304 | 3、修复5.1系统进入嗅探FC问题 305 | 4、改善解锁付费分析对话框界面 306 | 5、修复捐赠版嗅探数据不对齐问题 307 | 308 | 0.Sniffer data can be modified. 309 | 1.Text size of Sniffer could be adjust. 310 | 2.Fix bugs of pulling no data. 311 | 3.Fix FC problems below SDK21 device. 312 | 4.Fix issues of sniffer data format. 313 | ``` 314 | 315 | 316 | 317 | ### Ver.20180610 318 | 319 | ``` 320 | 1、嗅探数据字体可调节 321 | 2、修复无法拉取数据的问题 322 | 3、修复5.1系统进入嗅探FC问题 323 | 4、改善解锁付费分析对话框界面 324 | 5、修复捐赠版嗅探数据不对齐问题 325 | 326 | 1.Text size of Sniffer could be adjust. 327 | 2.Fix bugs of pulling no data. 328 | 3.Fix FC problems below SDK21 device. 329 | 4.Fix issues of sniffer data format. 330 | ``` 331 | 332 | 333 | 334 | ### Ver.20180531 335 | 336 | ``` 337 | 1、左滑卡片列表可复制信息 338 | 2、分析人员可导出指定卡片 339 | 3、优化UI细节,修复问题 340 | 341 | 1.Drag Card item left to copy device ID & UID. 342 | 2.Export single Card for analyser. 343 | 3.Optimize UI and fix bugs. 344 | ``` 345 | 346 | 347 | 348 | ### Ver.20180527 349 | 350 | ``` 351 | 1、开启付费分析 352 | 2、私信可直接点击与清空 353 | ``` 354 | 355 | ### Ver.20180519 356 | 357 | ``` 358 | 1、添加私信接口 359 | 2、修复复制按钮FC问题 360 | 3、修复条款页面遮盖问题 361 | 4、修复解锁界面红包问题 362 | ``` 363 | 364 | 365 | 366 | ### Ver.20180513 367 | 368 | ``` 369 | 新变化 370 | 1、可选是否写入块3 371 | 2、修复激活失败问题 372 | 3、添加通知底栏 373 | 4、付费分析 374 | 5、升级接口 375 | 376 | WHAT'S NEW 377 | 1.Choose to write block 3 or not. 378 | 2.Fix bugs of reunlock. 379 | 3.Add notification section. 380 | 4.upgrade interface. 381 | ``` 382 | 383 | 384 | 385 | ### Ver. 20180415.1 386 | 387 | ``` 388 | 1、根据第一规则完整性启动到相应界面 389 | 2、完善提示机制 390 | 391 | 1.Jump to difference fragments on the integrity of first rule. 392 | 2.Fix bugs and upgrade performance. 393 | ``` 394 | 395 | 396 | 397 | ### Ver. 20180407.1 398 | 399 | ``` 400 | 1、添加导入导出数据功能 401 | 402 | 1.Add import/export data sections. 403 | ``` 404 | 405 | 406 | 407 | ### Ver. 20180403.1 408 | 409 | ``` 410 | 1、添加质感用户向导 411 | 412 | 1.Add Material Design user guide. 413 | ``` 414 | 415 | 416 | 417 | ### Ver. 20180331.1 418 | 419 | ``` 420 | 1、完善重放攻击对话框 421 | 2、输入最大金额由规则而定 422 | 3、捐赠对话框显示设备序列号 423 | 4、支付前领个红包吧 424 | 425 | 1. Improve Replay Attack Dialog. 426 | 2. Max amount from rules. 427 | 3. Show device id on donate dialog. 428 | ``` 429 | 430 | 431 | 432 | ### Ver. 20180326.1 433 | 434 | ``` 435 | 1、添加重放攻击功能 436 | 2、修复多块规则的写卡问题 437 | 3、修复捐赠链接问题 438 | 439 | 1. Add replay attack on Sniffer. 440 | 2. Fix bugs on writing multi-rules. 441 | 3. Fix bugs on donate link. 442 | ``` 443 | 444 | 445 | 446 | ### Ver. 20180318.1 447 | 448 | ``` 449 | 1、未标记前可高亮显示数据异同。 450 | 2、本地存储订单号,便于再次激活。 451 | 3、添加更多算法支持。 452 | 4、修复错误并提升性能。 453 | 454 | 1.Highlight Vertical Comparison before bytes marked. 455 | 2.More rules added. 456 | 3.Fix bugs and upgrade performance. 457 | ``` 458 | 459 | 460 | 461 | ### 版本 20180312.1 462 | 463 | ``` 464 | 1.加快提交订单审核速度 465 | 2.一个订单号只支持一台设备,除非设备序列号相同(#滑稽) 466 | ``` 467 | 468 | 469 | 470 | ### 版本 20180311.1 471 | 472 | ``` 473 | 1.未贴卡时添加规则采用模拟数据 474 | 2.表达式可添加if判断 475 | 3.可列出卡片全部密钥 476 | 4.点击金额可隐藏 477 | 5.界面微调 478 | ``` 479 | 480 | 481 | 482 | ### 版本 20180306.2 483 | 484 | ``` 485 | 1.嗅探界面金额可隐藏 486 | 2.修复Lenovo P2c72不支持问题 487 | ``` 488 | 489 | 490 | 491 | ### 版本 20180305.1 492 | 493 | ``` 494 | 1.简化数据结构 495 | 2.升级数据库 496 | 3.添加规则仓库1.0 497 | 4.完善规则计算过程 498 | 5.可手动添加块数据 499 | ``` 500 | 501 | 502 | 503 | ### 版本 20180208.1 504 | 505 | ``` 506 | 1.实时计算校验位,意味着输入表达式,立即显示结果并与原始数据进行对比 507 | 2.优化部分细节 508 | 3.修复几处小bug 509 | ``` 510 | 511 | 512 | 513 | ### 版本 20180131.1 514 | 515 | ``` 516 | 1.极大简化标记字节过程 517 | 2.判断规则是否完整 518 | 3.判断写卡后数据是否变化 519 | 4.帮助文档添加图文说明 520 | 5.感谢网友的教程(帮助文档末) 521 | ``` 522 | 523 | 524 | 525 | ### 版本 20180125.1 526 | 527 | ``` 528 | 1.优化帮助界面 529 | 2.优化嗅探界面 530 | 3.准备规则仓库开发 531 | 4.改进部分细节 532 | ``` 533 | 534 | 535 | 536 | ### 版本 20180120.2 537 | 538 | ``` 539 | 1.规则拷贝 540 | 2.数据对比备份 541 | 3.更新日志对话框 542 | 4.修复读取扇区规则问题 543 | 5.修复跨卡片复制规则失败问题 544 | 6.修复发现新版本时FC问题 545 | 7.添加数据生成对话框 546 | ``` 547 | 548 | 549 | 550 | ### 14.0 551 | 552 | ``` 553 | 1.移除读取手机状态权限,改为设备ID以作标识。(以捐赠用户重装后请与我联系以恢复捐赠特权) 554 | 2.规范表达输入内容 555 | 3.修复表达式生成bug 556 | ``` 557 | 558 | 559 | 560 | ### 13.0 561 | 562 | ``` 563 | 1.添加删除确认对话框 564 | 2.充值后再次读卡 565 | 3.读取扇区从数据库加载key,避免出现---- 566 | 4.某些设备需要两次验证密钥,因此统一两次验证。 567 | ``` 568 | 569 | ### 12.0 570 | 571 | ``` 572 | 1.简化规则 573 | 2.修复指示器,绿/灰 574 | 3.M Keys跳转添加 575 | 4.修复bean数据缺失bug 576 | ``` 577 | 578 | ### 11.0 579 | 580 | ``` 581 | 1.修复详情页面验证FC问题 582 | 2.更新添加表达式提示,可拖动排序 583 | ``` 584 | 585 | 586 | 587 | ### 10.0 588 | 589 | ``` 590 | 修复众多bug: 591 | a.保存规则后未刷新问题 592 | b.M Sniff退出后规则刷新问题 593 | c.移除唯一一个扇区FC问题 594 | d.最重要,实现了添加规则时,若数据库存在则加载,保存临时表达式数据,数据库不存在的已添加数据靠后排... 595 | ``` 596 | 597 | ### 9.1 Beta 598 | 599 | ``` 600 | 紧急修复一处调试模式加载出错的问题 601 | ``` 602 | 603 | ### 9.0 604 | 605 | ``` 606 | 1.M Sniff无需调试模式 607 | 高亮显示、垂直对比、备份恢复 608 | 2.重构标记数据的方法 609 | 3.可以同扇区多规则 610 | 4.带key跳转添加(埋伏笔中) 611 | ``` 612 | 613 | ### 8.0 614 | 615 | ``` 616 | 1.添加数据对比工具M Sniff 617 | 高亮显示、垂直对比、备份恢复 618 | 2.调试模式可判断规则是否完整 619 | 3.修复上一版本一处log导致的崩溃 620 | ``` 621 | 622 | ### 7.0 623 | 624 | ``` 625 | 1.修复校验位超过2字符问题 626 | 2.当接连添加第二块规则时,没有重置已选数据的问题 627 | 3.调试模式下长按$可显示当前规则信息 628 | 4.调整部分对话框。 629 | 630 | 注:若您正在使用4.*版本,请移除卡片,并重新添加规则" 631 | ``` 632 | 633 | ### 6.0 Beta 634 | 635 | ``` 636 | 1.切换调试模式刷新列表问题 637 | ``` 638 | 639 | ### 5.1 Beta 640 | 641 | ``` 642 | 1.修复权限申请 643 | 2.保存临时添加表达式 644 | 3.添加调试模式 645 | 4.测试数据对比 646 | 647 | 若您的版本不是5,请移除卡片并重新添加规则,否则写入数据不完整。 648 | ``` 649 | 650 | ``` 651 | 652 | ``` --------------------------------------------------------------------------------