-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Ability to set time delay between group of repeated signals (by @gid9798) - Ability to set repeats up to x14 (was x9 max)
- Loading branch information
Showing
32 changed files
with
4,226 additions
and
4,111 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,3 @@ | ||
/.idea/.idea.subbrute.dir/.idea/workspace.xml | ||
|
||
.DS_Store |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2022 Der Skythe | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. | ||
MIT License | ||
Copyright (c) 2022 Der Skythe | ||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,76 +1,76 @@ | ||
# SubGHz Bruteforcer Plugin for Flipper Zero | ||
|
||
SubGhz Bruteforcer from [Unleashed Firmware](https://github.com/DarkFlippers/unleashed-firmware) | ||
|
||
### Disclaimer | ||
|
||
This software is for experimental purposes only and is not meant for any illegal activity/purposes. | ||
We do not condone illegal activity and strongly encourage keeping transmissions to legal/valid uses allowed by law. | ||
|
||
### Supported Protocols: | ||
|
||
#### CAME | ||
|
||
- CAME 12bit 303MHz | ||
- CAME 12bit 307MHz | ||
- CAME 12bit 315MHz | ||
- CAME 12bit 433MHz | ||
- CAME 12bit 868MHz | ||
|
||
#### NICE | ||
|
||
- NICE 12bit 433MHz | ||
- NICE 12bit 868MHz | ||
|
||
#### Ansonic | ||
|
||
- Ansonic 12bit 433.075MHz | ||
- Ansonic 12bit 433.920MHz | ||
- Ansonic 12bit 434.075MHz | ||
|
||
#### Holtek | ||
|
||
- Holtek HT12X 12bit FM 433.920MHz (TE: 204us) | ||
- Holtek HT12X 12bit AM 433.920MHz (TE: 433us) | ||
- Holtek HT12X 12bit AM 315MHz (TE: 433us) | ||
- Holtek HT12X 12bit AM 868MHz (TE: 433us) | ||
- Holtek HT12X 12bit AM 915MHz (TE: 433us) | ||
#### Chamberlain | ||
|
||
- Chamberlain 9bit 300MHz | ||
- Chamberlain 9bit 315MHz | ||
- Chamberlain 9bit 390MHz | ||
- Chamberlain 9bit 433MHz | ||
- Chamberlain 8bit 300MHz | ||
- Chamberlain 8bit 315MHz | ||
- Chamberlain 8bit 390MHz | ||
- Chamberlain 7bit 300MHz | ||
- Chamberlain 7bit 315MHz | ||
- Chamberlain 7bit 390MHz | ||
|
||
#### Linear | ||
|
||
- Linear 10bit 300MHz | ||
- Linear 10bit 310MHz | ||
- Linear Delta 3 8bit 310MHz | ||
|
||
#### UNILARM | ||
|
||
- UNILARM 25bit 330MHz (TE: 209us) (only dip switch combinations, not full 25bit bruteforce) | ||
- UNILARM 25bit 433MHz (TE: 209us) (only dip switch combinations, not full 25bit bruteforce) | ||
|
||
#### SMC5326 | ||
|
||
- SMC5326 25bit 330MHz (TE: 320us) (only dip switch combinations, not full 25bit bruteforce) | ||
- SMC5326 25bit 433MHz (TE: 320us) (only dip switch combinations, not full 25bit bruteforce) | ||
|
||
#### PT2260 | ||
|
||
- PT2260 24bit 315MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce) | ||
- PT2260 24bit 330MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce) | ||
- PT2260 24bit 390MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce) | ||
- PT2260 24bit 433MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce) | ||
|
||
#### Additional | ||
|
||
- BF Existing dump works for most other static protocols supported by Flipper Zero | ||
# SubGHz Bruteforcer Plugin for Flipper Zero | ||
|
||
SubGhz Bruteforcer from [Unleashed Firmware](https://github.com/DarkFlippers/unleashed-firmware) | ||
|
||
### Disclaimer | ||
|
||
This software is for experimental purposes only and is not meant for any illegal activity/purposes. | ||
We do not condone illegal activity and strongly encourage keeping transmissions to legal/valid uses allowed by law. | ||
|
||
### Supported Protocols: | ||
|
||
#### CAME | ||
|
||
- CAME 12bit 303MHz | ||
- CAME 12bit 307MHz | ||
- CAME 12bit 315MHz | ||
- CAME 12bit 433MHz | ||
- CAME 12bit 868MHz | ||
|
||
#### NICE | ||
|
||
- NICE 12bit 433MHz | ||
- NICE 12bit 868MHz | ||
|
||
#### Ansonic | ||
|
||
- Ansonic 12bit 433.075MHz | ||
- Ansonic 12bit 433.920MHz | ||
- Ansonic 12bit 434.075MHz | ||
|
||
#### Holtek | ||
|
||
- Holtek HT12X 12bit FM 433.920MHz (TE: 204us) | ||
- Holtek HT12X 12bit AM 433.920MHz (TE: 433us) | ||
- Holtek HT12X 12bit AM 315MHz (TE: 433us) | ||
- Holtek HT12X 12bit AM 868MHz (TE: 433us) | ||
- Holtek HT12X 12bit AM 915MHz (TE: 433us) | ||
#### Chamberlain | ||
|
||
- Chamberlain 9bit 300MHz | ||
- Chamberlain 9bit 315MHz | ||
- Chamberlain 9bit 390MHz | ||
- Chamberlain 9bit 433MHz | ||
- Chamberlain 8bit 300MHz | ||
- Chamberlain 8bit 315MHz | ||
- Chamberlain 8bit 390MHz | ||
- Chamberlain 7bit 300MHz | ||
- Chamberlain 7bit 315MHz | ||
- Chamberlain 7bit 390MHz | ||
|
||
#### Linear | ||
|
||
- Linear 10bit 300MHz | ||
- Linear 10bit 310MHz | ||
- Linear Delta 3 8bit 310MHz | ||
|
||
#### UNILARM | ||
|
||
- UNILARM 25bit 330MHz (TE: 209us) (only dip switch combinations, not full 25bit bruteforce) | ||
- UNILARM 25bit 433MHz (TE: 209us) (only dip switch combinations, not full 25bit bruteforce) | ||
|
||
#### SMC5326 | ||
|
||
- SMC5326 25bit 330MHz (TE: 320us) (only dip switch combinations, not full 25bit bruteforce) | ||
- SMC5326 25bit 433MHz (TE: 320us) (only dip switch combinations, not full 25bit bruteforce) | ||
|
||
#### PT2260 | ||
|
||
- PT2260 24bit 315MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce) | ||
- PT2260 24bit 330MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce) | ||
- PT2260 24bit 390MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce) | ||
- PT2260 24bit 433MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce) | ||
|
||
#### Additional | ||
|
||
- BF Existing dump works for most other static protocols supported by Flipper Zero |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,12 @@ | ||
App( | ||
appid="subghz_bruteforcer", | ||
name="Sub-GHz Bruteforcer", | ||
apptype=FlipperAppType.EXTERNAL, | ||
entry_point="subbrute_app", | ||
requires=["gui","dialogs"], | ||
stack_size=2 * 1024, | ||
order=11, | ||
fap_icon="images/subbrute_10px.png", | ||
fap_category="Sub-GHz", | ||
fap_icon_assets="images", | ||
) | ||
App( | ||
appid="subghz_bruteforcer", | ||
name="Sub-GHz Bruteforcer", | ||
apptype=FlipperAppType.EXTERNAL, | ||
entry_point="subbrute_app", | ||
requires=["gui","dialogs"], | ||
stack_size=2 * 1024, | ||
order=11, | ||
fap_icon="images/subbrute_10px.png", | ||
fap_category="Sub-GHz", | ||
fap_icon_assets="images", | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,59 +1,59 @@ | ||
#include "gui_top_buttons.h" | ||
|
||
void elements_button_top_left(Canvas* canvas, const char* str) { | ||
const Icon* icon = &I_ButtonUp_7x4; | ||
|
||
const uint8_t button_height = 12; | ||
const uint8_t vertical_offset = 3; | ||
const uint8_t horizontal_offset = 3; | ||
const uint8_t string_width = canvas_string_width(canvas, str); | ||
const uint8_t icon_h_offset = 3; | ||
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset; | ||
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset; | ||
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset; | ||
|
||
const uint8_t x = 0; | ||
const uint8_t y = 0 + button_height; | ||
|
||
uint8_t line_x = x + button_width; | ||
uint8_t line_y = y - button_height; | ||
canvas_draw_box(canvas, x, line_y, button_width, button_height); | ||
canvas_draw_line(canvas, line_x + 0, line_y, line_x + 0, y - 1); | ||
canvas_draw_line(canvas, line_x + 1, line_y, line_x + 1, y - 2); | ||
canvas_draw_line(canvas, line_x + 2, line_y, line_x + 2, y - 3); | ||
|
||
canvas_invert_color(canvas); | ||
canvas_draw_icon(canvas, x + horizontal_offset, y - icon_v_offset, icon); | ||
canvas_draw_str( | ||
canvas, x + horizontal_offset + icon_width_with_offset, y - vertical_offset, str); | ||
canvas_invert_color(canvas); | ||
} | ||
|
||
void elements_button_top_right(Canvas* canvas, const char* str) { | ||
const Icon* icon = &I_ButtonDown_7x4; | ||
|
||
const uint8_t button_height = 12; | ||
const uint8_t vertical_offset = 3; | ||
const uint8_t horizontal_offset = 3; | ||
const uint8_t string_width = canvas_string_width(canvas, str); | ||
const uint8_t icon_h_offset = 3; | ||
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset; | ||
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset + 1; | ||
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset; | ||
|
||
const uint8_t x = canvas_width(canvas); | ||
const uint8_t y = 0 + button_height; | ||
|
||
uint8_t line_x = x - button_width; | ||
uint8_t line_y = y - button_height; | ||
canvas_draw_box(canvas, line_x, line_y, button_width, button_height); | ||
canvas_draw_line(canvas, line_x - 1, line_y, line_x - 1, y - 1); | ||
canvas_draw_line(canvas, line_x - 2, line_y, line_x - 2, y - 2); | ||
canvas_draw_line(canvas, line_x - 3, line_y, line_x - 3, y - 3); | ||
|
||
canvas_invert_color(canvas); | ||
canvas_draw_str(canvas, x - button_width + horizontal_offset, y - vertical_offset, str); | ||
canvas_draw_icon( | ||
canvas, x - horizontal_offset - icon_get_width(icon), y - icon_v_offset, icon); | ||
canvas_invert_color(canvas); | ||
#include "gui_top_buttons.h" | ||
|
||
void elements_button_top_left(Canvas* canvas, const char* str) { | ||
const Icon* icon = &I_ButtonUp_7x4; | ||
|
||
const uint8_t button_height = 12; | ||
const uint8_t vertical_offset = 3; | ||
const uint8_t horizontal_offset = 3; | ||
const uint8_t string_width = canvas_string_width(canvas, str); | ||
const uint8_t icon_h_offset = 3; | ||
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset; | ||
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset; | ||
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset; | ||
|
||
const uint8_t x = 0; | ||
const uint8_t y = 0 + button_height; | ||
|
||
uint8_t line_x = x + button_width; | ||
uint8_t line_y = y - button_height; | ||
canvas_draw_box(canvas, x, line_y, button_width, button_height); | ||
canvas_draw_line(canvas, line_x + 0, line_y, line_x + 0, y - 1); | ||
canvas_draw_line(canvas, line_x + 1, line_y, line_x + 1, y - 2); | ||
canvas_draw_line(canvas, line_x + 2, line_y, line_x + 2, y - 3); | ||
|
||
canvas_invert_color(canvas); | ||
canvas_draw_icon(canvas, x + horizontal_offset, y - icon_v_offset, icon); | ||
canvas_draw_str( | ||
canvas, x + horizontal_offset + icon_width_with_offset, y - vertical_offset, str); | ||
canvas_invert_color(canvas); | ||
} | ||
|
||
void elements_button_top_right(Canvas* canvas, const char* str) { | ||
const Icon* icon = &I_ButtonDown_7x4; | ||
|
||
const uint8_t button_height = 12; | ||
const uint8_t vertical_offset = 3; | ||
const uint8_t horizontal_offset = 3; | ||
const uint8_t string_width = canvas_string_width(canvas, str); | ||
const uint8_t icon_h_offset = 3; | ||
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset; | ||
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset + 1; | ||
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset; | ||
|
||
const uint8_t x = canvas_width(canvas); | ||
const uint8_t y = 0 + button_height; | ||
|
||
uint8_t line_x = x - button_width; | ||
uint8_t line_y = y - button_height; | ||
canvas_draw_box(canvas, line_x, line_y, button_width, button_height); | ||
canvas_draw_line(canvas, line_x - 1, line_y, line_x - 1, y - 1); | ||
canvas_draw_line(canvas, line_x - 2, line_y, line_x - 2, y - 2); | ||
canvas_draw_line(canvas, line_x - 3, line_y, line_x - 3, y - 3); | ||
|
||
canvas_invert_color(canvas); | ||
canvas_draw_str(canvas, x - button_width + horizontal_offset, y - vertical_offset, str); | ||
canvas_draw_icon( | ||
canvas, x - horizontal_offset - icon_get_width(icon), y - icon_v_offset, icon); | ||
canvas_invert_color(canvas); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,21 @@ | ||
#pragma once | ||
|
||
#include <input/input.h> | ||
#include <gui/elements.h> | ||
#include <gui/icon.h> | ||
#include <gui/icon_animation.h> | ||
#include <assets_icons.h> | ||
|
||
/** | ||
* Thanks to the author of metronome | ||
* @param canvas | ||
* @param str | ||
*/ | ||
void elements_button_top_left(Canvas* canvas, const char* str); | ||
|
||
/** | ||
* Thanks to the author of metronome | ||
* @param canvas | ||
* @param str | ||
*/ | ||
#pragma once | ||
|
||
#include <input/input.h> | ||
#include <gui/elements.h> | ||
#include <gui/icon.h> | ||
#include <gui/icon_animation.h> | ||
#include <assets_icons.h> | ||
|
||
/** | ||
* Thanks to the author of metronome | ||
* @param canvas | ||
* @param str | ||
*/ | ||
void elements_button_top_left(Canvas* canvas, const char* str); | ||
|
||
/** | ||
* Thanks to the author of metronome | ||
* @param canvas | ||
* @param str | ||
*/ | ||
void elements_button_top_right(Canvas* canvas, const char* str); |
Oops, something went wrong.
d024183
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank for adding the time delay! For me, it's critical to getting the brute forcer to work on my linear 10bit garage door. I need to set it at ~200, up from the default of 6. I switched to another firmware, Xtreme, and it was still using your v3.5 without the delay and I had no success. (but I copied the v3.6 binary over and it works fine).
My one request is to make it easier to increase the delay to large values, since they seem necessary for it to work for me. Maybe even values beyond 255. But beggars can't be choosers of course. Thank you so much for this!