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:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

7.23 010Editor.exe的使用相关推荐

  1. Java调用python打包的程序.exe,包括获取exec()中打印的日志,亲测有效

    python写了一个方法,windows平台上怎么被Java服务调用呢? 最简单的办法,python利用pyinstaller打包成.exe程序,Java程序通过Process调用,想同时获取.exe ...

  2. 360safe:腾讯QQ也见不得人[图]

    不知道大家有没有注意到最新版本的QQ 2007 Beta2会在C盘根目录创建"~DTLog.txt"文件,里面包含一些3721等不太干净的字符串,到底是为什么,360safe论坛的 ...

  3. Linux/Windows配置stm32免费开发环境详细流程

    系统:linux mint 18.3 xfce,windows10  stm32开发板:正点原子mini板(stm32f103rc)  烧写器:stlink v2  如果是JLINK的可以参考这篇  ...

  4. WinXP下At,Schtask和Eventtriggers命令实例(一)

    AT和schtask(schedule task)命令是基于命令行的任务计划.eventtriggers(event triggers)命令是Event(事件)trigger(触发器),当系统产生事件 ...

  5. 利用windbg探索进程和进程上下文

    1.列出所有活动进程 使用!process命令可以打印出活动进程的信息.第一个参数是要打印的EPROCESS的地址,如果指定为0则表示打印所有的进程.第二个参数用于说明打印进程信息的详细级别.指定0则 ...

  6. git for windows_Git for Windows,Git 国内镜像持续更新

    Git 官网下载国内是非常的慢,今天无意间发现了一个国内镜像网站,汇集了 Git for Windows 的很多版本,国内下载速度非常快,这里整理了一部分版本以及下载地址,如果没有你想要的版本,请访问 ...

  7. 程序设计和c语言ppt,程序设计和C语言.ppt

    <程序设计和C语言.ppt>由会员分享,可在线阅读,更多相关<程序设计和C语言.ppt(25页珍藏版)>请在装配图网上搜索. 1.2020/7/22,1,C程序设计,课程别名: ...

  8. 前端学习(2631):git安装

    git 提交 全部文件 1.git add . git add xx 命令可以将xx文件添加到暂存区,如果有很多改动可以通过get add -A .来一次添加所有改变的文件.注意 -A 选项后面还有一 ...

  9. 1910140408安装win版

    下载地址 Git - Downloading Package https://git-scm.com/download/win https://github.com/git-for-windows/g ...

最新文章

  1. web服务枚举组件不可用
  2. Eclipse 3.5 Classic+Tomcat 6.0+MySql 5.5搭建java web开发环境
  3. C#连接oracle的方式以及问题解决.
  4. Android知识点小结
  5. vue.js框架原理浅析 1
  6. CEGUI、LayoutEdit和TextureAtlas
  7. python基础编程语法-Python基础及语法(十三)
  8. jQuery_pager.js分页
  9. 安卓日记本设计内容介绍_天一 | 教你捷径,使用VB开发安卓程序!
  10. java遍历map集合_Java中遍历Map集合方式
  11. wifi信号衰减与距离关系_wifi无线信号传输衰减间隔核算公式
  12. 使用Charles抓取百词斩单词音频、单词翻译、例句音频、例句翻译
  13. ps快捷键_学习笔记
  14. linux删文件,捋一捋
  15. 英伟达驱动安装成功之后,指令nvidia-smi表格里有ERR!
  16. 未来五年,做淘宝电商不做好私域流量,将寸步难行!
  17. webpack面试题合集
  18. 稻城亚丁6日游之引子
  19. 【转】安全测试三部曲
  20. 如何将json类型的数据转换成csv格式

热门文章

  1. Java实现凑硬币或者最少硬币数
  2. 【k8s金牌知识】k8s升级攻略
  3. Nvidia Jetson Nano刷机保姆级教程
  4. 神经网络之极限学习机(ELM)
  5. 自认为个人总结得最好的一次读后感:知行 - 技术人的管理之路.ppt
  6. 远控杂说---总有一款适合你
  7. Doxygen 使用说明
  8. Doxygen使用指南,Doxygen介绍一
  9. Ubuntu22.04更换国内镜像源(阿里、网易163、清华、中科大)
  10. 数据结构:字符串 C++