今天的学习内容:
1.浏览了一下can(车载网络)
2.安装了调试工具:LordPE、IDA、有问题的Ollydbg
3.阅读了《0day安全:软件漏洞分析技术》第一章。
工具下载链接(百度网盘)
LordPE链接:https://pan.baidu.com/s/15yB24oePOsT97m1wl5aTpA 提取码:tk16
IDA链接:https://pan.baidu.com/s/17Rz4IMOuRnSAEqEXUZzsLQ 提取码:atii
Ollydbg链接:https://pan.baidu.com/s/1eQKYZ9HGLGIwQSPAJP2E-w 提取码:4xxq
第一章知识总结
什么是PE(Portable Executable)文件格式
PE是Win32平台下可执行文件遵守的数据格式。常见的可执行文件(.exe、.dll)都是典型的PE文件。
PE文件格式把可执行文件分成若干数据字节(section),不同的资源被放在不同的字节中。一个典型的PE文件中包含的字节有.text、.data、.idata等等
见《0day安全:软件漏洞分析技术》第5页
虚拟内存
Windows的内存可以被分为两个层面:物理内存和虚拟内存。其中,物理内存比较复杂,需要进入Windows内核级别ring0才能看到。通常,在用户模式下,我们用调试器看到的内存地址都是虚拟内存。
见《0day安全:软件漏洞分析技术》第6页
PE文件与虚拟内存之间的映射
文件偏移地址(File Offset):数据在PE文件中的地址叫文件偏移地址。这是文件在磁盘上存放时相对于文件开头的偏移。
装载基址(Image Base):PE装入内存时的基地址。默认情况下,EXE文件在内存中的基地址是0x00400000,DLL文件是0x10000000。
虚拟内存地址(Virtual Address,VA):PE文件中的指令被装入内存后的地址。
相对虚拟地址(Relative Virtual Address,RVA):相对虚拟地址是内存地址相对于映射基址的偏移量。
虚拟内存地址、相对虚拟地址、映射基址三者之间的关系:VA = Image Base + RVA
节偏移 = RVA - 文件偏移地址
见《0day安全:软件漏洞分析技术》第8-9页
第一章实验总结
实验代码连接:https://pan.baidu.com/s/105Plb7cC6MYTp1e1iv4j6g 提取码:rq0f
实验完全按照书本进行,基本是复现了书本内容,附上我的实验截图:
书中提到在16进制编辑器中修改74 为 75。
其实直接在OllyDbg中就可修改,双击,将jr 修改为 jnr,然后复制到可执行文件中,保存即可达到书中提到的实验效果。