mirror of
https://github.com/UberGuidoZ/Flipper.git
synced 2025-04-08 19:37:16 +00:00
Adding initial files
This commit is contained in:
parent
7772e53bd2
commit
08b1b72548
Binary file not shown.
After Width: | Height: | Size: 146 KiB |
Binary file not shown.
After Width: | Height: | Size: 175 KiB |
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
152
Sub-GHz/Gates/Bruteforcing/SMC5326_UNILARM_PT2260/generate.py
Normal file
152
Sub-GHz/Gates/Bruteforcing/SMC5326_UNILARM_PT2260/generate.py
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
import math
|
||||||
|
import os
|
||||||
|
|
||||||
|
# Refer from https://github.com/tobiabocchi/flipperzero-bruteforce
|
||||||
|
def key_bin_str_to_sub(bin_str):
|
||||||
|
sub = ""
|
||||||
|
line_len = 0 # keep lines under 2500 chars
|
||||||
|
for bit in bin_str:
|
||||||
|
if line_len > 2500:
|
||||||
|
sub += "\nRAW_Data: "
|
||||||
|
line_len = 0
|
||||||
|
sub += transposition_table[bit]
|
||||||
|
line_len += len(transposition_table[bit])
|
||||||
|
sub += stop_bit
|
||||||
|
return sub
|
||||||
|
|
||||||
|
file_header = (
|
||||||
|
"Filetype: Flipper SubGhz RAW File\n"
|
||||||
|
+ "Version: 1\n"
|
||||||
|
+ "Frequency: %s\n"
|
||||||
|
+ "Preset: FuriHalSubGhzPresetOok650Async\n"
|
||||||
|
+ "Protocol: RAW\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
transposition_table = {
|
||||||
|
'0':'150 -650 ',
|
||||||
|
'1':'550 -250 '
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_bit = "150 -5600 "
|
||||||
|
|
||||||
|
total_bits = 25
|
||||||
|
|
||||||
|
# Generate .sub files for Brute force UNILARM
|
||||||
|
# Refer from https://medium.com/csg-govtech/breaking-protocol-d3988fa85eef
|
||||||
|
sub_file = []
|
||||||
|
lut = [0b00, 0b10, 0b11]
|
||||||
|
gate1 = 3 << 7
|
||||||
|
gate2 = 3 << 5
|
||||||
|
for dip in range(3**8):
|
||||||
|
total = 0
|
||||||
|
for j in range(8):
|
||||||
|
total |= lut[dip % 3] << (2 * j)
|
||||||
|
dip //= 3
|
||||||
|
total <<= 9
|
||||||
|
total |= gate1
|
||||||
|
# Play the signal 3 times
|
||||||
|
sub_file.append("RAW_Data: " + key_bin_str_to_sub(bin(total)[2:].zfill(total_bits))*3)
|
||||||
|
|
||||||
|
# Create directory from 6561 to 9
|
||||||
|
n_files = 7
|
||||||
|
splits = [
|
||||||
|
int(pow(3, 8) / _) for _ in [pow(3, _) for _ in range(n_files)]
|
||||||
|
]
|
||||||
|
|
||||||
|
for s in splits:
|
||||||
|
os.makedirs(f"UNILARM_330/{s}", exist_ok=True)
|
||||||
|
os.makedirs(f"UNILARM_433/{s}", exist_ok=True)
|
||||||
|
|
||||||
|
for frequency in ["330000000","433920000"]:
|
||||||
|
i = 1
|
||||||
|
while i != 3**n_files:
|
||||||
|
n = 3**8 // i
|
||||||
|
for j in range(i):
|
||||||
|
open(f"UNILARM_{frequency[:3]}/{n}/{math.floor((j*n)/(n*3))}_{j}.sub",'w').write(file_header%(frequency)+'\n'.join(sub_file[j*n:(j*n)+n]))
|
||||||
|
i*=3
|
||||||
|
|
||||||
|
# Generate .sub files for Brute force SMC5326
|
||||||
|
|
||||||
|
transposition_table = {
|
||||||
|
'0':'300 -900 ',
|
||||||
|
'1':'900 -300 '
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_bit = "900 -7500 "
|
||||||
|
|
||||||
|
sub_file = []
|
||||||
|
lut = [0b00, 0b10, 0b11]
|
||||||
|
gate1 = 0b111010101
|
||||||
|
gate2 = 0b101110101
|
||||||
|
|
||||||
|
|
||||||
|
for dip in range(3**8):
|
||||||
|
total = 0
|
||||||
|
for j in range(8):
|
||||||
|
total |= lut[dip % 3] << (2 * j)
|
||||||
|
dip //= 3
|
||||||
|
total <<= 9
|
||||||
|
total |= gate1
|
||||||
|
# Play the signal 5 times
|
||||||
|
# Change to 3 if want to brute force faster
|
||||||
|
sub_file.append("RAW_Data: " + key_bin_str_to_sub(bin(total)[2:].zfill(total_bits))*5)
|
||||||
|
|
||||||
|
# Create directory from 6561 to 7
|
||||||
|
for s in splits:
|
||||||
|
os.makedirs(f"SMC5326_330/{s}", exist_ok=True)
|
||||||
|
os.makedirs(f"SMC5326_433/{s}", exist_ok=True)
|
||||||
|
|
||||||
|
for frequency in ["330000000","433920000"]:
|
||||||
|
i = 1
|
||||||
|
while i != 3**n_files:
|
||||||
|
n = 3**8 // i
|
||||||
|
for j in range(i):
|
||||||
|
open(f"SMC5326_{frequency[:3]}/{n}/{math.floor((j*n)/(n*3))}_{j}.sub",'w').write(file_header%(frequency)+'\n'.join(sub_file[j*n:(j*n)+n]))
|
||||||
|
i*=3
|
||||||
|
|
||||||
|
# Generate .sub files for Brute force PT2260
|
||||||
|
|
||||||
|
transposition_table = {
|
||||||
|
'0':'300 -850 ',
|
||||||
|
'1':'850 -300 '
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_bit = "300 -8800 "
|
||||||
|
|
||||||
|
total_bits = 24
|
||||||
|
|
||||||
|
sub_file = []
|
||||||
|
# Switch to center is inverted compare to UNILARM and SMC5326
|
||||||
|
lut = [0b00, 0b01, 0b11]
|
||||||
|
# Got four buttons
|
||||||
|
button_open = 0b11
|
||||||
|
button_lock = 0b1100
|
||||||
|
button_stop = 0b110000
|
||||||
|
button_close = 0b11000000
|
||||||
|
|
||||||
|
for dip in range(3**8):
|
||||||
|
total = 0
|
||||||
|
for j in range(8):
|
||||||
|
total |= lut[dip % 3] << (2 * j)
|
||||||
|
dip //= 3
|
||||||
|
total <<= 8
|
||||||
|
total |= button_open
|
||||||
|
# Play the signal 5 times
|
||||||
|
# Change to 3 if want to brute force faster
|
||||||
|
sub_file.append("RAW_Data: " + key_bin_str_to_sub(bin(total)[2:].zfill(total_bits))*5)
|
||||||
|
|
||||||
|
# Create directory from 6561 to 7
|
||||||
|
for s in splits:
|
||||||
|
os.makedirs(f"PT2260_315/{s}", exist_ok=True)
|
||||||
|
os.makedirs(f"PT2260_330/{s}", exist_ok=True)
|
||||||
|
os.makedirs(f"PT2260_390/{s}", exist_ok=True)
|
||||||
|
os.makedirs(f"PT2260_433/{s}", exist_ok=True)
|
||||||
|
|
||||||
|
|
||||||
|
for frequency in ["315000000","330000000","390000000","433920000"]:
|
||||||
|
i = 1
|
||||||
|
while i != 3**n_files:
|
||||||
|
n = 3**8 // i
|
||||||
|
for j in range(i):
|
||||||
|
open(f"PT2260_{frequency[:3]}/{n}/{math.floor((j*n)/(n*3))}_{j}.sub",'w').write(file_header%(frequency)+'\n'.join(sub_file[j*n:(j*n)+n]))
|
||||||
|
i*=3
|
BIN
Sub-GHz/Gates/Bruteforcing/SMC5326_UNILARM_PT2260/protocol.png
Normal file
BIN
Sub-GHz/Gates/Bruteforcing/SMC5326_UNILARM_PT2260/protocol.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
BIN
Sub-GHz/Gates/Bruteforcing/SMC5326_UNILARM_PT2260/smc5326.JPG
Normal file
BIN
Sub-GHz/Gates/Bruteforcing/SMC5326_UNILARM_PT2260/smc5326.JPG
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 MiB |
BIN
Sub-GHz/Gates/Bruteforcing/SMC5326_UNILARM_PT2260/unilarm.JPG
Normal file
BIN
Sub-GHz/Gates/Bruteforcing/SMC5326_UNILARM_PT2260/unilarm.JPG
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 MiB |
Loading…
Reference in New Issue
Block a user