这个程序实现起来比较简单,有一点要注意,这个想法只适合比较小的可执行文件:
下面是bin2hexText.py的源码:
#!/usr/bin/python
#encoding: utf-8
import binascii
import sys
if __name__ == "__main__":
if len(sys.argv) != 3:
print "Example: python ", sys.argv[0] , "in.exe", "out.txt"
sys.exit(1)
bin_name = sys.argv[1]
txt_name = sys.argv[2]
fh = open(bin_name, 'rb')
fout = open(txt_name,'w')
info = fh.read()
hexstr = binascii.b2a_hex(info)
fout.write(hexstr)
下面是hexText2bin.py的源码:
#!/usr/bin/python
#encoding: utf-8
import binascii
import sys
if __name__ == "__main__":
if len(sys.argv) != 3:
print "Example: python ", sys.argv[0] , "in.txt", "out.exe"
sys.exit(1)
txt_name = sys.argv[1]
bin_name = sys.argv[2]
fh = open(txt_name, 'r')
fout = open(bin_name,'wb')
info = fh.read()
asciistr = binascii.a2b_hex(info)
fout.write(asciistr)
把可执行文件转成文本使用:python bin2hexText.py 1.exe hello.exe.txt
把文本转成可执行文件使用:python hexText2bin.py hello.exe.txt my.exe
转换后的文件内容如:
4d5a90000300000004000000ffff0000b800000000000000400000000000000000000000000000000000000000000000000000072745f78745f656e645f5f005f5f6c696236345f6c69626d73766372745f615f696e616d65005f5f73656375726974795f636f6f6b696500