diff --git a/readmem.py b/readmem.py new file mode 100644 index 0000000..f0e676e --- /dev/null +++ b/readmem.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +from __future__ import print_function + +from trezorlib.debuglink import DebugLink +from trezorlib.client import TrezorClient, TrezorDebugClient +from trezorlib.transport_hid import HidTransport +import binascii +import sys + +def main(): + # List all connected TREZORs on USB + devices = HidTransport.enumerate() + + # Check whether we found any + if len(devices) == 0: + print('No TREZOR found') + return + + # Use first connected device + transport = HidTransport(devices[0]) + + # Creates object for manipulating TREZOR + debug_transport = HidTransport(devices[0], **{'debug_link': True}) + client = TrezorClient(transport) + debug = DebugLink(debug_transport) + + mem = debug.memory_read(int(sys.argv[1],16), int(sys.argv[2],16)) + f = open('memory.dat', 'w') + f.write(mem) + f.close() + + client.close() + +if __name__ == '__main__': + main() diff --git a/writemem.py b/writemem.py new file mode 100644 index 0000000..a939312 --- /dev/null +++ b/writemem.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +from __future__ import print_function + +from trezorlib.debuglink import DebugLink +from trezorlib.client import TrezorClient, TrezorDebugClient +from trezorlib.transport_hid import HidTransport +import binascii +import sys + +def main(): + # List all connected TREZORs on USB + devices = HidTransport.enumerate() + + # Check whether we found any + if len(devices) == 0: + print('No TREZOR found') + return + + # Use first connected device + transport = HidTransport(devices[0]) + + # Creates object for manipulating TREZOR + debug_transport = HidTransport(devices[0], **{'debug_link': True}) + client = TrezorClient(transport) + debug = DebugLink(debug_transport) + + mem = debug.memory_write(int(sys.argv[1],16), binascii.unhexlify(sys.argv[2]), flash=True) + client.close() + +if __name__ == '__main__': + main()