【实验目的和要求】
分析PE文件的导出表结构,分析导出函数VA的获取过程,得出导出表结构;研究导出表的利用技术,尝试对DLL文件进行修改,即应用导出函数覆盖技术达到需求。
【实验工具】
OllyDBG、Peditor、FlexHex或Winhex
【实验原理和步骤】
问题1、利用Winhex查看Winresult.DLL 并分析其提供函数的名字及对应入口地址。画出导出表结构图(类似图2)。
找到PE:5045
偏移到78H
得到RVA=2140
FOA=2410-2000+800=940
导出表如图:
问题2、pedtior打开本机的kernel32.DLL,其导出表RVA?导出表大小?找到无导入表情况下需要的两个函数的名称及其入口地址(结合实验1问题6)。
一般kernel132.ddl储存在C盘,因为它是动态所以不能直接用pedtior打开,我把它复制出来用pedtior打开就行了
RVA=00092C70
导出表大小:0000DC14
LoadLibray()函数来继续加载其他的动态链接库
GetProcAdress()函数来获得相应需要的api函数地址
问题3、实现两种方式的导出函数覆盖-1
修改winResult.dll导出结构中的函数入口地址,达到firstwindow.EXE以动画方式打开的效果。描述你所做的工作。
(1)导出表
(2)函数表入口位置
(3)修改入口地址就可以了
问题4、实现两种方式的导出函数覆盖-2
覆盖fadeinopen函数的指令代码:使得运行firstwindow.EXE程序时会弹出messagebox。如下图所示:
(1)peditor打开,根据FadeInOpen函数入口地址RVA:1323,则FOA:682
(2)通过修改其指令实现,这里在winhex修改