Sploitus

Exploit for Android-PIN-Bruteforce

kitploit · 2026-08-31

Exploit Code

MARKDOWN593 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-URBANADVENTURER-ANDROID-PIN-BRUTEFORCE
# 🔓📱 Android-PIN-Bruteforce

Разблокируйте Android-телефон (или устройство) с помощью брутфорса PIN-кода экрана блокировки.

Превратите ваш телефон Kali Nethunter в инструмент для брутфорса PIN-кодов Android-устройств!

## 📱 Как это работает

Для подключения заблокированного телефона к устройству Nethunter используется USB OTG-кабель. Он эмулирует клавиатуру, автоматически перебирает PIN-коды и делает паузу после слишком большого количества неверных попыток.

![Как подключить телефоны](https://assets.kitploit.com/production/public/readmes/4214/3ae413bb5c36cdffb6796adb77dc27f619b77884b7d0a813bef64ff25bdb9fbd.png)

[Телефон Nethunter] <\--> [USB-кабель] <\--> [USB OTG-адаптер] <\--> [Заблокированный Android-телефон]

Драйвер USB HID Gadget обеспечивает эмуляцию USB-устройств взаимодействия с человеком (HID). Это позволяет устройству Android Nethunter эмулировать ввод с клавиатуры на заблокированном телефоне. Это все равно что подключить клавиатуру к заблокированному телефону и нажимать клавиши.

⏱ Это занимает чуть более 16,6 часов на Samsung S5 для перебора всех возможных 4-значных PIN-кодов, но с оптимизированным списком PIN-кодов это займет у вас гораздо меньше времени.

### Вам понадобится

  * Заблокированный Android-телефон
  * Телефон Nethunter (или любой рутированный Android с поддержкой HID в ядре)
  * USB OTG-кабель/адаптер (USB мужской Micro-B к женскому USB A) и стандартный кабель для зарядки (USB мужской Micro-B к мужскому A).
  * Это всё!



## 🌟 Преимущества

  * Превратите ваш телефон NetHunter в машину для взлома PIN-кодов Android
  * В отличие от других методов, вам не нужен ADB или отладка по USB на заблокированном телефоне
  * Заблокированный Android-телефон не требует рутирования
  * Вам не нужно покупать специальное оборудование, например Rubber Ducky, Teensy, Cellebrite, XPIN Clip и т.д.
  * Вы можете легко изменить время ожидания для взлома других типов устройств
  * Это работает!



## ⭐ Возможности

  * Взлом PIN-кодов любой длины от 1 до 10 цифр
  * Использование конфигурационных файлов для поддержки разных телефонов
  * Оптимизированные списки PIN-кодов для 3, 4, 5 и 6-значных PIN-кодов
  * Обходит всплывающие окна телефона, включая предупреждение о низком заряде
  * Обнаруживает, когда телефон отключен или выключен, и ожидает, повторяя попытки каждые 5 секунд
  * Настраиваемые задержки в N секунд после каждых X попыток ввода PIN
  * Файл журнала



## Установка

TBC

## Запуск скрипта

Если вы установили скрипт в /sdcard/, вы можете выполнить его с помощью следующей команды.`bash ./android-pin-bruteforce`

Note that Android mounts /sdcard with the noexec flag. You can verify this with `mount`.

## Usage

root@kitploit:~
    
    
    Android-PIN-Bruteforce (0.2) используется для разблокировки Android-телефона (или устройства) путем перебора PIN-кода блокировки экрана.
      Дополнительная информация по адресу: https://github.com/urbanadventurer/Android-PIN-Bruteforce
    
    Команды:
      crack                Начать перебор PIN-кодов
      resume               Возобновить с выбранного PIN
      rewind               Перебирать PIN-коды в обратном порядке с выбранного PIN
      diag                 Показать диагностическую информацию
      version              Показать информацию о версии и выйти
    
    Опции:
      -f, --from PIN       Возобновить с этого PIN
      -a, --attempts       Начать с NUM неверных попыток
      -m, --mask REGEX     Использовать маску для известных цифр в PIN
      -t, --type TYPE      Выбрать взлом PIN или PATTERN
      -l, --length NUM     Взламывать PIN-коды длиной NUM
      -c, --config FILE    Указать файл конфигурации для загрузки
      -p, --pinlist FILE   Указать пользовательский список PIN
      -d, --dry-run        Пробный запуск для тестирования. Не отправляет никакие клавиши.
      -v, --verbose        Выводить подробные журналы
    
    Использование:
      android-pin-bruteforce <command> [options]```
    
    
    ## Supported Android Phones/Devices
    
    This has been successfully tested with various phones including the Samsung S5, S7, Motorola G4 Plus and G5 Plus.
    
    It can unlock Android versions 6.0.1 through to 10.0. The ability to perform a bruteforce attack doesn't depend on the Android version in use. It depends on how the device vendor developed their own lockscreen.
    
    Check the Phone Database for more details
    https://github.com/urbanadventurer/Android-PIN-Bruteforce/wiki/Phone-Database
    
    ## 🎳 PIN Lists
    
    Optimised PIN lists are used by default unless the user selects a custom PIN list.  
    
    ### Cracking PINs of different lengths
    
    Use the `--length` commandline option.
    
    Use this command to crack a 3 digit PIN, 
    `./android-pin-bruteforce crack --length 3`
    
    Use this command to crack a 6 digit PIN
    `./android-pin-bruteforce crack --length 6`
    
    ### Where did the optimised PIN lists come from?
    
    The optimised PIN lists were generated by extracting numeric passwords from database leaks then sorting by frequency. All PINs that did not appear in the password leaks were appended to the list. 
    
    The optimised PIN lists were generated from *Ga$$Pacc DB Leak* (21GB decompressed, 688M Accounts, 243 Databases, 138920 numeric passwords).
    
    #### The 4 digit PIN list
    
    The reason that the 4 digit PIN list is used from a different source is because it gives better results than the generated list from *Ga$$Pacc DB Leak*.
    
    `optimised-pin-length-4.txt` is an optimised list of all possible 4 digit PINs, sorted by order of likelihood.
    It can be found with the filename `pinlist.txt` at https://github.com/mandatoryprogrammer/droidbrute
    
    This list is used with permission from Justin Engler & Paul Vines from Senior Security Engineer, iSEC Partners,
    and was used in their Defcon talk, [Electromechanical PIN Cracking with Robotic Reconfigurable Button Basher (and C3BO)](https://www.defcon.org/html/defcon-21/dc-21-speakers.html#Engler)
    
    ### Cracking with Masks
    
    Masks use regular expressions with the standard grep extended format.
    
    `./android-pin-bruteforce crack --mask "...[45]" --dry-run`
    
    - To try all years from 1900 to 1999, use a mask of `19..`
    - To try PINs that have a 1 in the first digit, and a 1 in the last digit, use a mask of `1..1`
    - To try PINs that end in 4 or 5, use `...[45]`
    
    ## 📱 Configuration for different phones
    
    Device manufacturers create their own lock screens that are different to the default or stock Android. 
    To find out what keys your phone needs, plug a keyboard into the phone and try out different combinations.
    
    Load a different configuration file, with the `--config FILE` commandline parameter.
    
    Example:
    `./android-pin-bruteforce --config ./config.samsung.s5 crack`
    
    You can also edit the `config` file by customising the timing and keys sent.
    
    The following configuration variables can be used to support a different phone's lockscreen.
    
    

# Тайминги

## DELAY_BETWEEN_KEYS — это период времени в секундах, ожидаемый после отправки каждой клавиши

DELAY_BETWEEN_KEYS=0.25

## Переменные PROGRESSIVE_COOLDOWN_ARRAY действуют как многомерный массив для настройки прогрессивного охлаждения

## PROGRESSIVE_ARRAY_ATTEMPT_COUNT__________ — номер попытки

## PROGRESSIVE_ARRAY_ATTEMPTS_UNTIL_COOLDOWN — сколько попыток сделать перед охлаждением

## PROGRESSIVE_ARRAY_COOLDOWN_IN_SECONDS____ — время охлаждения в секундах

PROGRESSIVE_ARRAY_ATTEMPT_COUNT__________=(1 11 41) PROGRESSIVE_ARRAY_ATTEMPTS_UNTIL_COOLDOWN=(5 1 1) PROGRESSIVE_ARRAY_COOLDOWN_IN_SECONDS____=(30 30 60)

## SEND_KEYS_DISMISS_POPUPS_N_SECONDS_BEFORE_COOLDOWN_END определяет, за сколько секунд до окончания периода охлаждения будут отправлены клавиши

# установите 0 для отключения

SEND_KEYS_DISMISS_POPUPS_N_SECONDS_BEFORE_COOLDOWN_END=5

## SEND_KEYS_DISMISS_POPUPS_AT_COOLDOWN_END настраивает клавиши, отправляемые для закрытия сообщений и всплывающих окон перед окончанием периода охлаждения

SEND_KEYS_DISMISS_POPUPS_AT_COOLDOWN_END="enter enter enter"

## KEYS_BEFORE_EACH_PIN настраивает клавиши, отправляемые для вызова экрана блокировки. Они отправляются перед каждым PIN-кодом.

# Примеры:

# KEYS_BEFORE_EACH_PIN="ctrl_escape enter"

# KEYS_BEFORE_EACH_PIN="escape space"

KEYS_BEFORE_EACH_PIN="escape enter"

## KEYS_STAY_AWAKE_DURING_COOLDOWN — клавиши, отправляемые в период охлаждения, чтобы телефон оставался в активном состоянии

KEYS_STAY_AWAKE_DURING_COOLDOWN="enter"

## SEND_KEYS_STAY_AWAKE_DURING_COOLDOWN_EVERY_N_SECONDS — как часто отправляются клавиши, в секундах

SEND_KEYS_STAY_AWAKE_DURING_COOLDOWN_EVERY_N_SECONDS=5

## DELAY_BEFORE_STARTING — период времени в секундах, ожидаемый перед началом брутфорса

DELAY_BEFORE_STARTING=2

## KEYS_BEFORE_STARTING настраивает клавиши, отправляемые перед началом брутфорса

KEYS_BEFORE_STARTING="enter"```

### Popups

We send keys before the end of the cooldown period, or optionally during the cooldown period. This is to keep the lockscreen app active and to dismiss any popups about the number of incorrect PIN attempts or a low battery warning.

## Test sending keys from the NetHunter phone

### Test sending keys from the terminal

Use ssh from your laptop to the NetHunter phone, and use this command to test sending keys:

In this example, the enter key is sent.

`echo "enter" | /system/xbin/hid-keyboard /dev/hidg0 keyboard`

In this example, ctrl-escape is sent.

`echo "left-ctrl escape" | /system/xbin/hid-keyboard /dev/hidg0 keyboard`

Note: Sending combinations of keys in `config` file variables is different. Currently only `ctrl_escape` is supported.

In this example, keys a, b, c are sent.

`echo a b c | /system/xbin/hid-keyboard /dev/hidg0 keyboard`

### Test sending keys from an app

This Android app is a virtual USB Keyboard that you can use to test sending keys.

https://store.nethunter.com/en/packages/remote.hid.keyboard.client/

### How to send special keys

Use this list for the following variables:

  * KEYS_BEFORE_EACH_PIN
  * KEYS_STAY_AWAKE_DURING_COOLDOWN
  * KEYS_BEFORE_STARTING



To send special keys use the following labels. This list can be found in the hid_gadget_test source code.

To send more than one key at the same time, use the following list:

  * ctrl_escape (This sends left-ctrl and escape)



If you need more key combinations please open a new issue in the GitHub issues list.

### Customising the Progressive Cooldown

The following section of the `config` file controls the progressive cooldown.

root@kitploit:~
    
    
    ## Переменные PROGRESSIVE_COOLDOWN_ARRAY действуют как многомерный массив для настройки прогрессивной задержки
    ## PROGRESSIVE_ARRAY_ATTEMPT_COUNT__________ — номер попытки
    ## PROGRESSIVE_ARRAY_ATTEMPTS_UNTIL_COOLDOWN — количество попыток до начала задержки
    ## PROGRESSIVE_ARRAY_COOLDOWN_IN_SECONDS____ — задержка в секундах
    
    PROGRESSIVE_ARRAY_ATTEMPT_COUNT__________=(1  11 41)
    PROGRESSIVE_ARRAY_ATTEMPTS_UNTIL_COOLDOWN=(5   1  1)
    PROGRESSIVE_ARRAY_COOLDOWN_IN_SECONDS____=(30 30 60)```
    
    The array is the same as this table.
    
    | attempt number   | attempts until cooldown  | cooldown   |
    | ---------------- | ------------------------ | ---------- |
    | 1                | 5                        | 30         |
    | 11               | 1                        | 30         |
    | 41               | 1                        | 60         |
    
    
    ### Why can't you use a laptop, or is a Windows or Linux version coming soon?
    
    This script works by emulating USB Human Interface Devices (HID), in this case it is keyboard and mouse input. Laptops have uni-directional USB ports and an Android mobile device/ phone has a bi-directional USB port. A bi-directional port is required to emulate a keyboard.
    
    This might change in the future as USB-C is supposed to be uni-directional.
    
    ### How Android emulates a keyboard
    
    Keys are sent using `/system/xbin/hid-keyboard`. To test this and send the key 1 you can use `echo 1 | /system/xbin/hid-keyboard dev/hidg0 keyboard`
    
    In Kali Nethunter, `/system/xbin/hid-keyboard` is a compiled copy of `hid_gadget_test.c`. This is a small program for testing the HID gadget driver that is included in the Linux Kernel. The source code for this file can be found at https://www.kernel.org/doc/html/latest/usb/gadget_hid.html and https://github.com/aagallag/hid_gadget_test.
    
    ## 🔧 Troubleshooting
    
    ### If it is not bruteforcing PINs
    
    #### Check the orientation of the cables
    
    The Nethunter phone should have a regular USB cable attached, while the locked phone should have an OTG adaptor attached.
    
    The OTG cable should be connected to the locked Android phone. The regular USB cable should be connected to the Nethunter phone.
    
    Refer to the graphic on how to connect the phones.
    
    #### Check it is emulating a keyboard
    
    You can verify that the NetHunter phone is succesfully emulating a keyboard by connecting it to a computer using a regular charging/data USB cable. Open a text editor like Notepad while it is cracking and you should see it entering PIN numbers into the text editor.
    
    Note that you will not need an OTG cable for this. 
    
    #### Try restarting the phones
    
    Try powering off the phones and even taking out the batteries if that is possible.
    
    #### Try new cables
    
    Try using new cables/adaptors as you may have a faulty cable/adaptor.
    
    ### If it doesn't unlock the phone with a correct PIN
    
    You might be sending keys too fast for the phone to process. Increase the DELAY_BETWEEN_KEYS variable in the config file.
    💡 If you don't see 4 dots come up on the phone's screen then maybe it is not receiving 4 keys.
    
    ### 🔋 Managing Power Consumption
    
    If your phone runs out of power too soon, follow these steps:
    
    - Make sure both phones are fully charged to 100% before you begin
    - Reduce the screen brightness on both the victim phone and NetHunter phone if possible
    - Place both phones into Airplane mode, however you may want to enable WiFi to access the NetHunter phone via SSH.
    - The locked phone will power the NetHunter phone, because it appears as a keyboard accessory
    - Use a USB OTG cable with a Y splitter for an external power supply, to allow charging of the NetHunter phone while cracking
    - Take breaks to charge your devices. Pause the script with CTRL-Z and resume with the `fg` shell command.
    - Avoid the SEND_KEYS_STAY_AWAKE_DURING_COOLDOWN_EVERY_N_SECONDS configuration option. This will cause the locked phone to use more battery to keep the screen powered. Instead use the SEND_KEYS_DISMISS_POPUPS_N_SECONDS_BEFORE_COOLDOWN_END option (Default).
    
    ### Check the Diagnostics Report
    
    Use the command `diag` display diagnostic information.
    
    ```bash ./android-pin-bruteforce diag```
    Если вы получили это сообщение при подключённом USB-кабеле, попробуйте извлечь аккумулятор из заблокированного Android-устройства и выполнить его перезагрузку.```[FAIL] HID USB device not ready. Return code from /system/xbin/hid-keyboard was 5.```
    
    ### How the usb-devices command works
    
    The diagnostics command uses the `usb-devices` script but it is only necessary as part of determining whether the USB cables are incorrectly connected. This can be downloaded from
    https://github.com/gregkh/usbutils/blob/master/usb-devices
    
    ### Use verbose output
    
    Use the `--verbose` option to check the configuration is as expected. This is especially useful when you are modifying the configuration.
    
    ### Use the dry-run
    
    Use the `--dry-run` option to check how it operates without sending any keys to a device. This is especially useful when you are modifying the configuration or during development.
    
    Dry run will:
    
    - Not send any keys
    - Will continue instead of aborting if the `KEYBOARD_DEVICE` or `HID_KEYBOARD` is missing.
    
    ### HID USB Mode
    
    Try this command in a shell on the NetHunter phone:
    ```/system/bin/setprop sys.usb.config hid```
    ## 💣 Известные проблемы
    
    - Этот метод не может определить, когда угадан правильный PIN-код и телефон разблокируется.
    - Телефоны могут разрядиться 🔋 до того, как будет найден правильный PIN-код.
    - Не доверяйте файлам конфигурации телефона из неизвестных источников без предварительной проверки. Файлы конфигурации являются shell-скриптами и могут содержать вредоносные команды.
    
    ## 🚀 План развития
    
    - [ГОТОВО] Работает
    - [ГОТОВО] Обнаруживает сбои USB HID
    - [ГОТОВО] Улучшение использования и параметров командной строки/файлов конфигурации
    - [ГОТОВО] Добавлен перебор для n-значных PIN-кодов
    - [ГОТОВО] Маска для известных цифр
    - [ГОТОВО] Перебор списка PIN-кодов в обратном порядке (чтобы узнать, какой недавний PIN-код разблокировал устройство)
    - [ГОТОВО] Реализована настраиваемая подсказка на экране блокировки
    - [ГОТОВО] Реализовано изменение времени ожидания после 10 попыток
    - [В РАБОТЕ] Найти/протестировать больше устройств для перебора
    - Добавить индикатор выполнения
    - Добавить ETA
    - ASCII-арт
    - Более приятный GUI для NetHunter
    - Реализовать для iPhone
    - Определять, когда телефон разблокирован (использовать камеру Nethunter как датчик?)
    - Взлом Android-паттернов (сначала пробовать распространенные паттерны)
    
    ## 🙋 Вклад
    
    Pull request'ы приветствуются. Для серьезных изменений, пожалуйста, сначала откройте issue, чтобы обсудить, что вы хотели бы изменить.
    
    Пожалуйста, обновляйте тесты по мере необходимости.
    
    ## 😎 Авторы и благодарности
    
    Разработано Эндрю Хортоном (@urbanadventurer).
    
    👏 Следующие люди были очень полезны:
    
    - Влад Филатов (@v1adf): Тестирование многих телефонов для Базы данных телефонов Wiki
    
    ### Мотивация
    
    Моя первоначальная мотивация для разработки этого проекта заключалась в разблокировке телефона Samsung S5 на Android. Он принадлежал человеку, который ушел из жизни, и его семье нужен был доступ к данным на нем. Поскольку у меня не было USB Rubber Ducky или другого оборудования под рукой, я попробовал различные методы и в итоге понял, что нужно разработать что-то новое.
    
    ### Благодарность за список PIN-кодов
    
    Оптимизированный список PIN-кодов взят у Джастина Энглера (@justinengler) и Пола Вайнса из Senior Security Engineer, iSEC Partners
    и использовался в их докладе на Defcon, [Electromechanical PIN Cracking with Robotic Reconfigurable Button Basher (and C3BO).](https://www.defcon.org/html/defcon-21/dc-21-speakers.html#Engler).
    
    ### Графика
    
    Разработано Эндрю Хортоном с благодарностью за использование этих бесплатных векторных наборов:
    
    - [USB Ports Isometric Free Vector by VisionHeldup](https://www.vecteezy.com/vector-art/159576-usb-ports-isometric-free-vector)
    - [HDMI and USB Vector Set by Mary Winkler](https://www.vecteezy.com/vector-art/107006-hdmi-and-usb-vector-set)
    - [Isometric Data Security Illustration by Rizal.Medanguide](https://www.vecteezy.com/vector-art/661831-isometric-data-security-illustration)
    - Логотип Kali NetHunter
    
    ## 🗿 Сравнение с другими проектами и методами разблокировки заблокированного Android-телефона
    
    ### Что делает этот проект уникальным?
    
    Меня спрашивали, что делает этот проект уникальным, учитывая другие проекты по взлому PIN-кодов Android с открытым исходным кодом.
    
    Android-PIN-Bruteforce уникален тем, что он взламывает PIN-код на Android-телефонах с помощью телефона NetHunter и не требует предварительного взлома заблокированного телефона.
    
    Он работает:
    - Без необходимости покупки специального оборудования, такого как Rubber Ducky, Celebrite или XPIN Clip.
    - Без ADB или root-доступа (телефон не должен быть предварительно взломан).
    
    | Проект                                               | ADB/USB Debugging | Требуется root | Требуется оборудование $ | Коммерческий |
    |-------------------------------------------------------|-------------------|----------------|--------------------------|--------------| 
    | ⭐ Android-PIN-Bruteforce                             | Нет               | Нет            | Телефон Nethunter        | Нет          | 
    | github.com/PentesterES/AndroidPINCrack                | Да                | Да             | Нет                      | Нет          |
    | github.com/ByteRockstar1996/Cracking-Android-Pin-Lock | Да                | Да             | Нет                      | Нет          |
    | github.com/sch3m4/androidpatternlock                  | Да                | Да             | Нет                      | Нет          |
    | github.com/georgenicolaou/androidlockcracker          | Да                | Да             | Нет                      | Нет          |
    | github.com/MGF15/P-Decode                             | Да                | Да             | Нет                      | Нет          |
    | github.com/BitesFor/ABL                               | Да                | Да             | Нет                      | Нет          |
    | github.com/wuseman/WBRUTER                            | Да                | Нет            | Нет                      | Нет          |
    | github.com/Gh005t/Android-BruteForce                  | Да                | Нет            | Нет                      | Нет          |
    | github.com/mandatoryprogrammer/droidbrute             | Нет               | Нет            | Rubber Ducky $           | Нет          |
    | github.com/hak5darren/USB-Rubber-Ducky                | Нет               | Нет            | Rubber Ducky $           | Да           |
    | github.com/bbrother/stm32f4androidbruteforce          | Нет               | Нет            | Плата STM32F4 $          | Нет          |
    | hdb-team.com/product/hdbox/                           | Нет               | Нет            | HDBOX  $$                | Да           |
    | xpinclip.com                                          | Нет               | Нет            | XPINClip  $$             | Да           |
    | cellebrite.com/en/ufed/                               | Нет               | Нет            | Cellebrite UFED $$$      | Да           |
    
    Некоторые из этих проектов/продуктов действительно замечательны, но они преследуют иные цели, чем Android-PIN-Bruteforce.
    
    Если проект требует файла gestures.key или password.key, я указал, что требуется root.
    Если проект требует кастомного загрузчика, я указал, что требуются как ADB, так и root.
    Если вы хотите, чтобы ваш проект был добавлен в эту таблицу, пожалуйста, откройте новый issue.
    Ссылки на каждый из этих проектов есть в разделе 📚 Связанные проекты и дополнительная литература.
    
    ### 😭 Обычные пользователи телефонов
    
    - Попробуйте 20 самых распространённых PIN-кодов из [анализа PIN-кодов DataGenetics](https://datagenetics.com/blog/september32012/index.html), которые, по-видимому, разблокируют 26,83% телефонов.
    - Используйте приложение для обхода блокировки экрана через SMS (требуется установка приложения до блокировки телефона)
    - Используйте Samsung Find My Mobile (требуется предварительная настройка до блокировки телефона)
    - Вызовите сбой интерфейса блокировки экрана (Android 5.0 и 5.1)
    - Используйте функцию Google "Забыли паттерн", "Забыли PIN" или "Забыли пароль" (Android 4.4 KitKat и более ранние версии)
    - Сброс до заводских настроек (вы потеряете все данные 😭)
    
    ### 🤖 Пользователи, уже установившие кастомную прошивку Android
    
    Если телефон уже рутирован, включена отладка по USB или включен adb.
    
    - Прошейте ZIP-файл `Pattern Password Disable` через кастомное recovery (требуется TWRP, CMW, Xrec и т.д.)
    - Удалите `/data/system/gesture.key` или `password.key` (требуется root и adb на заблокированном устройстве)
    - Взломайте `/data/system/gesture.key` и `password.key` (требуется root и adb на заблокированном устройстве)
    - Обновите базу данных sqlite3 `settings.db` (требуется root и adb на заблокированном устройстве)
    
    ### 🔬 Криминалисты
    
    Эти методы могут быть дорогими и обычно используются только специализированными экспертами по мобильной криминалистике.
    
    В порядке возрастания сложности и стоимости:
    
    - Использование включённой отладки по USB (Oxygen Forensic Suite)
    - Перебор с эмуляцией клавиатуры (⭐ Android-PIN-Bruteforce, атака RubberDucky, XPIN Clip, HBbox)
    - JTAG (подключение к TAP (Test Access Ports) на плате устройства)
    - Внутрисистемное программирование (ISP) (прямое подключение к выводам микросхем флэш-памяти на плате устройства)
    - Чип-офф (выпайка и удаление микросхем флэш-памяти с устройства)
    - Clock Glitching / Voltage Fault Injection (аппаратные атаки на тайминги CPU для обхода ограничений PIN-кода)
    - Эксплойты загрузчика (эксплойты нулевого дня, атакующие загрузчик. GrayKey от Grayshift и Cellebrite)
    
    Методы JTAG, ISP и Chip Off сейчас менее полезны, так как большинство устройств зашифрованы.
    Я не знаю о практических атаках на PIN-коды телефонов с использованием clock glitching; если вы знаете о продукте, использующем этот метод, сообщите мне, чтобы я мог его добавить.
    
    ### 🕵 Специалисты по безопасности и технические пользователи телефонов
    
    Используйте перебор через USB HID клавиатуру с помощью специализированного оборудования.
    
    - RubberDucky и скрипт перебора от Даррена Китченера из Hak5
    - Напишите скрипт для USB Teensy
    - Купите дорогое криминалистическое оборудование
    - Или используйте Android-PIN-Bruteforce с вашим телефоном NetHunter!
    
    Попытки использовать другой замечательный проект Duck Hunter для эмуляции payload RubberDucky для взлома PIN-кода Android не увенчались успехом. Телефон зависал, вероятно, из-за длины payload.
    
    ## 📚 Связанные проекты и дополнительная литература
    
    ### USB HID оборудование без NetHunter
    
    hak5 12x17: Взломайте любой 4-значный PIN-код Android за 16 часов с помощью USB Rubber Ducky 
    https://archive.org/details/hak5_12x17
    
    Hak5: USB Rubber Ducky
    https://shop.hak5.org/products/usb-rubber-ducky-deluxe
    
    USB-Rubber-Ducky Payloads
    https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads
    
    Teensy
    https://www.pjrc.com/teensy/
    
    Перебор PIN-кода Android с помощью платы STM32F4Discovery
    https://github.com/bbrother/stm32f4androidbruteforce
    https://hackaday.com/2013/11/10/brute-forcing-an-android-phone/
    
    Автоматизированная атака перебором на PIN-код EFI Mac (с использованием Teensy)
    https://orvtech.com/atacar-efi-pin-macbook-pro-en.html
    https://hackaday.io/project/2196-efi-bruteforcer
    
    Droidbrute: USB-атака на PIN-код Android с помощью Rubber Ducky, оптимизированная статистически сгенерированным списком слов.
    https://github.com/mandatoryprogrammer/droidbrute
    
    Форум обсуждения эпизода hak5 и перебора 4-значных PIN-кодов Android
    https://forums.hak5.org/topic/28165-payload-android-brute-force-4-digit-pin/
    
    ### Атаки HID клавиатуры NetHunter
    
    Атаки HID клавиатуры NetHunter
    https://www.kali.org/docs/nethunter/nethunter-hid-attacks/
    
    ### Поддержка HID в ядре Linux
    
    Устройства HID (Human Interface Devices)
    https://www.kernel.org/doc/html/latest/hid/index.html#
    
    Драйвер USB HID gadget Linux и программа hid-keyboard
    https://www.kernel.org/doc/html/latest/usb/gadget_hid.html
    https://github.com/aagallag/hid_gadget_test
    
    Скрипт usb-devices
    https://github.com/gregkh/usbutils/blob/master/usb-devices
    
    ### Взлом файлов Android PIN и паттерна
    
    AndroidPINCrack - перебор кода доступа Android по хешу и соли (требуется root на телефоне)
    https://github.com/PentesterES/AndroidPINCrack
    
    Android Pattern Lock Cracker - перебор паттерна Android по SHA1 хешу (требуется root на телефоне)
    https://github.com/sch3m4/androidpatternlock
    
    ### Общие методы восстановления
    
    [Android][Guide]Hacking And Bypassing Android Password/Pattern/Face/PI
    https://forum.xda-developers.com/showthread.php?t=2620456
    
    Android BruteForce с использованием ADB и Shell-скриптов
    https://github.com/Gh005t/Android-BruteForce
    
    ### Криминалистические методы и оборудование
    
    PATCtech Digital Forensics: Getting Past the Android Passcode
    http://patc.com/online/a/Portals/965/Android%20Passcode.pdf
    
    XPIN Clip
    https://xpinclip.com/
    
    HDBox от HDB Team
    https://hdb-team.com/product/hdbox/
    
    Cellebrite UFED
    https://www.cellebrite.com/en/ufed/
    
    GrayKey от Grayshift
    https://www.grayshift.com/graykey/
    
    ### Анализ PIN-кодов
    
    Electromechanical PIN Cracking with Robotic Reconfigurable Button Basher (and C3BO)
    https://www.defcon.org/html/defcon-21/dc-21-speakers.html#Engler
    
    Анализ PIN-кодов DataGenetics https://datagenetics.com/blog/september32012/index.html