首页
社区
课程
招聘
请问一下这个RAV值是怎么来的?
发表于: 2005-12-5 10:24 4963

请问一下这个RAV值是怎么来的?

2005-12-5 10:24
4963
请拉到后面看一下问题:                       

ReloX修复DLL脱壳重定位表的简便方法――用Ollydbg手脱Neolite加壳的DLL

                 

【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
            
【调试环境】:WinXP、Ollydbg V1.10、PEiD、LordPE、WinHex、ReloX

【实例下载】:点击下载
            
―――――――――――――――――――――――――――――――――
【脱壳过程】:
         
         
某些壳保护的DLL脱壳时重定位表修复让人头痛,偶然发现了ReloX修复重定位表的工具,试验了几次居然成功了,所以写个简单的过程加以推广这个工具。由于比较忙,所以只测试了Neolite和UPX加壳DLL的重定位表修复,其它壳大家再多测试吧。
EdrLib.dll是Neolite V2.0最大比例压缩,加密了重定位表,无法自动脱壳。
―――――――――――――――――――――――――――――――――
一、Entry Point
            
            
Neolite是压缩壳,OEP非常容易走到。

003D710F     E9 A6000000       jmp EdrLib.003D71BA
//进入Ollydbg后暂停在这
003D71BA     8B4424 04         mov eax,dword ptr ss:[esp+4]
003D71BE     2305 20713D00     and eax,dword ptr ds:[3D7120]
003D71C4     E8 ED040000       call EdrLib.003D76B6
003D71C9     FE05 B9713D00     inc byte ptr ds:[3D71B9]
003D71CF     FFE0              jmp eax
//这里就是跳向OEP的地方!:-)  在这里“埋伏”个断点,开始第二步操作
                     

―――――――――――――――――――――――――――――――――
二、适当的Dump时机:搞定输入表

下断:BP VirtualProtect
中断后取消断点,Alt+F9返回

003D7B22     FF55 7A           call dword ptr ss:[ebp+7A]; kernel32.VirtualProtect
003D7B25     FF75 66           push dword ptr ss:[ebp+66]
003D7B28     8D55 A2           lea edx,dword ptr ss:[ebp-5E]
003D7B2B     8D85 5EFDFFFF     lea eax,dword ptr ss:[ebp-2A2]
003D7B31     FF75 5A           push dword ptr ss:[ebp+5A]
003D7B34     8B4F 0C           mov ecx,dword ptr ds:[edi+C]
003D7B37     E8 B4030000       call EdrLib.003D7EF0
//区段解压
003D7B3C     8B55 0A           mov edx,dword ptr ss:[ebp+A]
003D7B3F     8B47 04           mov eax,dword ptr ds:[edi+4]
003D7B42     8B52 24           mov edx,dword ptr ds:[edx+24]
003D7B45     25 00000080       and eax,80000000
003D7B4A     81E2 00000080     and edx,80000000
003D7B50     39D0              cmp eax,edx
003D7B52     0F84 60FFFFFF     je EdrLib.003D7AB8
003D7B58     F647 04 20        test byte ptr ds:[edi+4],20
003D7B5C     0F84 4FFFFFFF     je EdrLib.003D7AB1
003D7B62     C745 AA 20000000  mov dword ptr ss:[ebp-56],20
003D7B69     E9 4AFFFFFF       jmp EdrLib.003D7AB8
//循环
003D7B6E     837E 24 00        cmp dword ptr ds:[esi+24],0
//F4到这里   [esi+24]=[003E4024]=0000442C     输入表的RVA! ★
003D7B72     0F84 1D010000     je EdrLib.003D7C95

这是FLY的一篇脱壳文章,脱壳的步骤步骤是知道了,就是这个值到底是怎么来的//F4到这里   [esi+24]=[003E4024]=0000442C     输入表的RVA! ★
这个0000442C 是怎么计算出来的
我查了很多的资料

但是就是无法获得和这个值相等的数值

请熟悉RAV计算机的指点一下.....
先谢过了

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
1、跟踪到那个位置,数据窗口[esi+24]
2、强调很多次,相关主题帖子问题跟帖在原帖下
3、等你看贴后此帖封
2005-12-5 10:49
0
雪    币: 106
活跃值: (301)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
Sorry

我很少泡论坛的
谢谢Fly的指点

回去后在仔细看看,很久没有破解了,要处理的事情较多
最佳一时心血来潮就试着破解

我这就去原贴下发
2005-12-5 19:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也想知道。
2005-12-5 22:32
0
游客
登录 | 注册 方可回帖
返回