逆向工程实验二 PE导出表分析及应用

1.实验目的和要求

分析PE文件的导出表结构,分析导出函数VA的获取过程,得出导出表结构;研究导出表的利用技术,尝试对DLL文件进行修改,即应用导出函数覆盖技术达到需求。

2.实验步骤

问题1、利用Winhex查看Winresult.DLL 并分析其提供函数的名字及对应入口地址。画出导出表结构图(类似图2)。

winhex打开文件,找到PE,然后从该处偏移到78H,找到导出表的RVA为2140H,计算出FOA为940H,然后偏移到940H,这就是导出表的地址。再根据导出目录表找到指向该导出表的文件名字字符串为2190H,再计算FOA为990H,可找到文件的名字字符串。然后找到nBASE为00000001H,继续找到导出函数地址表的RVA,继续找到函数名称地址表的RVA,再计算出对应的FOA,即可找到函数名称字符串。然后继续往后找到函数序号地址表,跳到对应的FOA处,即可找到函数序号。

问题2、2.1 pedtior打开本机的kernel32.DLL,其导出表RVA?导出表大小?

导出表RVA是00092A70H,导出表大小是0000E14CH

2.2找到无导入表情况下需要的两个函数的名称及其入口地址(结合实验1问题7)。 

扫描二维码关注公众号,回复: 17368989 查看本文章

打开kernal32,在kernal32的导出表里找到GetProAddress函数和LoadLibraryA函数的RVA

问题3、实现两种方式的导出函数覆盖-1 

修改winResult.dll导出结构中的函数入口地址,达到firstwindow.EXE以动画方式打开的效果。描述你所做的工作。

winHex打开winResult.dll,找到PE,偏移到78H处,找到导出表的RVA是2140,计算其FOA为940H,偏移到940H处,找到函数的入口地址,把FadeInOpen的入口地址1282H改为AnimateOpen的入口地址1022H,保存运行即可。

问题4、实现两种方式的导出函数覆盖-2 

覆盖fadeinopen函数的指令代码:使得运行firstwindow.EXE程序时会弹出messagebox。

PE打开文件,找到FadeInOpen的偏移地址为682H,将FadeInOpen函数的定义部分改

为如下,注意到最后的四个字节为user32.MessageBoxA的地址,可以在OD中打开helloworld.exe,然后F7调试找到user32.MessageBoxA的地址为763EA740,替代最后的四个字节。这样就实现了导出函数的覆盖。

猜你喜欢

转载自blog.csdn.net/zzzfff__/article/details/134431979