├── FirmwareUpdate.bin ├── README.md ├── FirmwareParser.py └── FirmwarePatch.py /FirmwareUpdate.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/b0n0n/MS-fitnessband-jailbreak/HEAD/FirmwareUpdate.bin -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MS-fitnessband-jailbreak 2 | simple scripts to parse and patch Microsoft fitness band firmware update file 3 | [Blog post](https://garden.sparrow.zone/Jailbreaking+the+Microsoft+fitness+band) 4 | -------------------------------------------------------------------------------- /FirmwareParser.py: -------------------------------------------------------------------------------- 1 | from struct import pack, unpack 2 | 3 | def ParseAll(msfile): 4 | data = open(msfile, "r+").read() 5 | offset = 0 6 | magic, = unpack(" 0: 148 | print "[+]Found string %s at %s" % (repr(string), hex(index)) 149 | data = data[:index] + patch_string + data[index+length:] 150 | print "[+]Patched with '%s'" % repr(patch_string) 151 | index = data.find(string) 152 | return data 153 | 154 | 155 | def Patch(filename): 156 | 157 | f = open(filename, 'r+') 158 | Patched = f.read() 159 | 160 | Patched = VersionNumPatch(Patched, "10.6.3304") 161 | 162 | text1 = TextPad("No new texts, check back in a few.") #patch the empty text string for test 163 | text2 = TextPad("pwned by ------------- mongo&b0n0n") 164 | Patched = SearchPatch(Patched, text1, text2) 165 | 166 | Patched = CalSectCrc(Patched) # recalculate the section CRCs 167 | Patched = CalMainCrc(Patched) # recalculate the main CRC 168 | 169 | with open('FirmwareUpdate.Patch', 'w+') as f: 170 | f.write(Patched) 171 | 172 | Patch("FirmwareUpdate.bin") 173 | # ChkMainCrc("FirmwareUpdate.Patch") 174 | # ChkSectCrc("FirmwareUpdate.Patch") 175 | 176 | 177 | --------------------------------------------------------------------------------