7.23 010Editor.exe的使用

1.Editor目前功能如下:
(1)纯文本编辑
(2)支持DOS与UNIX换行风格
(3)支持多种编码格式,自动探测Utf-8编码(根据文本内容前1K字节),对于非Utf-8编码格式的则以本地编码打开(对于中文Windows系统来说是GBK)
(4)实时统计总字符数和光标选择范围字符数,并在状态栏上显示
(5)将文件拖入窗体即可打开
(6)最近文件列表显示最近打开的5个文件.为保护隐私,关闭程序后列表自动清空
2.PE文件的学习
(1)在Windows下所谓PE文件即Portable Executable,意为可移植的可执行的文件。常见的.EXE、.DLL、.OCX、.SYS、.COM都是PE文件。PE文件有一个共同特点:前两个字节为4D 5A(MZ),*如果一个文件前两个字节不是4D 5A则其肯定不是可执行文件*。
PE文件结构:DOS头+PE头+节表+.data/.rdata/.text。注意:一个exe文件本身是一个PE文件,但是由于包含dll库,所以一个exe文件也是许多PE文件组成的(包含多个dll)一个PE文件。
(2)打开一个PE文件,其头2个字节必为字符串“MZ”,这是Mark Zbikowski的姓名缩写,他是最初的MS-DOS设计者之一。然后是一些在MS-DOS下的一些参数,这些参数是在MS-DOS下运行该程序时要用到的。在这些参数的末尾也就是文件的偏移0x3C(第60字节)处是是一个4字节的PE文件签名的偏移地址。该地址有一个专用名称叫做“E_lfanew”。这个签名是“PE00”(字母“P”和“E”后跟着两个空字节)。紧跟着E_lfanew的是一个MS-DOS程序。那是一个运行于MS-DOS下的合法应用程序。当可执行文件(一般指exe、com文件)运行于MS-DOS下时,这个程序显示“This program cannot be run in DOS mode(此程序不能在DOS模式下运行)”这条消息。用户也可以自己更改该程序,有些还原软件就是这么干的。同时,有些程序既能运行于DOS又能运行于Windows下就是这个原因。
3.习题练习:
(1)kanwenjian.exe
****DOS头
①e_magic:判断一个文件是不是PE文件
②e_lfanew:相对于文件首的偏移量,用于找到PE头;
这里写图片描述
4字节(共4行)的DOS头,第一个成员2个字节是可执行文件的标志信息;最后一个成员4字节是PE头的偏移地址为000000D0h,我们可以根据000000D0h来获取PE头的地址。然后我们发现这个文件没有PE头,所以我们要在这给它加个PE头,这里写图片描述
DOS头和PE头中间的空余位置是一些垃圾值以及编译器填充的一些“is program cannot be run in DOS mode.”或“This program must be run under Win32”等信息
(2)reverseMe
打开后看到
这里写图片描述
……….
这里写图片描述
怎么决定文件是否是jpeg格式?
二进制形式打开文件,文件开始字节为FF D8,文件结束两字节为FF D9。则初步判定文件为jpeg。
解析:我们知道了这是一张jpeg格式的文件,观察得知该文件反了,我们可以写个程序来输出这个图片

myfile=open("reverseMe","rb")#将文件以可读模式打开
filestr=myfile.read()#将文件的内容读入一个新的文件中

newfile=open("Me.jpg","wb")#将图片保存到一个新的文件中
newfile.write(filestr[::-1])

rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42417767/article/details/81227166
今日推荐