■ ■ ■ ■ ■ ■
flipperzero-bruteforce.py
| skipped 42 lines |
43 | 43 | | bin_str = f"{key:0{self.n_bits}b}" |
44 | 44 | | return self.key_bin_str_to_sub(bin_str) |
45 | 45 | | |
46 | | - | def key_bin_str_to_sub(self, bin_str): |
47 | | - | sub = self.pilot_period |
| 46 | + | def key_bin_str_to_sub(self, bin_str, debruijn=False): |
| 47 | + | if not debruijn: |
| 48 | + | sub = self.pilot_period |
48 | 49 | | line_len = 0 # keep lines under 2500 chars |
49 | 50 | | for bit in bin_str: |
50 | 51 | | if line_len > 2500: |
| skipped 1 lines |
52 | 53 | | line_len = 0 |
53 | 54 | | sub += self.transposition_table[bit] |
54 | 55 | | line_len += len(self.transposition_table[bit]) |
55 | | - | sub += self.stop_bit |
| 56 | + | if not debruijn: |
| 57 | + | sub += self.stop_bit |
56 | 58 | | return sub |
57 | 59 | | |
58 | 60 | | def de_bruijn(self): |
| skipped 3 lines |
62 | 64 | | """ |
63 | 65 | | alphabet = "01" |
64 | 66 | | k = 2 |
65 | | - | a = [0] * k * self.n_bits |
| 67 | + | a = [0] * k * (self.n_bits if self.pilot_period is None else self.n_bits + 1) |
66 | 68 | | sequence = [] |
67 | 69 | | |
68 | 70 | | def db(t, p): |
| skipped 61 lines |
130 | 132 | | "Linear-10bit", |
131 | 133 | | 10, |
132 | 134 | | {"0": "500 -1500 ", "1": "1500 -500 "}, |
133 | | - | stop_bit="-21500 ", |
| 135 | + | stop_bit="1 -21500 ", |
134 | 136 | | frequency=300000000, |
135 | 137 | | ), |
136 | 138 | | Protocol("CAME-12bit", 12, {"0": "-250 500 ", "1": "-500 250 "}, "-9000 250 "), |
| skipped 8 lines |