28 lines
557 B
Python
28 lines
557 B
Python
import sys
|
|
import base64
|
|
|
|
fd = open(sys.argv[1], 'rb')
|
|
macho = fd.read()
|
|
fd.close()
|
|
|
|
magic_start = "\x4F\xF0\x00\x00"*4
|
|
magic_end = "\x4F\xF0\x01\x00"*4
|
|
|
|
start = macho.find(magic_start) + len(magic_start) + 2
|
|
end = macho.find(magic_end)
|
|
end = (end & 0xfff0) + 0x10
|
|
|
|
print("real len: 0x%x" % (end - start))
|
|
|
|
blob = macho[start:start+0x400]
|
|
print("code start: 0x%x" % start)
|
|
print("code end: 0x%x" % end)
|
|
|
|
fd = open(sys.argv[1] + ".b64", "wb+")
|
|
fd.write(base64.b64encode(blob))
|
|
fd.close()
|
|
|
|
fd = open(sys.argv[1] + ".bin", "wb+")
|
|
fd.write(blob)
|
|
fd.close()
|