文件是向后的,字面意思是

时间:2017-08-20 05:39:08

标签: python reverse elf

我有一个我正在查看的文件。当我在十六进制编辑器中打开它时,开始显示全部00 00,而底部显示64 C4 54 F7。 ELF的魔术字节是7F 45 4C 46,与此相反。我正在使用python尝试将程序翻转回来,但是当我这样做时,我得到F7 54 C4 64而不是所需的7F 45 4C 46.这是我正在使用的代码

import sys

if len(sys.argv) < 2:
    print "Error: one argument is required!"
    exit(-1)

try:
    f1 = open(sys.argv[1], 'r')
except IOError:
    print "Error: the file cannot be opened."
    exit(-1)

# else
lines = []
for line in f1:
    line = line.replace('\n', '')
    reversedLine = line[::-1]
    lines.append(reversedLine)
f1.close()

reversedLines = lines[::-1]
for line in reversedLines:
    print line

end of file

after script

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

l = []
with open(sys.argv[1], 'rb') as f:
    ch = f.read(1)
    while ch != "":
        byte = ord(ch)
        reverse_byte = chr((byte & 15) << 4 | byte >> 4)
        l.insert(0, reverse_byte)
        ch = f.read(1)

with open(sys.argv[1], 'wb') as g:
    for byte in l:
        g.write(byte)