mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-17 04:34:44 -07:00
subbrute update
This commit is contained in:
21
applications/plugins/subbrute/LICENSE
Normal file
21
applications/plugins/subbrute/LICENSE
Normal file
@@ -0,0 +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.
|
||||
@@ -1,8 +0,0 @@
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* "THE BEER-WARE LICENSE" (Revision 42):
|
||||
* @G4N4P4T1 wrote this file. As long as you retain this notice you
|
||||
* can do whatever you want with this stuff. If we meet some day, and you think
|
||||
* this stuff is worth it, you can buy me a beer in return.
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -1,4 +1,24 @@
|
||||
# FlipFrid
|
||||
# SubGHz Bruteforcer Plugin for Flipper Zero
|
||||
|
||||
SubGhz Fuzzer
|
||||
select your base message, the field to fuzz and let's get fuzzy !
|
||||
SubGhz Bruteforcer from [Unleashed Firmware](https://github.com/DarkFlippers/unleashed-firmware)
|
||||
|
||||
### Supported Protocols:
|
||||
- CAME 12bit 303MHz
|
||||
- CAME 12bit 307MHz
|
||||
- CAME 12bit 433MHz
|
||||
- CAME 12bit 868MHz
|
||||
- NICE 12bit 433MHz
|
||||
- NICE 12bit 868MHz
|
||||
- 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 10bit 300MHz
|
||||
- Linear 10bit 310MHz
|
||||
- BF Existing dump works for all other static protocols supported by Flipper Zero
|
||||
@@ -4,9 +4,9 @@ App(
|
||||
apptype=FlipperAppType.EXTERNAL,
|
||||
entry_point="subbrute_app",
|
||||
cdefines=["APP_SUB_BRUTE"],
|
||||
requires=["storage", "gui", "dialogs", "subghz"],
|
||||
requires=["gui","dialogs"],
|
||||
stack_size=2 * 1024,
|
||||
order=190,
|
||||
order=11,
|
||||
fap_icon="subbrute_10px.png",
|
||||
fap_category="Tools",
|
||||
)
|
||||
|
||||
@@ -188,8 +188,11 @@ bool subbrute_worker_start(SubBruteWorker* instance) {
|
||||
void subbrute_worker_stop(SubBruteWorker* instance) {
|
||||
furi_assert(instance);
|
||||
|
||||
instance->worker_running = false;
|
||||
if (!instance->worker_running) {
|
||||
return;
|
||||
}
|
||||
|
||||
instance->worker_running = false;
|
||||
furi_thread_join(instance->thread);
|
||||
|
||||
furi_hal_subghz_set_path(FuriHalSubGhzPathIsolate);
|
||||
|
||||
@@ -28,9 +28,8 @@ void subbrute_scene_run_attack_on_exit(void* context) {
|
||||
furi_assert(context);
|
||||
SubBruteState* instance = (SubBruteState*)context;
|
||||
|
||||
subbrute_worker_stop(instance->worker);
|
||||
|
||||
notification_message(instance->notifications, &sequence_blink_stop);
|
||||
subbrute_worker_stop(instance->worker);
|
||||
}
|
||||
|
||||
void subbrute_scene_run_attack_on_enter(void* context) {
|
||||
|
||||
@@ -47,14 +47,9 @@ bool subbrute_scene_save_name_on_event(void* context, SceneManagerEvent event) {
|
||||
if(strcmp(instance->text_store, "")) {
|
||||
furi_string_reset(instance->file_path);
|
||||
furi_string_cat_printf(
|
||||
instance->file_path,
|
||||
"%s/%s%s",
|
||||
SUBBRUTE_PATH,
|
||||
instance->text_store,
|
||||
SUBBRUTE_FILE_EXT);
|
||||
instance->file_path, "%s/%s%s", SUBBRUTE_PATH, instance->text_store, SUBBRUTE_FILE_EXT);
|
||||
|
||||
if(subbrute_device_save_file(
|
||||
instance->device, furi_string_get_cstr(instance->file_path))) {
|
||||
if(subbrute_device_save_file(instance->device, furi_string_get_cstr(instance->file_path))) {
|
||||
scene_manager_next_scene(instance->scene_manager, SubBruteSceneSaveSuccess);
|
||||
success = true;
|
||||
consumed = true;
|
||||
|
||||
@@ -27,16 +27,17 @@ void subbrute_scene_setup_attack_on_enter(void* context) {
|
||||
SubBruteState* instance = (SubBruteState*)context;
|
||||
SubBruteAttackView* view = instance->view_attack;
|
||||
|
||||
notification_message(instance->notifications, &sequence_reset_vibro);
|
||||
|
||||
#ifdef FURI_DEBUG
|
||||
FURI_LOG_D(TAG, "Enter Attack: %d", instance->device->attack);
|
||||
FURI_LOG_D(TAG, "Enter Attack: %s", subbrute_protocol_name(instance->device->attack));
|
||||
#endif
|
||||
|
||||
subbrute_worker_set_callback(
|
||||
instance->worker, subbrute_scene_setup_attack_device_state_changed, context);
|
||||
|
||||
if(subbrute_worker_is_running(instance->worker)) {
|
||||
instance->device->key_index = subbrute_worker_get_step(instance->worker);
|
||||
subbrute_worker_stop(instance->worker);
|
||||
instance->device->key_index = subbrute_worker_get_step(instance->worker);
|
||||
}
|
||||
|
||||
subbrute_attack_view_init_values(
|
||||
@@ -59,6 +60,7 @@ void subbrute_scene_setup_attack_on_exit(void* context) {
|
||||
SubBruteState* instance = (SubBruteState*)context;
|
||||
subbrute_worker_stop(instance->worker);
|
||||
notification_message(instance->notifications, &sequence_blink_stop);
|
||||
notification_message(instance->notifications, &sequence_reset_vibro);
|
||||
}
|
||||
|
||||
bool subbrute_scene_setup_attack_on_event(void* context, SceneManagerEvent event) {
|
||||
|
||||
@@ -102,6 +102,17 @@ const SubBruteProtocol subbrute_protocol_chamberlain_9bit_390 = {
|
||||
.preset = FuriHalSubGhzPresetOok650Async,
|
||||
.file = ChamberlainFileProtocol};
|
||||
|
||||
/**
|
||||
* Chamberlain 9bit 433MHz
|
||||
*/
|
||||
const SubBruteProtocol subbrute_protocol_chamberlain_9bit_433 = {
|
||||
.frequency = 433920000,
|
||||
.bits = 9,
|
||||
.te = 0,
|
||||
.repeat = 3,
|
||||
.preset = FuriHalSubGhzPresetOok650Async,
|
||||
.file = ChamberlainFileProtocol};
|
||||
|
||||
/**
|
||||
* Chamberlain 8bit 300MHz
|
||||
*/
|
||||
@@ -206,6 +217,7 @@ static const char* subbrute_protocol_names[] = {
|
||||
[SubBruteAttackChamberlain9bit300] = "Chamberlain 9bit 300MHz",
|
||||
[SubBruteAttackChamberlain9bit315] = "Chamberlain 9bit 315MHz",
|
||||
[SubBruteAttackChamberlain9bit390] = "Chamberlain 9bit 390MHz",
|
||||
[SubBruteAttackChamberlain9bit433] = "Chamberlain 9bit 433MHz",
|
||||
[SubBruteAttackChamberlain8bit300] = "Chamberlain 8bit 300MHz",
|
||||
[SubBruteAttackChamberlain8bit315] = "Chamberlain 8bit 315MHz",
|
||||
[SubBruteAttackChamberlain8bit390] = "Chamberlain 8bit 390MHz",
|
||||
@@ -238,6 +250,7 @@ const SubBruteProtocol* subbrute_protocol_registry[] = {
|
||||
[SubBruteAttackChamberlain9bit300] = &subbrute_protocol_chamberlain_9bit_300,
|
||||
[SubBruteAttackChamberlain9bit315] = &subbrute_protocol_chamberlain_9bit_315,
|
||||
[SubBruteAttackChamberlain9bit390] = &subbrute_protocol_chamberlain_9bit_390,
|
||||
[SubBruteAttackChamberlain9bit433] = &subbrute_protocol_chamberlain_9bit_433,
|
||||
[SubBruteAttackChamberlain8bit300] = &subbrute_protocol_chamberlain_8bit_300,
|
||||
[SubBruteAttackChamberlain8bit315] = &subbrute_protocol_chamberlain_8bit_315,
|
||||
[SubBruteAttackChamberlain8bit390] = &subbrute_protocol_chamberlain_8bit_390,
|
||||
|
||||
@@ -34,6 +34,7 @@ typedef enum {
|
||||
SubBruteAttackChamberlain9bit300,
|
||||
SubBruteAttackChamberlain9bit315,
|
||||
SubBruteAttackChamberlain9bit390,
|
||||
SubBruteAttackChamberlain9bit433,
|
||||
SubBruteAttackChamberlain8bit300,
|
||||
SubBruteAttackChamberlain8bit315,
|
||||
SubBruteAttackChamberlain8bit390,
|
||||
|
||||
@@ -86,7 +86,7 @@ void subbrute_main_view_draw(Canvas* canvas, SubBruteMainViewModel* model) {
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
canvas_draw_box(canvas, 0, 0, canvas_width(canvas), STATUS_BAR_Y_SHIFT);
|
||||
canvas_invert_color(canvas);
|
||||
canvas_draw_str_aligned(canvas, 64, 3, AlignCenter, AlignTop, "Sub-GHz BruteForcer v3");
|
||||
canvas_draw_str_aligned(canvas, 64, 3, AlignCenter, AlignTop, "Sub-GHz BruteForcer 3.1");
|
||||
canvas_invert_color(canvas);
|
||||
|
||||
if(m->is_select_byte) {
|
||||
|
||||
Reference in New Issue
Block a user