Parche Binario¶
Los parches binarios se utilizan para parchear archivos o programas en el dispositivo. Utiliza comodines hexadecimales para buscar y reemplazar, soportando comodines para los nibbles alto y bajo. Por ejemplo, ?? representa cualquier byte, B? representa cualquier byte que comience con B, como BA, B1, B9. Así, el comodín 49 BA ?? ?C coincidirá con cualquier segmento en el archivo que se corresponda con 49 BA .. .C. La siguiente llamada reemplazará todos los bytes AA BB CC D[0-9A-F] en test.bin por AA BB CC DD, y la interfaz devolverá el número de reemplazos y sus desplazamientos (offsets).
d.hex_patch("AA BB CC D?", "AA BB CC DD", "/data/test.bin")
>>> result = d.hex_patch("AA BB CC D?", "AA BB CC DD", "/data/test.bin")
>>> print (result.count)
1
>>> print (result.replaces[0].offset)
8123
Nota
Para limitar el número máximo de reemplazos, utilice el parámetro maxreplace. Por defecto, se reemplazan todas las coincidencias.
d.hex_patch("AA BB CC D?", "AA BB CC DD", "/data/test.bin", maxreplace=2)
También hay un modo de prueba, que solo buscará las ubicaciones coincidentes en el archivo sin realizar ninguna operación de reemplazo.
d.hex_patch("AA BB ?? ??", "AA BB 00 00", "/data/test.bin", dryrun=True)
Sugerencia