OD 实验 - 对 PE 结构的简单分析

载入程序,按 Alt+M 查看内存空间

双击进入程序的 PE 头

这些为 DOS 环境下才会运行的

这个执行 PE 的地址,PE 结构的偏移地址为 C0

找到这个地址

以 PE 开头

SizeOfCode 为代码段的大小

SizeOfInitializedData 为所有含已初始化数据的块的大小

这两个值明显太大了,可能被恶意修改过了,可以把他们修改一下

右键 -> 二进制 -> 编辑,快捷键为 Ctrl+E

或者右键 -> 修改整数

SizeOfCode 可能为 400,SizeOfInitializedData 可能为 A00

BaseOfCode 代码段的起始偏移地址,此处应该为 1000

BaseOfData 数据段的起始偏移地址,此处应该为 2000

右键进行修改

用 VC 编译出来的程序,ImageBase 一般都为 400000

NumberOfRvaAndSizes 为数据目录表的尺寸,这个值默认为 0x10

该程序没有输出表,Export Table Address 应该改为 0,Export Table Size 也为 0

接下来保存文件

从最初修改的地址开始

为 004000DC

按 Ctrl+G 跟随表达式

输入地址,点击 OK

适量选取一段

右键 -> 复制到可执行文件

右键 -> 保存文件

原文地址:https://www.cnblogs.com/sch01ar/p/9581608.html

时间: 2025-01-10 18:53:27

OD 实验 - 对 PE 结构的简单分析的相关文章

iOS 8:【转】SDWebImage库结构的简单分析

源地址:http://www.cnblogs.com/biosli/archive/2012/07/21/2602624.html SDWebImage库的作用: 通过对UIImageView的类别扩展来实现异步加载替换图片的工作. 主要用到的对象:1.UIImageView (WebCache)类别,入口封装,实现读取图片完成后的回调2.SDWebImageManager,对图片进行管理的中转站,记录那些图片正在读取.     向下层读取Cache(调用SDImageCache),或者向网络读

ffplay.c函数结构简单分析(绘图)

近期重温了一下FFplay的源码. FFplay是FFmpeg项目提供的播放器演示样例.虽然FFplay不过一个简单的播放器演示样例,它的源码的量也是不少的. 之前看代码,主要是集中于某一个"点"进行研究,而没有从整体结构上进行分析.本文就打算弥补之前学习的不足,从整体结构上分析一下FFplay的源码,绘图理一下它的结构.当中还有诸多不足.以后有机会慢慢完好.说明一下自己画的结构图的规则:图中仅画出了比較重要的函数之间的调用关系. 粉红色的函数是FFmpeg编解码类库(libavcod

FFmpeg源码简单分析:结构体成员管理系统-AVOption

===================================================== FFmpeg的库函数源码分析文章列表: [架构图] FFmpeg源码结构图 - 解码 FFmpeg源码结构图 - 编码 [通用] FFmpeg 源码简单分析:av_register_all() FFmpeg 源码简单分析:avcodec_register_all() FFmpeg 源码简单分析:内存的分配和释放(av_malloc().av_free()等) FFmpeg 源码简单分析:常

ffplay.c函数结构简单分析(画图)

最近重温了一下FFplay的源代码.FFplay是FFmpeg项目提供的播放器示例.尽管FFplay只是一个简单的播放器示例,它的源代码的量也是不少的.之前看代码,主要是集中于某一个"点"进行研究,而没有从总体结构上进行分析.本文就打算弥补之前学习的不足,从总体结构上分析一下FFplay的源代码,画图理一下它的结构.其中还有诸多不足,以后有机会慢慢完善.说明一下自己画的结构图的规则:图中仅画出了比较重要的函数之间的调用关系.粉红色的函数是FFmpeg编解码类库(libavcodec,l

FFmpeg来源简单分析:结构会员管理系统-AVClass

===================================================== FFmpeg章列表: [架构图] FFmpeg源码结构图 - 解码 FFmpeg源码结构图 - 编码 [通用] FFmpeg 源码简单分析:av_register_all() FFmpeg 源码简单分析:avcodec_register_all() FFmpeg 源码简单分析:内存的分配和释放(av_malloc().av_free()等) FFmpeg 源码简单分析:常见结构体的初始化和

FFmpeg源代码简单分析:常见结构体(AVFormatContext,AVFrame等)的初始化和销毁

本文简单分析FFmpeg常见结构体的初始化和销毁函数的源代码.常见的结构体在文章: <FFMPEG中最关键的结构体之间的关系>中已经有过叙述,包括: AVFormatContext:统领全局的基本结构体.主要用于处理封装格式(FLV/MKV/RMVB等). AVIOContext:输入输出对应的结构体,用于输入输出(读写文件,RTMP协议等). AVStream,AVCodecContext:视音频流对应的结构体,用于视音频编解码. AVFrame:存储非压缩的数据(视频对应RGB/YUV像素

x264源代码简单分析:宏块分析(Analysis)部分-帧间宏块(Inter)

本文记录x264的 x264_slice_write()函数中调用的x264_macroblock_analyse()的源代码.x264_macroblock_analyse()对应着x264中的分析模块.分析模块主要完成了下面2个方面的功能: (1)对于帧内宏块,分析帧内预测模式(2)对于帧间宏块,进行运动估计,分析帧间预测模式 上一篇文章记录了帧内宏块预测模式的分析,本文继续记录帧间宏块预测模式的分析. 函数调用关系图 宏块分析(Analysis)部分的源代码在整个x264中的位置如下图所示

FFmpeg源代码简单分析:avcodec_open2()

本文简单分析FFmpeg的avcodec_open2()函数.该函数用于初始化一个视音频编解码器的AVCodecContext.avcodec_open2()的声明位于libavcodec\avcodec.h,如下所示. /** * Initialize the AVCodecContext to use the given AVCodec. Prior to using this * function the context has to be allocated with avcodec_a

x264源代码简单分析:宏块编码(Encode)部分

本文记录x264的 x264_slice_write()函数中调用的x264_macroblock_encode()的源代码.x264_macroblock_encode()对应着x264中的宏块编码模块.宏块编码模块主要完成了DCT变换和量化两个步骤. 函数调用关系图 宏块编码(Encode)部分的源代码在整个x264中的位置如下图所示. 单击查看更清晰的图片 宏块编码(Encode)部分的函数调用关系如下图所示. 单击查看更清晰的图片 从源代码可以看出,宏块编码模块的x264_macrobl