Crusader_Decomp/tools/find_bytes.py

27 lines
893 B
Python
Raw Permalink Normal View History

2026-04-12 14:45:08 +02:00
import argparse
def main():
p = argparse.ArgumentParser()
p.add_argument('--file', required=True)
p.add_argument('--byte', required=True, help='byte value in hex (e.g. 0x0c)')
p.add_argument('--base', type=lambda x: int(x,0), default=0x80000000)
p.add_argument('--start', type=lambda x: int(x,0), default=0x80064000)
p.add_argument('--end', type=lambda x: int(x,0), default=0x80064800)
args = p.parse_args()
bval = int(args.byte, 0)
with open(args.file, 'rb') as f:
f.seek(0,2)
size = f.tell()
s = args.start - args.base
e = args.end - args.base
s = max(0, s)
e = min(size, e)
f.seek(s)
data = f.read(e-s)
for i, b in enumerate(data):
if b == bval:
addr = args.base + s + i
print(hex(addr), hex(s+i))
if __name__ == '__main__':
main()