#!/usr/bin/env python """ # Copyright (C) 2008 Michael Buesch # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3 # as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ import sys from libb43 import * if len(sys.argv) != 3 and len(sys.argv) != 2: print "Usage: %s INPUT_FILE [OUTPUT_FILE]" % sys.argv[0] sys.exit(1) infile = sys.argv[1] outfile = None if len(sys.argv) == 3: outfile = sys.argv[2] try: asm = Disassembler(file(infile).read(), "").getAsm() p = TextPatcher(asm, "c053515533b60977d212fbcfa4fc2546") # TODO adjust the MD5SUM # TODO # Use p.addText() and p.delLine() for modifying the code if outfile: bin = Assembler(p.getText(), "--psize").getBinary() file(outfile, "w").write(bin) else: sys.stdout.write(p.getText()) except B43Exception: print "Could not patch. Do you use the correct input file?" sys.exit(1)