33 lines
786 B
Python
33 lines
786 B
Python
#Copyright (c) 2020, @mcg29_
|
|
|
|
#!/usr/local/bin/python3
|
|
|
|
import os
|
|
import sys
|
|
|
|
if __name__ == "__main__":
|
|
args = sys.argv
|
|
if len(args) < 3:
|
|
print("Usage: kcache.raw kcache.patched")
|
|
sys.exit(0)
|
|
patched = open(args[2], "rb").read()
|
|
original = open(args[1], "rb").read()
|
|
lenP = len(patched)
|
|
lenO = len(original)
|
|
if lenP != lenO:
|
|
print("size does not match, can't compare files! exiting...")
|
|
sys.exit(1)
|
|
diff = []
|
|
for i in range(lenO):
|
|
originalByte = original[i]
|
|
patchedByte = patched[i]
|
|
if originalByte != patchedByte:
|
|
diff.append([hex(i),hex(originalByte), hex(patchedByte)])
|
|
diffFile = open('kc.bpatch', 'w+')
|
|
diffFile.write('#AMFI\n\n')
|
|
for d in diff:
|
|
data = str(d[0]) + " " + (str(d[1])) + " " + (str(d[2]))
|
|
diffFile.write(data+ '\n')
|
|
print(data)
|
|
|